企业区块链选型权威指南

企业分布账本技术(Distributed Ledger Technology)需要解决5个方面的挑战:数据隐私性、技术正当性、 可伸缩性、最终一致性和互操作性。本文将对企业以太坊(Quorum)、Hyperledger Fabric和Corda就这些环节进行比较。

如果希望快速掌握区块链应用的开发,推荐汇智网的区块链应用开发系列教程, 内容涵盖比特币、以太坊、eos、超级账本fabric和tendermint等多种区块链,以及 java、go、nodejs、python、php、dart等多种开发语言。

1、数据隐私性

应该说绝大多数机构都不会愿意与市场中的对手分享其竞争优势。如果竞争对手可以访问区块链上 的企业私有数据,那么相信绝大多数企业都不会选择这种区块链技术。因此我们要对比的这几种 企业区块链都采用了许可机制,以确保只有许可的节点才能够加入网络。

1.1 Quorum

Quorum是企业级的以太坊实现,它将世界状态区分为公共和私有两种,并且使用 加密的P2P消息通信。

虽然Quorum提供了私有数据传输的选项,但是并没有考虑人为、商业逻辑或代码错误所带来的 潜在的数据泄露风险。此外,Quorum依赖于使用zk-SNARKS实现的零知识证明安全层(ZSL), 而这一密码学技术相对而言还缺少足够的测试,并且不能对抗量子计算,这是值得注意的 一点 ,当然对于某些机构而言没太大影响,但是对于全国性的金融机构而言,就需要考虑 量子计算的问题了。

1.2 Hyperledger Fabric

超级账本Fabric项目提出了通道的概念,用来保护数据的隐私。应当指出的是,随着网络 的叩打,管理通道的创建和维护会变得越来越困难。

Hyperledger Fabric也提供了zk-SNARKS支持。通道和零知识数据证据的结合的确能够支持 一个相对严谨的隐私模型,但是也带来了开发和处理方面的高成本。

由于固有的隐私设计方面的问题,Hyperledger Fabric也已经进行了若干次重构,因此当 需要考虑你的应用的后向兼容性时,别忘了这一点。

1.3 Corda

Corda使用点对点的交易模型,天生支持隐私交易。数据仅暴露给需要了解的人,例如 交易目标以及notary集群。

一个点对点的模型,在数据篡改方面会有更大的风险。Corda的威胁模型使用了Notary共识, Notary将拒绝被篡改资产的状态更新。一个攻击者需要勾结所有的相关参与方,同时也需要 控制特定的notary基础架构。

2、技术正当性

企业分布账本技术应当尽量避免技术方面的摩擦,使用经过考验的技术,并考虑协议或开发语言的 未来可能的变化。

2.1 quorum

Quorum使用Solidity进行智能合约开发,这是一把双刃剑。对于公有链来说,EVM和 Solidity无疑是去中心化应用的最流行的选择,这意味着从公链到私有以太坊区块链的 技能共享是一个独特的优势。

但是,基于个人经验以及众多声名狼藉的事件,例如DAO攻击、Parity多签钱包攻击等等, Solidity程序错误导致的后果可能是灾难性的。

应当说以太坊出色的核心开发团队已经意识到了这一点,并且正在使用eWASM来替换EVM。 我希望Quorum也能跟随这一方向。

2.2 Hyperledger Fabric

Hyperledger Fabric中的智能合约被成为链码,支持Java、NodeJS、Golang和Python。 有趣的是,Hyperledger Fabric支持以太坊,我猜测是为了在短期内利用开发者 的EVM区块链上的开发技能。

2.3 Corda

Corda依赖于广泛经过考验的技术:Java(或Kotlin)、AMQP和SQL数据库。

Corda的智能合约使用Corda的流引擎开发,该产品正在进行重大升级,以便支持开发者 能够聚焦于核心业务逻辑,并提供相对较短的学习曲线。

Corda的交易依赖于企业中的传统架构,在交易中可以包含法律条款(李嘉图合约)。 在Corda区块链上,代码不是法律,法律才是法律。

3、可伸缩性

可伸缩性是区块链和分布账本技术的圣杯,在某些情况下也是大规模应用区块链的瓶颈所在。 对于企业而言,可伸缩性和交易吞吐量(TPS)是需要考虑的重要因素。

可伸缩性三元悖论指的是,当可伸缩性提升时,去中心化或安全则会受损。企业分布账本技术 已经找到了创新的技术来解决这个问题。

3.1 Quorum

Quorum通常可以达到100-200TPS的吞吐量,不过这一数据依赖于网络设计、硬件资源等因素。

3.2 Hyperledger Fabric

据报道,超级账本Fabric可以达到2000~20000 TPS的吞吐量,这令人印象非常深刻,已经达到 企业级应用的水准了。

3.3 Corda

Corda企业版提供了多线程能力,可以非常显著的提升交易吞吐量。DTCC最近证实在170个 云节点组成的区块链上达到了6300TPS的吞吐量,这一指标大约等价于每天处理1.15亿个交易。

4、最终一致性

无可争议的一点是,像比特币或以太坊这样的公链所使用的POW共识,不适合企业 采用,在POW共识中,一旦区块提交到账本,随着链的增长,区块被反转的几率指数性减少, 但是永远也达不到数学上的最终一致性 —— 你知道在公链上存在着51%攻击。

最终一致性基本上是二元的,一个交易要么被视为完成,要么没有。上面的三个项目都 提供了实现最终一致性的共识算法。因此三者都通过了这一环节的测试。

5、互操作性

让我们考虑一秒钟,假设我们在1970年, Let’s consider for a second that we’re in the 1970s— Satoshi is but a wee boy/girl/group/nation-state/AI/thing.

每个人都理解互联网有改变世界的潜力,但是这一点并不是立刻变得很清晰。互联网实际上是一些分立 的网络,使用不同的编程语言,也没有标准的协议设计。

知道区块链有了它的TCP/IP时刻,并且达成了标准 —— Polkadot和Cosmos看起来有希望,还有 Jasper/Ubin的先驱性的工作 —— 跨链的互操作性现在看来,还很遥远。

因此为了便于比较,让我们对比同质区块链的互操作性,在同一个DLT网络中的应用 如何进行互操作。

5.1 Quorum

企业以太坊,在企业以太坊联合会的指导下,所提出的客户端规范V3,是走在了正确的 方向上。目前还没有谈到何时由谁来采纳这些标准,虽然我猜测EEA的成员将朝着这一 方向前进。

Solidity允许合约彼此调用,这可能会带来重入的安全问题,因此应当小心对待。

5.2 Hyperledger Fabric

虽然通道能够提升速度并且显式地支持隐私,它同时也有一些不容忽视的缺点。

例如,在通道之间缺乏互操作性。虽然也有哈希时间锁定合约以及哈希时间锁协议 这样的解决方案,但是公平的说一个通道里的资产还是需要在其他通道中重新发行。

就我个人认为(以及Gendal Brown,Corda的CTO),这是在设计缺陷上打补丁的做法。

5.3 Corda

Corda的核心原则之一就是互操作性,从一开始,Cord就是设计为可以在Corda应用 间实现互操作性。Corda网络的涌现允许节点互联网来通过一个安全层交换资产或数据。

Corda Settler 甚至允许创建连接外部支付的模块。

6、结论

当选型企业区块链技术时,和其他任何软件一样,你必须考虑框架的各种优缺点, 以及与你的应用的契合度。我希望本文能提供一些帮助。


原文链接:Choosing an Enterprise Blockchain: An exhaustive guide

汇智网翻译整理,转载请标明出处