天天看點

一文了解摩根大通的金融區塊鍊平台:Quorum

本文的翻譯和介紹,目的是為讀者更加開闊思路的了解分布式賬本本身在金融領域的應用,以及它與區塊鍊的關系和差別,無論是從技術層面還是應用層面,讓讀者對分布式賬本技術以及它的子集區塊鍊技術,能夠有一個更深層的認識。

Quorum是從2016年開始J.P. Morgan基于以太坊協定打造的開源區塊鍊平台。Quorum是為處理網絡中授權的交易而設計的,解決了隐私和性能方面的問題。目前,摩根大通内部以及外部金融公司和供應商都在使用它。

第一部分:Quorum – 企業級以太坊客戶

什麼是Quorum?

Quorum是基于以太坊的分布式賬本協定平台,被開發用來為金融、供應鍊、零售、房地産等行業提供交易支援和合同隐私等。Quorum包括Go Ethereum用戶端(a.k.a geth)的一個極簡分支,并利用了以太坊開發社群人員已開發好的工作。是以,Quorum超越了公共以太坊的主要特點是:

- 交易與合約私隐

- 基于投票的多重共識機制

- 網絡/對等節點的權限管理

- 更卓越的性能

背景介紹:

有關Quorum的設計基本原理和背景的更多資訊,可以閱讀Quorum白皮書,檢視Hyperledger deck或觀看在Hyperledger項目技術指導委員會會議上的示範。

第二部分:Quorum的構成

邏輯架構圖

一文了解摩根大通的金融區塊鍊平台:Quorum

· Quorum節點

Quorum節點被特意設計成geth的一個輕量級分支,以便可以持續利用不斷增加的以太坊社群中正在進行的研發成果。是以,Quorum将随未來geth的版本一起更新。Quorum節點包括以下對geth的修改:

- 共識是達成Raft或伊斯坦布爾BFT共識算法,而不是使用工作證明。

- P2P層已經被修改為隻允許與許可節點之間連接配接。

- 塊生成邏輯已被修改,将“全局狀态根”檢查替換為新的“全局公共狀态根”檢查。

- 塊驗證邏輯已被修改,将塊頭中的“全局狀态根”替換為“全局公共狀态根”。

- 帕特裡夏·特裡結構狀态被一分為二:一個公共特裡結構和一個私人特裡結構。

- 塊驗證邏輯已被修改為處理“私人交易”。

- 交易建立已被修改,允許用加密的哈希替換交易資料,以便在需要時保留私人資料。

- 氣體價格已經取消,但氣體本身仍然存在。

· 隐私管理器

Constellation和Tessera實作使用通用系統的Haskell和Java來以一種安全的方式送出資訊。它們可以與使用PGP加密消息的MTA(消息傳輸代理)網絡相比較。外彙IB www.kaifx.cn/ib/它不是特定于區塊鍊的,也可能适用于許多其他類型的想要在對方網絡中進行單獨密封消息交換的應用程式。Constellation子產品和Tessera子產品由兩個子子產品組成:節點(用于Quorum私人交易管理器的預設執行)和 Enclave (飛地)。

交易管理器

Quorum的交易管理器負責交易隐私。它存儲和允許通路加密的交易資料,與其他參與者的交易管理器交換加密的有效負載,但不能通路任何敏感的私鑰。它利用Enclave實作加密功能(盡管Enclave可以選擇由交易管理器本身承載)。交易管理器是平靜的/無狀态的,可以輕松實作負載平衡。

The Enclave (飛地)

分布式賬本協定通常利用加密技術來實作交易真實性、參與者身份驗證和曆史資料儲存(比如通過加密的散列資料鍊)。為了實作分散關注點,并通過對某些加密操作的平行化來提供性能改進,包括對稱密鑰生成和資料加密/解密在内的許多加密工作都委托給Enclave來做。

Enclave與交易管理器攜手合作以加強私隐,以一種隔離的方式管理加密/解密。它持有私鑰,本質上是一個與其他元件隔離的“虛拟HSM”。

第三部分:設計

· 公開/私有狀态

Quorum支援雙重狀态:

- 公開狀态:可由網絡中的所有節點通路;

- 私有狀态:隻有具有正确權限的節點可以通路。

差別是通過使用加密的(私有的)和非加密的有效負載(公開的)來實作的。節點可以通過檢視簽名的v值來确定交易是否是私有的。公開交易的v值為27或28,私人交易的v值為37或38。

如果交易是私有的,則節點隻能在允許通路和解密負載的情況下執行交易,不涉及交易的節點根本沒有私有負載。是以,所有節點共享一個通過公開交易建立的公開狀态,并且具有本地唯一的私有狀态。

這個模型對私有交易中修改狀态的能力施加了限制。由于從公開合約讀取資料是(私有)合約的常見用例,是以虛拟機能夠進入隻讀模式。對于從私有合約到公開合約的每次調用,虛拟機将更改為隻讀模式。如果虛拟機處于隻讀模式,并且代碼試圖更改狀态,那麼虛拟機将停止執行并出現異常。

允許進行以下交易:

1. S -> A -> B

2. S -> (A) -> (B)

3. S -> (A) -> [B -> C]

不支援以下交易:

1. (S) -> A

2. (S) -> (A)

注: S = 發送者 (X) = 私人 X = 公開 -> = 方向 [] = 隻讀模式

· 狀态驗證

為了确定節點是否處于同步狀态,在塊中包含了根哈希。由于私人交易隻能由相關節點處理,是以不可能就私人狀态達成全球共識。

為了克服這個問題,可以使用RPC方法“eth_storageRoot(位址[,區塊号])->哈希”。它可以給(可選的)塊号傳回給定位址的存儲根。如果沒有給出可選的塊号,則使用最新的塊号。存儲根哈希由相關方比較後決定,可以是on或off鍊。

結語

當人們談論起分布式賬本時,總會将分布式賬本和區塊鍊認為是一回事,其實這是一個誤解。分布式賬本技術,簡稱DLT,指的是一種不需要被任何中心化主體存儲或者确認的資料記錄方式。分布式賬本最突出的特征是其不由任何單個機構或個人維護,而是由網絡中的每個節點單獨建構和記錄。在技術層面,分布式賬本具有去中心化的特點,而且依賴于共識原則。但是,在中心化主體對一個去中心化網絡掌有控制權的情況下,從意識形态上說,并完全不符合去中心化組織的特點。而區塊鍊是比特币、以太坊和其它加密貨币的底層技術。它是分布式賬本技術的一種形式,是一個由去中心化網絡中,基于公式算法而達成的不可篡改的的賬本。通過加密數字簽名(Cryptographic Signing),并用“賬本”将記錄連在一起,就形成了一個鍊條,這就是區塊鍊和分布式賬本技術的不同。

每個區塊鍊都是一個分布式賬本,但不是每個分布式賬本都是區塊鍊。兩者雖然都涉及到了去中心化和節點之間的共識。區塊鍊不僅僅在技術和結構層面是去中心化的,它的管理組織和發展也是去中心化的。而在分布式賬本裡,隻有技術是去中心化的,營運主體并不是。是以,分布式賬本技術更多的被運用在金融和政府事務領域。