由Linux基金會主導的Hyperledger,經IBM、Intel開發支持的專案,是一專注在聯盟鏈、企業級應用的分布式帳本。Linux基金會曾維運Open Source非常久的時間,有很好的reputation。Hyperledger算是一種聯盟鏈,其和公有鏈(Ethereum、EOS等)不同之處還是在使用的範籌,聯盟鏈主要是給已有某種程度共識和信任的組織、商企或個人使用,適合B2B場景,不面向一般路人甲乙丙丁。Hyperledger據悉已有122個會員,是全球最大的區塊鏈聯盟(那R3呢?)。
Hyperledger
的設計比較偏向企業用戶,會基於對彼此可能已有信任基礎或流程下設計的,因其較需要有參與者的身份認證,如AML/KYC等金融管制的需求,同時企業應用也常會需要有不同權限的許可調閱資料或新刪改查等功能,不能如公鏈一樣赤裸裸的完全公開且無權限大小之分,通常而言企業需求:
- 參與者需作ID驗證
- 需有權限或角色、流程管理
- 高可用度、高TPS
- 穩私權保護
比較特別的是Hyperledger是多個專案的集合,包括Fabric、Swatooth、Indy、Burrow等不同目的及使用範圍的項目:

Fabric
Fabric設計是「認許制」,跟完全公開透明的Bitcoin及Ethereum不太一樣,交易節點是被驗證且已知的,減少用演算法建立信任的成本(挖礦共識),驗證交易也不需要全部節點驗證,以此加快速度。也許這樣的設計更適合現實的生活場景和商業應用,完全的去中心化就目前而言還是很難實現的,至少先達成有限範圍的部份去中化是有機會的。
其是採模組化可插拔設計,是為了在不同的場景中運用不同的流程設計,甚至連共識機制也是可插拔的,例如有時可用crash fault-tolerant(CFT, 非拜占庭錯誤)、有時可用byzantine fault tolerant(BFT, 拜占庭錯誤)。且不需要使用token來作為激勵,因聯盟鏈本身就會有其金流或價值交易管理,鏈本身不需要來處理這塊,也就避掉一些挖礦而產生的副作用,包括投機和資源浪費等問題。
是Hyperledger的核心專案,其包括五個主要模組:
- Peer:節點模組,負責儲存、執行chaincode
- Orderer:負責將交易打包、排序
- Cryptogen:處理加密事務,包括公私鑰等
- Configtxgen:負責出塊和交易的模組
- Configtxlator:負責解析交易內容的模組

Peer(節點)是一個獨立存在的實體。在沒有加入任何Channel之前,是不能夠做任何業務的,因為沒有業務載體。
Chaincode則是裝在Peer節點上(類似Ethereum的智能合約),讓每個節點開始運行其業務或商業邏輯(execute-order-validate),有點像企業內部的簽核流程。
Channel則是業務載體,連通其他節點或帳本,每個Channel都有其獨立的帳本。而每個Peer可以加入多的Channel,不在Channel的Peer是看不到其帳本的,並配合MSP可以作到精準旳權限控管。其他的區塊鏈可能使用類似Zero-knowledge Proofs(ZKP)來作為資料的保密及穩私,但在Fabric裡直接用Channel去決定誰能進來,並且看到相關的chaincode和transaction。
Pluggable Consensus

「從企業的觀點來看,他們要一種可選擇的透明化。」Chris Ferris一語點出企業私有區塊鏈技術的關鍵。只讓需要知道交易細節的夥伴,以許可制(Permission)的方式,獲得授權看見交易細節,或讓第三方的審查者(Regulator)可以進入做稽核。
Fabric要利用區塊鏈技術來實做出一個能通吃所有應用的底層架構,並且要打造出一套標準化的元件,將各種區塊鏈的執行過程拆解成基礎元件,諸如共識機制、會員許可機制等,再設計成可插拔(Pluggable)的形式。Chris Ferris表示,Fabric最大特色就在於「拆解」,藉此來達到提升運算效能的目的。
「因為我們採許可制,所以簡化了每個節點執行交易的過程,只有需要知道且獲得授權的節點參與即可。」Chris Ferris進一步解釋,如A單位和B單位進行交易時,若C為主管機關,只要A、B、C三者達成共識即可,不需要由每個節點來建立共識。「因為能單獨處理驗證所需的局部工作,這種簡化後的共識機制,可以讓運算效能大幅提升。」
參考: