Cosmos和Polkadot都是关注区块链互操作性的项目。关于它们之间的区别,已经有过很多讨论。如果不熟悉这两个项目,Linda Xie发了一系列推文介绍,可以作为很好的介绍材料。
虽然很多帖子都分析了两个项目的区别,但我觉得大多有失偏颇,或者说不够详细。通过这篇文章,我将从建筑权衡和哲学的角度来讨论这两个项目。
为什么有些项目选择从零开始构建一个专用于托管应用的区块链,而不是以智能合约的形式在现有的区块链上编写应用?主要有两个原因。
首先,现有的智能合约平台不一定能满足应用所要求的灵活性和定制性。举个例子,如果你要构建的应用需要一个自定义的hash函数,把它写入以太坊会消耗大量的气体,因为这个函数每次调用都需要在以太坊虚拟机中执行。一种解决方案是建议将该功能作为预编译契约添加到以太坊协议中。但是,除非这个功能在其他应用中也被广泛使用,否则这个提议很可能不会通过。通过从头开始编写新的区块链,您可以自由灵活地设计区块链的核心逻辑,以满足您的应用程序的需要。
其次,自主权问题。构建在智能合约平台上的应用程序必须接受平台的治理并遵守其规则,从影响用户体验的规则(如阻塞时间和汽油定价)到改变状态的决策(如回滚等)。
但相应地,具有自治性的链失去了与其他应用程序无缝通信的能力,因为应用程序都是使用不同的状态机构建在区块链上的。Cosmos和Polkadot都致力于解决这个问题。——Cosmos采用中枢-区域模型,而Polkadot采用中继链/副链模型。
Cosmos和Polkadot采用非常不同的安全模型。简单来说,Polkadot的工作流程如下:
-Polkadot的网络架构-平行链就是Polkadot网络中的区块链。这些链有自己的状态机、自己的规则和自己的块生成器,即整理器。每个并行链本质上是一个独立的状态机,可以使用任何类型的特殊函数、一致性算法、交易费用结构等等。在Polkadot网络中,所有并行链都有相同的父链,称为中继链,它包含所有并行链组成的“全局状态”。中继链有自己的共识算法,叫做爷爷共识(祖父共识),可以快速确定并联链上的区块。通过这种模式,Polkadot的平行链实现了“安全共享”3354。如果中继链上有1000个验证器,那么它具有极高的安全性,所有连接到这个中继链上的并行链都会受益。这样,并行链可以有自己的状态机和自定义规则,并且可以与数百个并行链共享父链的安全性。这个模型的罩门是中继链上的验证器验证并联链上的状态变化。比如验证者可能因为某种原因总是拒绝某个链中验证者提出的块,这个中继链中的块永远无法加入全局状态。为了尽可能避免这种情况,Polkadot对验证器进行洗牌,随机验证并行链,降低了同一个验证器总是验证同一个并行链的概率。Polkadot还有另一种验证者叫做fishers(渔夫),会不断检查验证者是否有恶意行为。Cosmos采用了完全不同的网络架构。 -Cosmos的网络架构-在Cosmos网络中,每个链都是独立运行的,都有自己的安全机制,而不是像Polkadot那样采用局部/全局的安全模式。每个链都有自己的共识机制,一个单独的验证者负责保护这个链的安全。Cosmos network使用中心分区模型来实现互操作性。每个分区(独立链)可以通过中心(也是独立链)向其他分区“发送令牌”。这个协议叫做IBC (Cross-Chain Communication,跨链通信),是链之间通过发送消息实现令牌传递的协议。IBC协议仍在制定中。一开始会支持令牌传递,最终会支持各类消息的跨链传输。和Polkadot的架构相比,Cosmos的架构最大的不同就是每个分区的状态只被自己的验证者保护。如果一个分区想要获得很强的安全性,它需要建立自己的验证器集,这对于小型应用来说会比较困难。然而,对于那些想要更多控制的应用程序来说,这是一个很大的亮点。比如,币安一开始就利用自己的节点作为币安链的验证者,推动去中心化交易所的持续运营。这样,在测试币安链和添加新功能时,币安拥有完全的控制权。我觉得比安不可能放弃决定哪些交易可以挂钩的权利,但是如果你想在以太坊或者Polkadot平台上发展,你就得放弃这个权利。基于这个原因,我认为Telegram、脸书和Kakao等公司将选择建立自己的区块链并控制它,未来不太可能与其他连锁店沟通。2。治理和参与Polkadot和Cosmos的第二个主要区别在于治理和参与。在Polkadot网络中,只有一条中继链和一些并行链与这条中继链共享验证器。根据目前的估计,并行链的最大数量是100,但将来可能会减少或增加。Polkadot network通过拍卖机制竞标平行链使用权。3354出价最高者需要在PoS系统中锁定一定数量的点(本币点(Polkadot),这样他就可以在一定的时间内拥有使用并行链的权利。这意味着,如果你想使用Polkadot上的平行链,你需要购买并锁定大量的点,直到你不想再使用这个平行链。宇宙网络没有固定的参与规则3354。任何人都可以创建中心或分区。该中心是一个具有自治能力的区块链,专门用于连接其他区块链。这里举两个例子,一个是最近Tendermint团队推出的Cosmos Hub另一个是Iris Hub,旨在连接主要在中国或其他亚洲国家运营的区块链。这种中心-分区模型提高了跨链通信的效率,因为分区链只需要连接到中心,而不是每隔一个链。-中心-分区模型可以更高效地连接多个链-由于参与规则不同,两个网络的治理流程也存在差异。在Polkadot网络中,治理决策取决于投票者承诺的点数。网络投票会有一个正式的机制,但是还没有最终确定。点击此处了解最新进展。除了采用以质押金额决定投票权重的机制外,Polkadot还成立了一个代表不活跃权利人的委员会。最初,委员会由6名成员组成,每两周增加一名成员,直到达到24名成员。委员会的每个成员都是通过赞成票当选的。治理流程的具体细节还没有最终确定,也就是说有很多方法可以改变干线链的参数,比如区块释放的时间,区块奖励等。以及平行链的参与规则。例如,Polkadot的治理过程可以改变并行链使用权或所需点数的投标机制。有一种普遍的误解,认为点持有者可以通过投票随意放弃一个平行链。实际上,点持有者只能改变参与过程。也就是说,平行链一旦被拍卖,就享有整个租赁期内的链使用权。 另一方面,在宇宙网络中没有单一的“治理”过程。每个中心和分区都有自己的治理过程,因此没有一套适用于整个系统中所有链的核心规则。我们所说的“Cosmos治理”是指Cosmos Hub的治理,也就是Tendermint团队推出的链。Cosmos Hub的规则是,任何人都可以发送文本提议,由ATOM持有者投票决定。原子的质押决定了投票权重。要了解提案是什么样的,这里有一个例子。如果你想进一步了解治理流程,可以看看Chorus One发布的这篇帖子,这是了解Cosmos Hub治理机制的入门资料。3。跨链通信Polkadot和Cosmos的另一个区别是跨链通信协议及其设计目标。Polkadot旨在实现并行链之间的任意消息传递。即并行链A可以调用并行链B中的智能合约,实现与并行链B的令牌转移或其他类型的通信,Cosmos专注于跨链资产转移,其协议相对简单。目前,这两个通信协议仍需完善,其构建尚未完成。可以查看IBC(跨链通信)和ICMP(并行链之间的跨链通信)的详细规则。
跨链通信最大的挑战不是如何将一个链中的数据表示在另一个链上,而是如何处理链分叉和链重组的情况。这是Cosmos和Polkadot在建筑设计上最大的区别。
为了保证跨链通信的安全性,Polkadot采用了两种不同的机制。首先,它是一种安全共享机制,降低了尚力财经小编2022信息交换的难度。共享安全性的另一个优点是所有并行链都处于相同的安全级别,因此每个链都可以相互信任。为了便于理解,我们以以太坊(安全性较高)和Verge(安全性较低)的交互操作为例。如果要在边缘链上表示以太坊,可以锁定一些以太坊,然后在边缘链上生成ETH-XVG令牌。然而,由于边缘链的低安全性,攻击者可能会对边缘链发起51%的攻击,并向以太坊区块链发送双花交易,以便他可以检索到比他实际拥有的更多的以太坊。所以在互相发送消息时,安全性较高的链很难信任安全性较低的链。如果在不同安全级别的链之间交换消息,情况会变得更加复杂。
理论上,共享安全是保证跨链通信的好方法。前提是这个协议要保证验证者可以频繁洗牌,然后随机分配到各个并行链上。这会造成经典的“数据可用性问题”,即每次验证器被分配到新的并行链时,都需要下载新链的状态。这是目前区块链领域最大的问题之一,波尔卡多特能否解决还是未知数。
其次,Polkadot引入了fisher(渔夫)的概念,即Polkadot网络上的“赏金猎人”,专门监控平行链上的恶意行为。从某种意义上说,这是针对恶意行为的“第二道防线”。如果一个并行链的验证者链接了一个无效块,Fisherman可以在发现后向中继链提交一个证书,并回滚包括所有并行链在内的整个Polkadot网络的状态。在跨链通信过程中,我们最担心的是一条链正在被重组,而另一条链照常运行。Polkadot避免了这个问题。一旦发现一个无效块被链接,整个网络将回滚。
Cosmos采用了完全不同的跨链通信方式。因为每个链都有自己的验证者,所以很有可能分区中的验证者之间会有合谋。也就是如果两个分区需要通信,A分区需要信任Cosmos Hub和B分区的验证者,理论上A分区的人需要调查B分区的验证者,才能决定向B分区发送信息,但我觉得实际情况并没有那么糟糕。众所周知的验证节点,如扎基马年的Polychain Labs或iqlusion,可以验证多个链,并逐渐建立良好的声誉。 也就是说,当分区A的人看到分区B被Polychain 尚力财经小编2022 Labs和iqlusion验证后,可能会决定信任分区B
但是,即使一个链被人信任,也可能被恶意攻击者控制,可能会出现各种问题。有一段对话提到了一个很好的例子:
-令牌分散在不同区域的宇宙网络中-
假设上图中那个小红点代表一个叫做ETM的令牌,也就是以太薄荷区的原生令牌。A、B、C三个分区的用户都想使用ETM运行各自分区中的一些应用,他们都信任Ethermint分区,所以通过跨链通信接受各自分区中的一些ETM。现在假设以太币分区的验证者密谋发动双花攻击,任意转移ETM代币。这也会影响网络的其他部分,因为ETM令牌也存在于其他分区中。但是,只有Ethermint或其他分区中的ETM令牌持有者会受到影响。Ethermint分区中的恶意验证者只能破坏自己的分区,不能破坏其他分区。这就是Cosmos architecture,——的目标,保证恶意行为不能影响整个网络。
波尔卡多特不一样。如果一个无效的状态更新发生在中继链上(全局状态)并且没有被渔夫发现,Polkadot网络中的每个并行链都会受到影响。平行链不能视为完全不同的东西。毕竟,它们都共享同一个全局状态。
Polkadot中继链采用爷爷共识算法。该算法可以使中继链快速确定来自所有并行链的块,并容纳大量的验证器(超过1000个)。简单来说,这是因为并不是所有的验证者都需要为每个块——投票。他们可以只投票给一个他们认为有效的区块,这相当于这个区块之前的所有区块也都被批准了。这样爷爷算法就可以找出一组票数最多的区块,确定这组区块。算法还在开发中,具体如何实现还不得而知。
平行链可以采用不同的共识算法达到局部共识。Polkadot提供了一个软件开发工具包(Substrate),其中包括三个开箱即用的共识算法:爷爷、杜鹃花和奥兰德。尚力财经小编2022未来可能会有更多的算法加入到Substrate中,可以应用到Polkadot网络中。
在Cosmos网络中,每条链都有很多共识算法可以选择,只要符合ABCI规范。ABCI规范旨在标准化跨链通信。目前只有Tendermint算法符合这个规范,其他团队都在努力开发其他符合这个规范的共识算法。在更抽象的层面上,Tendermint算法的原理是每个验证者可以相互通信,共同决定一个区块是否可以链接,从而实现单个区块层面的确定性。算法非常快,通过了200个验证器的压力测试,在赌注游戏中封杀的时间是6秒。Cosmos团队还提供了一个软件开发工具包,其中包括现成的Tendermint算法。本文介绍了一致性算法和Tendermint算法的功能。
Tendermint算法是最大的缺点是验证者之间的通信成本高很高。也就是说,虽然验证者人数在 200 左右的时候,算法的运行速度很快,一旦人数涨到了 2000 ,速度就会慢得多。另一方面需要权衡的是异步环境中的安全性。也就是说,在出现网络分区之时,不会出现两个不同的交易历史最终合并成一个(而另一个交易历史被抛弃)的情况,而是整个网络都将停止运行。这点非常重要,一旦一笔交易得到了“最终确认”,即使是在最差的网络环境下也不会被撤销。
我的个人观点是,基于共识算法来比较这两个项目没什么长远意义。这两个项目的构架未来都将接受不同的共识算法。如今的绝大多数应用不管使用的是 Tendermint 算法还是 Polkadot 的某个共识算法都可以良好运行。
Polkadot 和 Cosmos 都提供软件开发工具包,分别叫作 Substrate 和 Cosmos SDK 。二者的目的都是为了便于开发者搭建自己的区块链,其中包括各种开箱即用的模块,例如治理模块(投票系统)、质押模块和认证模块等。这两个工具包最主要的区别在于,Cosmos SDK 仅支持 Go 语言,而 Substrate 支持任何可编译为 WASM (Web Assembly) 的语言,给予了开发者更多灵活性。
这两个工具包都是构建区块链的全新框架,未来几年还将新增更多功能。关于这两个工具包的深度剖析以及使用这两个工具包开发应用程序的详细体验需要另外写一篇文章了。如果你感兴趣的话,请在推特上给我 @juliankoh 留言。
虽然这篇文章篇幅很长,写的也很详细,但是依然有所疏漏。Cosmos 和 Polkadot 之间的不同点很难把握,可能还有很多细节我没有捕捉到。要全方位了解这两个项目绝非易事,毕竟项目文件随时都可能改动。这两个项目尚在起步阶段,未来一年将得到极大的发展——我在上文中提到的几个点可能很快就不成立了。总而言之,我认为 Polkadot 相比 Cosmos 主要有以下几个优势:
应用程序开发者不需要自己维护安全性
共享安全性模型下的跨链通信更容易解决数据可用性问题
Substrate(在 WASM、更多共识算法和开箱即用模块方面)表现出很大的野心
相比跨平行链的合约调用更侧重于不限类型的信息传递(这一用例目前尚不明确)
1.0 版本的开发者似乎多一些
反过来,Cosmos 相比 Polkadot 主要有以下几个优势:
Cosmos 已经上线了,Polkadot 还没上线
Polkadot 的平行链参与流程限制性更强,而且成本更高
更能满足特定项目(如币安)对自定义的需求
平行链上验证者的恶意行为会波及整个网络。在 Cosmos 网络中,恶意行为只能破坏个别分区和资产
已经有很多项目在使用 Cosmos SDK 了
重点关注怎么样降低资产转移的难度。目前已经有经过验证的用例。
---------------
本文转载自以太坊爱好者
原文链接: https://medium.com/@juliankoh/5-differences-between-cosmos-polkadot-67f09535594b
作者: Julian Koh
翻译&校对: 闵敏 & 阿剑
标签: 呈