区块链互操作性,Part-2:Polkadot

Polkadot

Polkadot 是另一个由强大的技术团队领衔,并致力于解决区块链间交互性的项目。Polkadot 由 Parity 开发,后者是 Web3 基金会的成员。他们因以太坊客户端 Parity(由 Rust 语言编写)而闻名遐迩。

-The Polkadot Network <注 10>-

技术设计与协议

共识

正如 Cosmos 所做的那样,Polkadot 将共识架构与状态程序分离开来。据其白皮书所述,Polkadot 的共识引擎实际上受到了 Tendermint 和 HoneyBadgerBFT 的启发 <注 11>。

-Polkadot 技术栈辨析。点对点网络加上共识机制作为上层,共识机制通过 WebAssmbly 解释器与区块链状态机相连 <注 12>。-

然而,在最近的 Youtube 视频中,Polkadot 团队提到他们计划使用 Aurand 和 Tendermint for PBFT 的混合共识机制。Aurand 允许随机选择验证人出块,而不需要 2/3 成员的共识。混合共识引擎的设计使得共识形成更快,但是,如果验证人存在恶意行为,区块也有可能被回滚 <注 12>。

-Tendermint PBFT 和 Aurand 的混合设计。在设计中,Tendermint 可以每 5 个区块实现最终性,但其中的 4 个区块可以快速处理而无需 2/3 的共识。它会比 PBFT 更快,但也牺牲了一些东西。恶意区块可以出现,但只要有需要就可以回滚 <注 12>。-

Polkadot 的互操作性

Cosmos 和 Polkadot 实现交互的策略也十分相似。Polkadot 网络有个中继链(Relay Chain),是一个功能类似于 Cosmos Hub 的中心连接器。它也有连接到中继链的区块链,这些区块链被称为平行链(Parachain)。Cosmos Zone 和 Parachain 的用途相同。Polkadot 还将配备连接活跃区块链的 Bridge,它的作用也跟 Cosmos Peg Zone 类似。

Parachain

Parachain 和 Cosmos Zone 都使用链中继来实现区块链间的交互。但在具体实现上两者有所不同。最大的区别在于如何与链相连及实现安全共享。在 Polkadot 中,网络安全可以汇集和共享。这就意味着,单一的链可以利用集体安全性来增强自身的吸引力和信任度,而不需要从零开始 <注 13>。

这个方案是通过绑定 Dot 以创建新的平行链,或者取消 Dot 绑定以移除无用的平行链来实现的。而 Cosmos 不要求绑定 Atom 来创建一条新链,他们用治理的方法决定中央的 Cosmos Hub 是否应该连接到 Cosmos Zone <注 13>。

Bridges

Bridge 和 Peg Zone 在各自网络中的作用相同。它们都可以来连接到实时的区块链网络,例如以太坊主网。Cosmos 和 Polkadot 都希望在启动时能够快速地连接到以太坊主网。

实现两条链之间的互操作

如前所述,第一条与 Cosmos Hub 交互的链是 Ethermint。很有可能,Polkadot 也会创建一条类似 Ethermint 的链。对此,Polkadot 队应该能够轻松应对,毕竟他们在以太坊 Parity 客户端上积累了相当多的经验。

Polkadot 网络

Polkadot 网络是 PoS 证明的区块链,其原生代币是“Dot”。Dot 可以提供治理,以及在理论规则上激励代币持有人诚实行事。网络的中心部分是中继链,其作用类似于 Cosmos Hub 在 Cosmos 网络中的功能。Polkadot 网络拥有四种主要股权利益人:验证人,提名人(Nominator),校对人(Collator)和渔夫 <注 13>。Polkadot 也会通过“slashing”来惩罚作恶行为。

Polkadot 上的验证人和 Cosmos 中的验证人作用相同,提名人和 Cosmos 中的委托人类似 <注 11>。下面的图表来自 Polkadot 白皮书,显示了每个股权利益人之间如何相互关联。

- Polkadot 网络中的 4 类权益持有者之间的交互 <注 11>。-

验证人并不会维护所有 Parachain 上完全同步的数据库,因为存储的数据量过于庞大。因此,验证人把存储和验证新的 Parachain 区块的任务交给第三方,我们称之为“校对人(Collator)”。校对人的主要任务是生成有效的 Parachain 区块。他们必须维护一个全节点。校对人还需对未封装的块进行零知识证明,并将其提供给一个或多个负责向中继链提交平行链区块的验证人。校对人和验证人会从这些任务中收取一定的费用 <注 11>。

