Hyperledger Fabric Model——超級賬本組成模型


超級賬本組成模型

本文主要講述Hyperledger Fabric的關鍵設計特性,並細述如何實現了一個全面的、可定制的企業級區塊鏈解決方案:

 

資產定義——資產這里理解為任何具有貨幣價值的東西,它們都可以通過網絡進行交易,無論是超市商品到古董車再到貨幣期貨都屬於資產。

智能合約——鏈碼(chaincode)即Fabric的智能合約,分為系統鏈碼和用戶鏈碼。鏈碼的執行由事務排序划分,限制了節點類型間的信任和驗證級別,並優化了網絡的可伸縮性和性能。

賬本特征——賬本不可變的、共享的並且為每個通道(channel)編碼了整個事務歷史,還包含了類似sql的查詢功能,用於高效的審計和解決爭議。

隱私通道——多通道(channel)交易的設計方案可以確保競爭的企業和受監管的行業在一個公共網絡上交換資產時的高度隱私及保密性。

成員安全——Hyperledger Fabric只允許被授權加盟的成員參與數據維護,且成員間相互認可所有的交易都會被彼此發現和跟蹤。這種方式提供了一個可信的區塊鏈網絡。

共識機制——共識策略的設定是為了達成一致的一種獨特的方法,它可以實現企業間所需的靈活性和可伸縮性。

 

資產

資產可以從有形資產(如房地產和硬件)到無形資產(如合同和知識產權)。Hyperledger Fabric提供了使用智能合約交易修改資產的能力。

資產在Hyperledger Fabric中以鍵-值對集合的形態存在,在通道(channel)中各本地賬本可以對其狀態提交變更事務。資產可以用二進制和/或JSON形式表示。

 

我們可以通過Hyperledger Fabric的Composer工具很容易地定義和使用Hyperledger Fabric應用程序中的資產。

 

智能合約

智能合約是定義資產並且可以用於修改資產的事務指令的軟件。換句話說,它就是一個通道(channel)所有的業務邏輯。智能合約制定了執行讀取或修改鍵值對以及其它狀態數據庫信息操作的規則。智能合約通過一個事務請求來執行對賬本的當前狀態數據庫操作。智能合約執行會生成一組讀寫集,這組讀寫集可以通過網絡提交給排序服務節點,並由排序服務節點廣播且應用到所有的對等節點上。

 

賬本特征

在Fabric中產生的所有針對數據狀態變更的請求都會生成有序且不可篡改的記錄存於賬本中。數據狀態的變更是由所有參與方認可的智能合約調用事務的結果。每個事務都將產生一組資產鍵-值對,這些鍵值對作為創建、更新或刪除等操作而同步到所有賬本。

賬本由區塊鏈(區塊根據hash等算法組成的鏈條)組成,而每一個區塊中都存儲有一條或一組有序的且不可篡改的記錄,也就是一個狀態數據庫來維護當前的Fabric的狀態。每個通道(channel)都有且僅有一個賬本,在該通道(channel)中的每個加盟成員的對等點都維護同一份賬本。

  • 通過使用基鍵(鍵查詢)、范圍查詢及組合鍵查詢等方法可對賬本執行查詢和更新操作
  • 使用富查詢語言的只讀查詢(如果使用CouchDB作為狀態數據庫)
  • 只讀歷史查詢——通過一個鍵來查詢賬本歷史記錄,支持數據來源場景
  • 每一條請求的結果都由通過智能合約讀取的讀集和智能合約寫入的寫集的鍵值的多版本組成
  • 每一條被提交的請求都包含提交該請求的節點的簽名證書,並同時提交到排序服務節點
  • 同一個通道(channel)中的區塊里的所有請求事務都會被排序,並且這些區塊會被排序服務節點廣播到該通道(channel)內的所有對等節點
  • 對等節點對請求事務的驗證依靠背書策略並嚴格執行該策略
  • 在添加一個塊之前,執行了版本控制檢查,以確保被讀取的資產的狀態在鏈代碼執行時間之后沒有改變
  • 即將執行變更的請求事務集在新增到一個區塊之前必須要做一次版本驗證,以確保被讀取的資產狀態集在本條智能合約執行時間之前沒有改變過
  • 一旦請求事務被驗證且提交,就不可篡改
  • 一個通道(channel)的賬本包含一個區塊生成的配置策略、訪問控制列表和其它相關信息
  • 考慮到通道(channel)將會從不同的證書機構得到加密文件,因此通道(channel)中擁有成員服務提供者(MSP)實例

 

隱私通道

Hyperledger Fabric在每個通道(channel)中都有一個不可篡改的賬本,以及一個可以操縱和修改當前資產狀態的智能合約(例如,更新鍵值對)。一個賬本限制在一個通道(channel)的范圍內——它可以在整個網絡中共享(假設每個參與者都在一個公共通道(channel)上運行)——或者它也可以被私有化,只包含一組特定的參與者。

在上述中的后一種情況下,這些參與者將創建一個單獨的通道(channel),從而使他們的事務和賬本隔離出來。為了滿足即公開透明又能保護隱私的場景,智能合約只能在需要訪問資產狀態來執行讀和寫操作的對等節點上安裝(換句話說,如果一個智能合約沒有安裝在對等節點上,它將無法調用賬本暴露出去的接口)。

為了進一步混淆數據,智能合約中的值可以使用諸如AES之類的通用加密算法進行加密(在一定程度上或全部使用),然后將事務發送到排序服務,並將生成的區塊追加到賬本上。一旦加密的數據被寫入到賬本,它只能被擁有相應的密鑰用戶解密

 

成員安全

Hyperledger Fabric是一個支持所有參與者都有自己的身份的交易網絡。公鑰的底層方案用於生成與組織、網絡組件和最終用戶或客戶端應用程序綁定的加密證書。因此,可以在更廣泛的網絡和通道(channel)層次上對數據訪問控制進行操作和治理。隱私和保密是最重要和最關鍵的問題,Hyperledger Fabric這種“被許可”的概念,再加上通道(channel)的存在和功能,有助於解決該問題。

 

共識機制

在分布式賬本技術中,共識作為單一功能最近成為了一種特定算法的同義詞。然而,共識不僅僅是簡單地就事務的順序達成一致,而且在Hyperledger Fabric中這種通過它在整個事務流中的基本作用,包括從提交請求、背書驗證,到事務排序、確認和廣播,這種區別顯得尤為突出。簡單地說,共識被定義為一個完整的循環,它是由一個經過驗證核實的區塊所包含的一組事務。

當一個區塊中的事務集合的順序和結果經過所有的檢查而符合策略標准時,將最終達成一致。這些檢查和平衡發生在一個個請求事務的生命周期中,包括使用背書策略來規定哪些特定的成員必須支持某個事務類,以及系統智能合約,以確保這些策略得到執行和維護。在提交排序服務節點之前,這些執行驗證的對等節點將使用這些系統智能合約來確保足夠的背書支持,並從適當的實體中獲得。此外,在任何包含事務的區塊被添加進賬本之前,將進行版本控制,在此期間,將對賬本的當前狀態進行商定或同意。最后的檢查提供了對雙重開銷操作(處理相同事務)和其他可能危害數據完整性的威脅的保護,並允許被執行的方法依賴非靜態變量。

除了大量的背書認可、有效性和版本控制檢查之外,在事務流的各個方向上也有正在進行的身份驗證。訪問控制列表是在通過網絡實現的(排序服務下發到所有通道),並且因為一條事務請求將會通過不同的體系結構組件,所以payloads會被反復地簽名、復核及驗證。總之,達成共識並不僅僅局限於一組交易的達成一致,而是一種包羅萬象的特性,它是在交易從提案到最終廣播過程中進行的持續驗證的副產品。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM