對於許可鏈,三種區塊鏈協議已成爲首選:Hyperledger Fabric
,Enterprise Ethereum
和R3 Corda
。Fabric和企業以太坊都是任何行業的通用工具,而Corda是爲金融行業定製設計的。每個協議選項都有非常不同的沿襲和設計重點,並且這三個協議都已被當今運行於生產質量系統上的嚴肅的企業和政府廣泛採用。
Enterprise Ethereum | Fabric | Corda | |
節點許可 | 基於智能合約的規則,將基於文件的每個節點的規則作爲本地替代。 | 可在節點,通道和聯盟級別上配置。 | 受信任的網絡地圖服務在每個節點上均輔以基於文件的配置。Corda網絡被劃分爲由單獨的證書頒發機構管理的兼容性區域。 |
身分識別 | 公鑰-分佈式,並且在基於以太坊的鏈之間可互操作。通過證明與PKI耦合。 | 基於具有本地組織身份的PKI。在共識和許可中始終使用組織身份,而不是個人身份。 | 基於具有個人和組織身份的PKI。 |
密碼學 | secp256k1 | 可插拔(具有secp256r1和secp384r1內置的ECDSA)。 | ed25519 secp256r1 secp256k1 RSA(3072bit)PKCS#1 SPHINCS-256(實驗性) |
交易共識 | 定序->執行/驗證 | 執行->定序->驗證 | 執行/驗證->定序/公證 |
應用責任 | 將簽名的事務發送到網絡中的一個節點。 | 直接與所有其他參與者進行協調以獲得認可,管理對狀態,簽名和提交的樂觀併發鎖定。 | CorDapps使用流程框架與交易對手進行協調,以協商提議的更新,獲取簽名並最終通過公證服務完成。 |
應用共識算法 | Proof-of-Authority (BFT). Raft (CFT with trusted leader). Istanbul BFT (BFT with deterministic leader rotation). Tendermint | Kafka/Zab (CFT with trusted leader). Raft (CFT with trusted leader). | Raft (CFT with trusted leader) BFT |
智能合約引擎 | EVM,進程內沙箱 | Docker隔離 | 確定性JVM |
智能合約語言 | DSL(Solidity, Serpent),保證確定性。 | 允許使用全語言(Go,Node.js,Java),non-determinism is tolerated。 | Java, Kotlin, deterministic by using recommended libraries |
智能合約生命週期 | 一成不變的。易於部署。存儲在鏈上。 | 需要精心的過程來部署/更改。脫鏈存儲。 | 需要節點級管理操作才能部署/更新。脫鏈存儲。正在進行的工作是將共識關鍵代碼與非共識關鍵代碼拆分爲不同的存儲策略(分別在鏈上和鏈外) |
智能合約升級 | 擴展/遷移代碼和數據的編程模式。 | 通過管理程序和升級交易替換鏈下代碼。 | 具有基於散列約束的合同通過節點級管理程序和協調流程進行顯式升級,以進行授權和升級。只要根據約束條件和散列匹配項進行簽名,具有簽名約束條件的合同就會自動允許執行新版本。 |
資產代幣化 | 本機功能許多令牌標準:ERC20 / ERC721 / ERC777等。 | 可以使用定製解決方案。 | 可以使用定製解決方案。Corda Token SDK使構建更容易。 |
多鏈 | 每個鏈都是唯一的,並且需要單獨的節點運行時間(最少或3或4個,取決於共識)。 | 具有共享對等運行時和共享定購者的本機功能(通道)。用於創建具有孤立狀態的側鏈的內置治理。 | 沒有鏈的概念(共享分類帳)。事務始終明確地針對特定節點。國家的範圍僅限於指定的公證人,可以將其重新定向到其他公證人。 |
私人交易 | Public hash represents input. | Public hash represents input and private end state. | 本質上,所有交易都是私有的。驗證公證人可以看到整個交易。 |
貢獻者社區 (截至撰寫時) | Go-Ethereum: 429 Quorum: 383 Besu: 60 Autonity: 360 | Fabric: 185 | Corda: 146 |
社區脈動 (2019年11月) | Go-Ethereum: 15 authors, 98 PRs Quorum: 9 authors, 13 PRs Besu: 23 authors, 66 PRs Autonity: 6 authors, 6 PRs | Fabric: 31 authors, 220 PRs | Corda: 33 authors, 91 PRs |
企業級以太坊的不同實現版本
EE Client | Modified From | Developer | Open Source License |
Quorum | go-ethereum | JPMorgan Chase | LGPL |
Besu | New implementation in Java | PegaSys | Apache 2.0 |
Autonity | go-ethereum | Clearmatics | LGPL |
Strato | Haskell Ethereum | BlockApps | Closed-source |
參考:
Enterprise Blockchain Protocols: A Technical Analysis of Ethereum vs Fabric vs Corda