渔夫会像自由赏金猎人一样,寻求大笔的奖励。可以预料的是,仅仅他们的存在就能使作恶行为极少发生。因为验证人和校对人都知道,一旦他们作恶就会被渔夫抓到并接受惩罚。渔夫会在 Polkadot 网络上发送验证人或校对人的任何非法活动证据 <注 11>。

治理分为几个层次,主要是在网络上通过 Dot 投票。Polkadot 团队还计划设立一个 12-24 个账户组成的理事会,对没有得到股权利益人重视的提案进行投票 <注 14>。这是一个对低选民投票率提案的备用解决方案。他们还承诺加入自适应仲裁偏差,并为选票赋予不同的投票权重指标,例如为长期持有人或验证人,甚至是长期为网络做出贡献的 dApp 开发团队赋予更多的投票权重 <注 15>。但是,目前这些想法只停留在概念阶段。

主网启动的当前状态

Polkadot 团队的第一个概念验证(proof of concept)已经能够验证区块,并实现状态转换。他们已经实现通过测试网络发送 Dot 代币。概念证明是用 Rust 写成的,之后将支持 WebAssembly。他们计划将在 2019 年 Q3 发布主网,并一直表示他们正在努力实现这一目标。

Polkadot上的开发构建

Substrate

Substrate 是一个用于构建区块链的技术堆栈。它与 Cosmos 中 Cosmos SDK 的作用十分相似。Polkadot 网络建立在 Substrate 之上,就像 Cosmos 网络建立在 Cosmos SDK 之上。你并不用担心共识或网络性,而只需要专注于区块链应用本身。

Substrate 是用 Rust 写成的,但是状态机的核心功能将会被编译成 WebAssembly。它可以直接使用编译的Rust代码,或者通过 WebAssembly 翻译器运行 <注 14>。详见下图。

-只要原生的客户端节点更新到最新数据,它可以原生地运行 WebAssembly 代码;但如果没有,它就不得不使用链上 WebAssembly 解释器,这样会更慢 <注 14>。-

在 Polkadot 上创建 dApp

你可以在支持智能合约的 Parachain 上构建 dApp。这一点也类似于 Cosmos,因为 Polkadot 的 Relay Chain 和 Cosmos Hub 都不支持智能合约,但它们都可以连接到支持智能合约的链。

比较 Cosmos 和 Polkadot

让我们来看看这两个网络的主要组件,以及它们是如何相互竞争的。这是本文最有价值的部分,你可以比较两个项目的不同,并自行判断哪个网络未来可能会更成功。

共识协议

它们都使用 Tendermint 进行 PBFT 共识,尽管 Polkadot 承诺将使用与 Aurand 相辅的混合共识协议。混合共识方案加速了共识的形成,但它也导致了区块回滚的可能。两种方案都还需要在活跃区块链网络中经受实践检验。当然,两种共识协议也远快于以太坊和比特币网络的 PoW 共识。

Polkadot 还在他们的网站上提到将使用“积极的 BFT 权威证明(Optimistic BFT Proof of Authority)”,但我们尚不清楚它们具体是指什么。Web3 基金会最近表示,“Polkadot 被设计为完全开放和公开的,不需要由任何特定的组织或可信的权威来维护”。从 Polkadot 在白皮书中提出的整体设计来看,显然,Dot 的 PoS 证明将在共识中占据主导地位。即使权威证明(Proof-of-authority)最终会使用,也只可能是个次要角色。

代币和 PoS 设计

它们都有用于治理和股权代理的代币。两个网络都有保护网络安全的验证人,和可将代币委托给验证人的委托人/提名人。Polkadot 网络中还加入了校对人(用于帮助处理平行链)和渔夫(用于密切监视网络中的作恶者)。两个项目都有对作恶者的惩罚措施,并在主网上线时,相应的惩罚指标可能会进行调整和测试。总结来说,Polkadot 的 PoS 共识设计更为精妙,但也更加复杂。

Cosmos 的优势在于他们将首先发布主网,并且相对简单的设计也使股权利益人更容易组织和创建稳定的去中心化网络。Polkadot 的优势在于,四种权益人的配置可以使网络变得更加去中心化。现在很难说两个项目的设计孰优孰劣,但时间会给出答案。

治理

Cosmos 在治理方面的协议并不复杂,因为它仅仅依靠验证人,委托人和成文宪法。

