前一篇为大家介绍了Hyperledger Fabric联盟链的架构,谈到联盟链就不得不提到比Hyperledger 还要更资深的R3 Corda

R3 联盟

R3 于2014 年由David Rutter(CEO)、Todd McDonald(COO)、Jeese Edwards(CFO),三人创立,名字则由CEO Rutter 的R 以及象征3 位创始人的3 来命名。创立至今已经有80 家以上的国际银行加入联盟的行列,台湾的中国信托银行也是成员之一,在区块链业界是非常知名的联盟链代表。

R3 Corda

由R3联盟开发的Corda严格来讲并不能说是区块链,因为它本身并不会将所有的资讯打包成区块,并透过Hash将所有区块「链」起来,顶多其中的交易讯息会透过UTXO的链式结构串连起来,因此正确的来说应该是DLT ( Distributed Ledger Technology )分散式帐本的技术。

R3 Corda 的性质与Hyperledger 在某种程度上非常相似,都希望建构一个企业级的分散式架构,允许企业在使用时能够兼具效能、安全以及资料隐私三大重点。比较特别的是, R3 Corda 专注于打造适合金融领域的分散式帐本技术架构,因此相较于Hyperledger Fabric 会将功能收敛至适合金融领域的应用。

共识机制

Corda 验证交易有效性与唯一性的机制类似于Fabric ,都是在交易的层面来达成共识。Corda 引入了Notary 的角色,Notary 的中文意思是「公证人」,可作为每一笔交易的审查节点。简单来说,Notary 记录了所有通过它验证过后的交易输入( Input )以及输出( Output ),因此当新交易被提交以后, Notary 就会查询所有交易完成的历史交易纪录来验证此笔交易的合法性,也就能避免双花(Double Spending )的情况发生。

智能合约

Hyperledger Fabric 的智能合约目前支持的程式语言有Go、JavaScript 和TypeScript,在Hyperledger Fabric 中以Chaincode 作为其中智能合约的同义词。

R3 Corda 一样支持智能合约,其支持的程式语言为面向JavaScript 和JVM 的Kotlin 。其中比较特别的是,R3 Corda 除了可以支持智能合约外,还能够包含法律行文( Legal Prose ),赋予相关法律行为的程式码与合法性。这种融合智能合约与法律条文的架构称为“ Ricardian 合约”。前述提到,R3 Corda 是专注于打造适合金融业应用场景的技术,因此面对金融产业不容忽视的严格监管环境,这样的设计是非常合适的,这也是目前Hyperledger 所没有的功能。

总结

其实Hyperledger 跟R3 Corda 宏观的概念非常相似,比起说他们是同行的竞争对手,不如说他们是一起为联盟链努力的伙伴关系,R3 从Hyperledger 专案第一天开始就是会员之一,未来也有计画将Corda 开源贡献给Hyperledger。两者之间的选择,完全要视应用的需求来做选择,没有绝对的谁优谁劣,只有哪一个更适合自己的应用场景而已。以下两个场景供大家参考判别:

希望能够采用简单的架构以及更低廉的采用成本,并且项目处于严格监管环境之下的金融应用场景。 有多种客制化的需求需要满足,因此希望能有灵活拔插功能组件的架构。 的情况更适合采用R3 corda 作为底层技术,而2.就非常类似Flowchain 的场景,适合采用Hyperledger Fabric。