以太坊擴展-Quorum解讀

以太坊聯盟鏈

以太坊公鏈很多人都很熟悉,說到聯盟鏈,一般都會想到超級賬本-Hyperledger。這裡介紹下,基於以太坊開發的聯盟鏈-Quorum。

以太坊擴展-Quorum解讀

詳見:https://github.com/jpmorganchase/quorum/wiki

不錯~~你沒看錯jpmorgan,摩根大通,作為美國最大的金融服務機構之一,其在2015年初時便對比特幣及其底層技術產生了興趣,從招聘加密貨幣專家、加入區塊鏈聯盟R3CEV、與數字資產控股公司(Digital Asset Holdings)合作開展區塊鏈試驗項目、測試區塊鏈匯款、推出分佈式賬本原型Juno,到推出企業級區塊鏈項目Quorum,摩根大通的區塊鏈探索之路,正從起步,變成領跑。來自巴比特上對該項目的介紹。

公有鏈、聯盟鏈、私有鏈的概念就不囉嗦了,直接介紹下基於以太坊的Quorum。


隱私保護

首先聯盟鏈在超級節點之間來實現區塊鏈的生成,那麼以太坊公鏈是去中心化模式,節點之間平等。在Quorum中在以太坊的基礎上進行改進,引入了隱私保護功能,這個在聯盟鏈中是很重要的一個環節,考慮數據的隱私。在Quorum中有私有狀態,私有交易等機制對交易的數據進行隱私保護。

共識機制

其次聯盟鏈,一般會重點考慮交易的效率,特別是銀行系。在Quorum中提供了兩種不同於比特幣、以太坊的POW共識機制。分別是:

  • RAFT一致性

  • Istanbul BFT(在拜占庭容錯環境下使用該一致性協議)

Quorum模塊

以太坊協議作為Quorum的底層,在Quorum層中有各模塊分別各司其職。

  • 交易管理模塊:對私有交易進行加密,且和其他節點通訊的時候提供加密交易數據。

  • 加密模塊:加密算法、密鑰管理、數據的加解密。

  • Quorum模塊:通過智能合約來實現投票共識機制。

Quorum運行理念

Quorum的理念就是通過加密交易,加密當前的交易信息,讓無關的節點無法獲取相關的信息。是一套單一區塊鏈和智能合約軟件構成的一套聯盟鏈體系。當然底層基於以太坊的協議,在智能合約中增加了隱私保護的字段,同時把以太坊的共識機制進行修改,使用上述的RAFT或者Istanbul BFT。同時區塊中節點在驗證的時候,只驗證公共的交易和與本節點相關的交易,那麼和本節點無關的交易就可以不去驗證。


問題一:

區塊鏈要求每個全節點有完整的數據,那麼交易分為公有交易和私有交易,是不是會出現本地兩個庫(一個公共的、一個單獨的私有交易)?

在Quorum中所有的交易包括加密的私有交易都會以加密數據的形式記錄下來,形成一條鏈的共識,都複製存儲在每一個全節點中。

問題二:

私有交易如何生成和執行?

在Quorum中交易消息發送前,會針對交易數據字段的代碼進行加密後形成散列值,那麼在和該交易相關的節點,可以在交易模塊中有上述散列值獲得對應的加密代碼,然後通過加密模塊解密,解密後的代碼在EVM中運行,最後結果返回給私有交易狀態數據庫。那麼無關的節點就只能獲得交易中的散列值。


私有交易

私有交易處理流程:

處理流程具體內容
交易發起方發起交易交易發起者向Quorum接口發送私有交易的交易相關方及交易數據
節點處理Quorum網絡中節點的網絡管理模塊向交易管理模塊發送交易數據(這裡針對私有交易,故有一個私有交易的說明,以便後續處理)
交易模塊和加密模塊互動交易模塊向加密模塊發送相關交易方的信息和交易數據
加密模塊加密加密模塊使用PGP方式進行加密。
PGP加密處理隨機生成一對對稱密鑰(對稱密鑰在執行效率上通常認為優於非對稱密鑰),使用對稱密鑰加密數據,再獲取交易雙方的RSA公鑰,再對對稱密鑰進行一次加密,最後計算加密數據的散列值
加密模塊返回消息至交易模塊加密模塊把處理過的加密交易數據形成消息傳回給交易模塊(包括上述加密數據、加密數據的散列值、交易雙方公鑰加密後的對稱密鑰)
交易模塊處理 交易模塊存儲交易數據信息,且廣播到其他交易相關節點的交易模塊。同時交易模塊也會將加密數據的散列值傳回到網絡管理模塊
網絡管理模塊處理加密數據的散列值作為Quorum交易消息字段,指明交易的雙方,然後發送到有權限的節點

私有交易驗證流程:

驗證流程具體內容
節點收到區塊節點收到新的區塊,那麼區塊內的私有交易需要進行驗證
網絡管理模塊處理網絡管理模塊發送交易的數據請求到交易模塊
交易模塊處理交易模塊發送交易雙方的信息(簽名)到加密模塊
加密模塊處理加密模塊驗證交易雙方的簽名,確定交易的發出方信息
交易模塊再處理交易模塊根據消息中的散列值去尋找相應的加密數據,且將加密數據和當前節點的公鑰加密後的對稱密鑰發送給加密模塊
加密模塊再處理加密模塊用當前節點的私鑰解密獲得對稱密鑰,再用對稱密鑰解密交易數據,處理後將交易數據傳輸給網絡管理模塊
網絡管理模塊再處理把交易數據代碼傳送給EVM中執行
EVM執行後處理EVM處理上述代碼更新相應的私有交易狀態庫

大致介紹Quorum。


分享到:


相關文章: