原文:
總覽 Overview
介紹 Hyberledger Fabric 做為一個全面、可定制、企業(yè)級區(qū)塊鏈解決方案關(guān)鍵設計需求:
- Assets (資產(chǎn)) - 資產(chǎn)定義了可以交換的幾乎所有東西,其能通過網(wǎng)絡用錢計價,從食物、到古董車、到未來的貨幣。
- Chaincode(鏈碼/智能合約) - Chaincode分區(qū)執(zhí)行,根據(jù)交易順序、所需信任級別的限制、驗證跨節(jié)點類型、優(yōu)化網(wǎng)絡規(guī)模和性能
- Ledger Features (賬本) - 不可更改、共享帳本記錄了每個channle的完整的交易歷史,包括類SQL的查詢能力以保證高效的審計和糾紛解決
- Privacy through Channels - (跨channles隱私) 通道能滿足競爭企業(yè)和受監(jiān)管行業(yè)在普通網(wǎng)絡在進行多邊交易能滿足高隱私和保密需求。
- Security & Membership Services (安全和成員服務) - 帶權(quán)限的成員管理提供了可信的區(qū)塊鏈網(wǎng)絡,參與者值得所有的交易可以被有授權(quán)的監(jiān)管和審計人員探測和跟蹤。
- Consensus (共識) - Fabric 獨特的共識機制能滿足企業(yè)對靈活性和可擴展性的需求。
Chaincode 不知道翻譯成什么合適,直接意思是鏈上代碼,鏈碼,用來實現(xiàn)智能合約
Assets - Asset definitions enable the exchange of almost anything with monetary value over the network, from whole foods to antique cars to currency futures.
Chaincode - Chaincode execution is partitioned from transaction ordering, limiting the required levels of trust and verification across node types, and optimizing network scalability and performance.
Ledger Features - The immutable, shared ledger encodes the entire transaction history for each channel, and includes SQL-like query capability for efficient auditing and dispute resolution.
Privacy through Channels - Channels enable multi-lateral transactions with the high degrees of privacy and confidentiality required by competing businesses and regulated industries that exchange assets on a common network.
Security & Membership Services - Permissioned membership provides a trusted blockchain network, where participants know that all transactions can be detected and traced by authorized regulators and auditors.
Consensus - Fabric’s unique approach to consensus enables the flexibility and scalability needed for the enterprise.
Fabric 功能
Hyperledger Fabric 是分布式帳本(DLT)的一個獨特實現(xiàn),采用模塊化區(qū)塊鏈架構(gòu),其提供了企業(yè)所需的網(wǎng)絡安全、可擴展性、保密性和性能。其主要的區(qū)塊鏈網(wǎng)絡功能包括:
Identity management 身份管理
Hyperledger Fabric 提供用戶識別服務來管理用戶的ID和參與者在網(wǎng)絡內(nèi)的授權(quán)。訪問控制列表可以作為額外的許可層提供特定網(wǎng)絡操作授權(quán)。比如,一個特定的用戶ID可以執(zhí)行chaincode應用,但是無法部署新的chaincode。
用戶之間相互知道身份,但是并不知道相互之間做了什么。
Privacy and confidentiality 隱私與保密
Hyperledger Fabric 使競爭商業(yè)組織、任何需要私有、保密交易的組織共存在同一個許可網(wǎng)絡中。私有channel限制消息路徑來給特定子網(wǎng)成員完成隱私和保密交易。沒有該channel權(quán)限的用戶無法見到和訪問channel的任何數(shù)據(jù),包括交易、成員和通道數(shù)據(jù)。
Efficient processing 高效的處理
Hyperledger Fabric 根據(jù)節(jié)點類型分配網(wǎng)絡角色。為給網(wǎng)絡提供并發(fā)和并行,交易執(zhí)行從交易共識和承諾中分開。執(zhí)行交易先于共識是每個peer節(jié)點能同時處理多個交易。并發(fā)執(zhí)行提高了每個peer節(jié)點的執(zhí)行效率,加速了分發(fā)交易到 ordering 服務。
除了能夠進行并行處理之外,還使交易處理和帳本維護的節(jié)點得到了拆分,peer節(jié)點沒有了共識的工作負載。這樣分工同樣降低了授權(quán)和認證的處理需求;所有peer節(jié)點不需要信任全部 ordering 節(jié)點,反之亦然,因此處理能被獨立與對方認可外運行
注:說白就是將peer和orderer拆分了,將交易處理過程也拆分了,一定程度的實現(xiàn)了流水化。
Chaincode functionality 鏈碼/智能合約功能
Chaincode應用編碼了在channel上執(zhí)行特定類型交易的邏輯。Chaincode定義資產(chǎn)所有權(quán)變更的參數(shù),例如,確保轉(zhuǎn)讓所有權(quán)的所有交易都遵守相同的規(guī)則和要求。System chaincode 是定義了整個channel操作參數(shù)的chaincode。生命周期和配置system chaincode定義channle的規(guī)則;背書和驗證system chaincode定義了背書和驗證交易的需求。
Modular design 模塊化設計
Hyperledger Fabric實現(xiàn)了模塊化設計,網(wǎng)絡設計者能根據(jù)需求選擇功能。比如特定的識別、共識、加密算法可以插入任何 fabric網(wǎng)絡。因此,其是一個任何行業(yè)和公共領(lǐng)域都可以使用的通用區(qū)塊鏈架構(gòu),保證其網(wǎng)絡可以跨市場、監(jiān)管和地理邊境進行互操作。相比之下,其他競爭對手大多是受限于特定領(lǐng)域和行業(yè)的。
Fabric 模型
Assets 資產(chǎn)
資產(chǎn)可以是有形(實體和硬件)或無形(合同和知識產(chǎn)權(quán))的??梢院芊奖阍诳蛻舳薺avascript定義資產(chǎn),在你的Fabric應用中使用,通過Fabric Composer工具。
Fabric支持資產(chǎn)的交換,通過未使用交易輸出作為后續(xù)交易的輸入。資產(chǎn)(和資產(chǎn)注冊)在Fabric中作為鍵值對的集合存在,在channel帳本中帶狀態(tài)變更記錄作為交易。Fabric允許任何資產(chǎn)采用二進制或JSON格式表示。
Chaincode
Chaincode 是定義資產(chǎn)和修改資產(chǎn)的交易指令的軟件。也就是說,它就是業(yè)務邏輯。chaincode執(zhí)行讀取和修改鍵值對和其它狀態(tài)數(shù)據(jù)庫信息的規(guī)則。chaincode 函數(shù)基于帳本當前狀態(tài)數(shù)據(jù)庫執(zhí)行,通過交易提案初始化。chaincode 執(zhí)行結(jié)果是一系列鍵值對寫入,其被提交到網(wǎng)絡并被所有peer節(jié)點的帳本記錄。
Ledger Features 帳本特性
帳本是fabric中所有狀態(tài)轉(zhuǎn)換的記錄,其記錄為順序、防篡改。狀態(tài)轉(zhuǎn)換是參與方提交的chaincode的執(zhí)行結(jié)果。每個交易結(jié)果是一系列鍵值對提交給帳本來創(chuàng)建、更新或刪除。
帳本由一個區(qū)塊鏈來保持不可變更、順序記錄在區(qū)塊中,同時一個狀態(tài)數(shù)據(jù)庫來維護fabric當前狀態(tài)。每個channel一個賬本。每個peer維護所屬每個channel的一個賬本拷貝。
- 檢索和更新賬本使用基于key查找、范圍檢索和組合key檢索
- 只讀檢索使用富檢索語言(如果使用 CouchDB 作為狀態(tài)數(shù)據(jù)庫)
- 只讀歷史檢索 - 檢索一個key的賬本歷史,可以查看數(shù)據(jù)來源(enabling data provenance scenarios)
- 交易由各版本的鍵值對組成,chaincode (讀集合)讀取的和chaincode寫入的(寫集合)
- 交易包括每個背書peer的簽名,提交到ordering服務
- 交易被ordered(排序?共識)進區(qū)塊,從ordering服務發(fā)布到channel的peer節(jié)點中
- peer節(jié)點根據(jù)背書策略驗證交易并執(zhí)行策略
- 在添加新塊之前,將執(zhí)行版本檢查來保證資產(chǎn)的狀態(tài)從chaincode執(zhí)行時刻開始沒有被改變
- 一旦交易被驗證和提交就不可以被改變
- 一個channel的帳本包括了配置區(qū)塊,其定義了策略、訪問控制列表和其它相關(guān)信息
- channel 包括成員服務提供者實例允許從不同證書機構(gòu)加密材料
閱讀帳本主題,深入了解數(shù)據(jù)庫、存儲結(jié)構(gòu)和"檢索能力".
Privacy through Channels 跨通道隱私
Fabric 實現(xiàn)了基于每個channel的不可變帳本,同時chaincode可以操作和修改資產(chǎn)的當前狀態(tài)(比如,更新鍵值對)。一個賬本存在于一個channel范圍 - 它可以被整個網(wǎng)絡共享(假設每個參與者都在一個共同的channel內(nèi)操作) - 或者可以私有給有一組特定的參與者。
在后續(xù),這些參與者將能創(chuàng)建一個分離的channel,因此隔離/分離他們的交易和賬本。Fabric甚至能解決這樣的場景:希望彌合全局透明度和隱私之間的差距。Chaincode僅安裝在需要獲取資產(chǎn)狀態(tài)來執(zhí)行讀寫操作的peers(換句話說,如果一個chaincode沒有安裝一個peer,它將不能與賬本交互)。為了更進一步的隔離數(shù)據(jù),chaincode內(nèi)的值可以在附到賬本前使用通用的加密算法,如SHA-256,來加密(部分或全部)。
Security & Membership Services 安全和成員服務
Hyperledger Fabric 加強了交易網(wǎng)絡,所有參與者都有已知的身份。公鑰基礎(chǔ)設施用來生成與組織,網(wǎng)絡組件以及最終用戶或客戶端應用程序相關(guān)聯(lián)的加密證書。因此,數(shù)據(jù)訪問控制可以在網(wǎng)絡和channel層面進行操作和管理。Fabric的“許可”概念,加上channel的存在和功能,有助于解決隱私和機密性至關(guān)重要的場景。
參看 Fabric CA章節(jié)來更好的理解加密的實現(xiàn),以及在Fabric中的簽名、證明、驗證實現(xiàn)。
Consensus 共識
在分布式帳本技術(shù)中,共識最近變成一個實現(xiàn)獨立功能的特定算法的同義詞。然后,共識不僅是簡單的同意交易的順序,它是貫穿了整個交易流程中的基本角色,從提案、背書、到確認順序、驗證和承諾,Hyperledger Fabric中強調(diào)這樣差異。簡單來說,共識是對一個塊內(nèi)一組交易正確性的全生命周期驗證。
當一個塊內(nèi)交易的順序和結(jié)果符合明確的政策標準檢查時,共識最終達成。這些檢查和平衡發(fā)生在一個交易的生命周期內(nèi),包括的背書策略使用,指定特定成員必須對特定交易等級背書;同時系統(tǒng)chaincode保證這些策略被執(zhí)行和堅持。在承諾前,peers將執(zhí)行系統(tǒng)chaincode來保證足夠的背書存在,而且它們是從恰當?shù)膶嶓w發(fā)布而來。更進一步,當帳本的當前狀態(tài)被同意時將進行版本檢查,在任何包括交易的區(qū)塊被附加的帳本前。這個最終的檢查時為了保證避免雙重支付和其它可能可能導致危機數(shù)據(jù)完整性的其它威脅,并允許對非靜態(tài)變量執(zhí)行函數(shù)。
除了大量背書、有效性和版本檢查之外,同時還有在交易流程中所有方向上持續(xù)存在的身份識別。訪問控制列表在網(wǎng)絡層上分級實現(xiàn)(從ordering服務下到channels),并且隨著交易穿過不同架構(gòu)組件,payloads(負載在不同層次上是不同的)被重復簽名,驗證和認證。 總而言之,共識不僅僅局限于一批交易的順序達成一致,而是作為在交易從提案到承諾的過程中進行持續(xù)驗證的副產(chǎn)品而實現(xiàn)的總體。
查看可視化共識機制 - 交易流程圖