对于许可链,三种区块链协议已成为首选: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