Polkadot 在治理方面更加完备,它还设置了自适应仲裁偏差,以及一个验证人组成的理事会,用于处理没有得到股权利益人重视的提案。

活跃区块链中的 PoS 治理在很大程度上未经过测试。我们可以期望,这两个项目团队都能够提出对应的解决方案,以便在测试之初调整治理协议。这两种设计模型都足够简洁,可以通过小规模的迭代和改进,过渡到一个更强大的去中心化治理系统。一开始就强加一堆制度和规则的方法不可取,还不如从简单的开始,逐渐增加复杂性。这也是这两个项目的高明之处。

网络也需要足够去中心化,以防止某些恶意的验证人控制整个网络。值得庆幸的是,由于运行软件的低门槛,这将使他们能够避免 EOS 主网启动时所面临的问题:只有 21 个区块生产者导致网络过于中心化。

安全性

Polkadot 允许平行链和中继链共享“池安全”(pool security),而 Cosmos 则由 Zone 来保护自己的网络安全。这就意味着开始一个新的中继链,就必须积累大量的 Dot,并质押这些代币以便将平行链连接到 Polkadot 网络。因此每条平行链的安全性根植于 Dot 本身,这样也就是在整个网络中创建了一个共享安全模型。

Cosmos 允许 Zone 来管理自己的安全模型,也就是所谓的“Sovereign Zone”。这意味着,Cosmos Hub 将使用治理决定哪些 Zone 可以接入 Cosmos Hub。这个方案理论上可行,但是,如果恶意的 Zone 成功欺骗验证人相信它们是合法的,那它也确实可以接入网络。而一旦恶意的 Zone 连接到网络中,它就可能有多种方式攻击中央的 Cosmos Hub,并从 Cosmos 网络中提取 Atom。

通过 Cosmos 的 Sovereign Zone,每个连接的 Zone 都必须自己创建一个安全的去中心化网络。所以,如果 Cosmos Hub 有 5 个完全可用的 Zone,则可能会有 100 个 Cosmos 验证人,和 5*100 个 Zone 的验证人。这是一个比 Polkadot 更加去中心化的模型。如果正常工作起来,运行效果应该会很好。

可以想象,100 个 Polkadot 验证人可以保护 Relay Chain 和 5 条 Parachain,而Cosmos 网络则需要 100 个 Hub 验证人和 500 个 Zone 验证人。这也使得在 Polkadot 模型中,创建新的 Parachain 会相对更容易,但同时也意味着权力会集中到 Dot 所有者手中。而 Cosmos 是一个更加去中心化的安全模型,但实施起来也更困难。

但是,Cosmos 团队也宣称,他们计划在主网上线后不久支持共享安全模型。一旦他们实现这个计划,将会给开发者带来极大的灵活性。因为开发者可以在 Cosmos 上共享基于 Atom 的安全性,或者创建自己的代币和安全体系。采取两种安全模型所作的取舍就是通过治理将 Sovereign Zone 添加到网络中,这也为恶意 Zone 连接到网络中提供了可能,尽管这种情况不大可能发生。

速度和可扩展性

两种共识协议的处理速度都可达每秒 1000 笔交易(1000 TPS)。这也取决于网络中有多少节点及网络相应的参数设置。对于增加的每个 Parachain 和 Zone,它都会增加可处理的交易量,因而两种网络可以轻松达到 1000 TPS 的交易量。真正的瓶颈在于每个 Zone 和 Parachain 中运行的状态机程序。

可互操作性

两个网络都通过链中继(chain-relays)连接到一个中央枢纽。它们都通过 Peg Zone/Bridges 连接到以太坊主网,并致力于使这种连接更加迅速。另外,它们都可以快速、便捷地在各自网络上运行 EVM Zone/EVM Parachain。Cosmos 将在主网稳定后发布 Ethermint,Polkadot 可能也有类似的计划。

开发人员

Cosmos SDK 和 Polkadot Substrate 都是为了开发平台而设计的。它们使得开发者可以更方便地在网络上创建自己的区块链。两方团队都致力于构建开发者友好型的新型开发平台,就像当初以太坊用智能合约和代币所做的那样。

在这两个平台上开发的不同之处主要在于,Polkadot 使用 WebAssembly 和 Rust 语言,而 Cosmos 使用 Golang 语言。

Polkadot 远见性地支持 WebAssembly,以更好地面向未来。WebAssembly 得到了Google、Apple、Microsoft 和 Mozilla 的支持,很有可能在未来十年内得到广泛应用。Rust 也一直努力成为可编译入 WebAssembly 的主要语言之一。在未来 5 年的展望中,Polkadot 似乎在长期吸引开发者方面迈出了正确的一步。

然而,正如我们在以太坊上所看到的那样,有时首先进入市场甚为重要。还有其他支持智能合约的区块链允许使用其他语言编写智能合约,但以太坊几乎覆盖了所有的智能合约活动。正是因为他们建立了围绕 Solidity 和 EVM 的生态系统,而俘获了许多早期开发者的心。

Cosmos 将率先推向市场。在 Cosmos 上开发的主要途径是通过 Cosmos SDK 中的Golang 语言,以及 Lotion-JS——一个可基于 Ethermint 创建新链的 Javascript 实现工具。然而,Lotion-JS 网站也表示 Lotion-JS 代码尚未通过安全审核,如果想保证安全性,则必须使用 Cosmos SDK。

目前而言,Cosmos 并没有支持 WebAssembly 的相关工作。但我们可以相信,Golang 将很快增加对编译到 WebAssembly 的支持。他们已经取得了可观的进展。最后,与 Rust 相比,Golang 是一种更易学习的编程语言,在全球也有更多的开发者。

主网启动

Cosmos 将在 2018 年 Q3 发布。但 Cosmos 团队表示,在主网稳定前,他们将锁定交易,并且直到所有人都确信网络可以安全运行时才会开放回滚。

Polkadot 将在 2019 年 Q3 发布,所以他们会给 Cosmos一年的领先优势。

Cosmos 似乎在这点上很有优势,但 Polkadot 也有机会从 Cosmos 犯的错误中汲取教训。

总结

现在还很难说哪个网络会更成功。但可以肯定地说,哪个网络吸引更多的开发者,哪个网络就可以最快地发展,并占据最大的市场份额。

作为一个开发者,如果你认为 Cosmos 会更成功,那你就可以去学习 Golang 了。如果你信仰 Polkadot,那就去学习 Rust 和 WebAssembly 吧。

虽然 Cosmos 和 Polkadot 最终只有一个赢家,但值得注意的是,在某个领域中它们可能同时存在又相互联系。例如,如果两个网络都在以太坊主网上创建 Peg Zone/Bridges,那么你可以使用 Dot 的 ERC20 代币与 Atom 的 ERC20 代币进行交易。这就允许实现两个网络的安全交互。这样可能会创建一个巨大的交织区块链网络,其中以太坊,所有 Parachain 和 Zone 都是可交互的。当然,以太坊的 Plasma 链也可以接入其中。

正如我们所看到的,Polkadot 和 Cosmos 实现区块链交互网络的网络效应是极其巨大的。这两个项目都值得我们花点时间去关注其进展,让我们支持并祝愿它们取得成功。

注 1:Chain Interoperability- Vitalik Buterin, September 2016

注 2: Tendermint Whitepaper

注 3:The Cosmos Network Website

注 4:Understanding the Value Proposition of Cosmos - Cosmos Network Blog

注 5: Cosmos Whitepaper

注 6:A Beginners Guide to Ethermint - Cosmos Network Blog

注 7:The Internet of Blockchains - How Cosmos Does Interoperability, Starting with the Ethereum Peg Zone - Cosmos Network Blog

注 8:Latest in Cosmos Critical Community Update May - Cosmos Network Blog

注 9:Introducing the Hard Spoon - Cosmos Network Blog

注 10: Polkadot Network website)

注 11:Polkadot Whitepaper

注 12: EH18 Gavin Wood - Tech Talks: The Energy Blockchain - Tech Update

注 13:Polkadot Lightpaper

注 14:How Polkadot Tackles the Biggest Problems Facing Blockchain Innovators - Polkadot Network Blog

注 15: Gavin Wood Edcon 2018 Polkadot Presentation

注 16:Now Live - Polkadot Proof of Concept - Polkadot Network Blog

注 17:WebAssembly Wikipedia

原文链接: https://medium.com/@davekaj/blockchain-interoperability-cosmos-vs-polkadot-48097d54d2e2
作者: Dave Kajpust
翻译: orangefans · Eric

本文首发于公众号橙皮书(公众号id:chengpishu),EthFans 经授权转载。

你可能还会喜欢:

引介 | 准备好在 Polkadot 上开发吧!
引介 | 探讨以太坊的短期扩展解决方案
干货 | 免信任型计算的扩容模型,Part-2

评论