密码极客 | 国内最权威的区块链技术创投社群

跨链巨头煮酒论英雄丨细数Cosmos和Polkadot五大差异

VOBCVOBC 2019-05-07 11,951 次 收藏0

之前已经有很多文章都讨论过Cosmos和Polkadot(两个项目都专注于实现区块链互操作性)之间的差异。但笔者认为大多数关于“Cosmos对比Polkadot”的帖子要么有偏见,要么没有解释两者之间的细微差别。本文将从构架权衡、理念等方面深入剖析对比这两个项目。

为什么要建立一个新的区块链?

人们更愿意从零开始构建专用应用程序的区块链,而不是在已有的平台上编写应用程序的智能合约。原因主要有两个。

首先,现有智能合约平台可能无法提供您的应用程序所需的灵活性和自定义性。例如,如果您的应用程序需要自定义哈希函数,在以太坊构建需要耗费大量燃料,因为每次调用函数时都需要在EVM上执行。您可以提议以太坊协议将该哈希函数包含进预编译合约,但是除非这个函数会被其他应用程序广泛运用,否则您的提议可能不会被批准。而从头开始编写区块链,可以自由灵活地设计区块链的核心逻辑,满足应用需求。

第二个原因是主权。在智能合约平台上构建应用程序就必须遵守该协议的规则和治理。这可能包括出块时间、燃料价格和区块链回滚等状态变化决策,这些因素都会影响用户体验。

当然,独立的主权区块链放弃了与其他应用程序无缝通信的能力,因为这些独立主权区块链具有独立状态机(state machine)。Cosmos和Polkadot都试图解决这个问题——Cosmos使用Hub-and-Zone模型,Polkadot使用中继链 / 平行链模型。

这篇文章不再介绍两个项目的基础知识,将重点梳理两者之间的差异。

差异1

本地与全局安全

Cosmos和Polkadot的安全模型截然不同。简单地说,Polkadot的工作原理如下:

Polkadot网络架构

平行链是Polkadot网络中的区块链,有自己的状态机、规则和本地区块收集者(collector)。每个平行链本质上是一个独立的状态机,可以利用任何类型的功能,共识算法,交易成本结构等。在Polkadot网络中,所有平行链都是中继链(母链)的子链,中继链包含“全局状态(global state)”信息,由所有平行链组合形成。中继链有自己的共识算法,称为GRANDPA共识,可快速确定平行链中的区块。通过这个模型,Polkadot中的平行链可以在“共享安全性(shared security)”模型下运行——如果中继链有1000个验证者,具有高度安全性,平行链通过连接到中继链也获得高度安全性。因此,平行链可以拥有状态机和其他本地规则的主权,并且与其他链共享高度安全性。

这个模型的缺点是:中继链的验证者对平行链的状态变化有最终决定权。例如,出于某种原因,验证者可以不断拒绝来自某一平行链的收集者的区块,并永久阻止该平行链的进展被包含在全局状态中。Polkadot试图通过改组验证者、随机验证平行链,降低某一验证者审查特定平行链的可能性,减少上述情况发生。Polkadot的另一类验证者称为钓鱼者(fishman),不断检查验证者是否有恶意活动。

Cosmos网络的架构与Polkadot完全不同。

Cosmos网络架构

Cosmos网络不是使用本地/全局模型来确保安全性,而是每个区块链都是独立的,进行自我保护。每个区块链都有自己的共识算法,每个区块链的验证者负责保护自己的区块链。该网络使用hub-and-zone模型实现互操作性,其中分区(zones)(是独立的区块链)可以通过中心(hub)(也是独立的区块链)路由“发送代币”到其他分区。这个协议称为IBC(链间通信),用于在区块链之间传递代币转移的信息。IBC协议目前正在开发中,最先要实现传递代币转移的信息,最终实现可以在链间传递任何类型的消息。

与Polkadot模型相比较,cosmos模型最大的特点是每个分区由自身的验证者保护。如果分区想要有高度安全性,需要引导并招募自己的验证者,较小的应用程序很难做到这一点。然而,对于某些需要更多控制权的应用来说,这是一个大卖点。例如,Binance将自己的节点作为Binance区块链的验证者,从而引导Binance DEX。通过这种方式,Binance可以在测试DEX和推出新功能时完全控制区块链。在我看来,Binance区块链不可能会放弃控制交易过程。如果建立在以太坊或Polkadot上,Binance将不得不放弃控制权。出于同样的原因,我认为有很多类型的公司(Telegram,Facebook,Kakao等)都会创建自己的区块链以获得完全控制权,因此能否其他区块链连接并不重要。

差异2

治理与成员资格(Membership)

Polkadot和Cosmos之间的第二个主要区别在于治理和成员资格。Polkadot网络有一个中继链和多条中继链验证者支持的平行链。目前大约有100个平行链插槽(slot)。未来,插槽的数量可增可减。Polkadot网络通过拍卖机制分配平行链插槽——最高出价者通过PoS机制锁定DOT(Polkadot原生代币)获得平行链的耐用时间。这意味着要成为Polkadot网络中的平行链,你需要购买大量的DOT并锁定。

而Cosmos网络没有固定的成员资格规则——任何人都可以建立一个中心或分区。中心本身就是主权区块链,目的是连接其他区块链。例如,由Tendermint团队推出的Cosmos Hub和Iris Hub,后者计划连接在中国和亚洲其他地区运营的区块链。这种hub-and-zone模型使链间通信更加高效,因为每个区块链不需要相互连接,只需要连接到中心。

中心可以更有效地连接多个区块链

治理过程与成员资格紧密相关,也是两个项目的区别之一。在Polkadot网络中,治理决策取决于投票者持有DOT数量。Polkadot将有一个正式的链上投票机制,但尚未最终确定。除了定期的权益加权投票,Polkadot还由理事会代表被动持股者。该理事会最初有6个人,每两周增加一人,直到人数达到24人。每个成员由投票选出。虽然这个治理程序的具体细节尚未最终确定,但这意味着可以更改中继链参数(出块时间,区块奖励等),也可以更改平行链成员资格规则。例如,Polkadot治理程序可以改变平行链所需的DOT数量或拍卖机制。一个常见的误解是,DOT持有人可以投票随意开除平行链,但在现实中DOT持有人只能改变获得成员资格的程序。这意味在租用耐用时间内,平行链所有权不可变。

另一方面,Cosmos网络没有单一的“治理”程序。每个中心和分区都有自己的治理程序,没有适用于整个区块链网络的中心化规则。当人们谈论“Cosmos治理”时,他们所指的是由Tendermint团队发起的区块链Cosmos Hub的治理。Cosmos Hub有一套规则,允许任何人发送文本提案,并允许Atom持有者进行投票,其投票结果取决于他们拥有的Atom数量。要了解有关治理的更多信息,请查看Chorus One关于Cosmos Hub治理的博客。

差异3

链间通信

Polkadot和Cosmos的另一个区别是链间通信协议的构架及其设计目标。Polkadot的目标是在平行链之间传递任意消息。这意味着平行链 A可以在平行链B中调用智能合约,可以在链间转移代币,或任何其他类型的通信。另一方面,Cosmos专注于链间的资产转移,这是一种更简单的协议。目前,这两种通信协议都没有明确,都尚未完成构建。关于IBC(区块链间通信)和ICMP(平行链间消息传递)的区别将在之后的资讯中更新。

链间通信的最大挑战不是在一个链上展示另一个链上的数据,而是实现数据源区块链分叉并重组后确保交易唯一性的方式。由于构架设计不同,这是Cosmos和Polkadot最大的区别。

Polkadot使用两种不同的机制来确保链间通信。首先,拥有共享安全性可以更轻松地交换信息。共享安全性确保所有平行链具有统一安全性,因此每个链可以互信。举个例子,Ethereum(高安全性)和Verge(低安全性)进行互操作。如果我们想在Verge上代表Ethereum,我们可以锁定ETH并在Verge区块链上拥有ETH-XVG代币。但是,由于Verge安全性较低,攻击者可以51%攻击并向以太坊区块链发送双花,攻击者可以撤回更多的ETH。因此,在相互通信时,高安全性的区块链很难信任低安全性的区块链。

理论上,拥有统一的共享安全性是一种确保链间通信的好方法。但是,为了实现这一目标,协议必须能够经常随机改组分配给每个平行链的验证者。这导致了经典的“数据可用性问题”,即每个验证器者必须不断下载分配给它的平行链的状态。这是当今区块链领域中最难解决的问题之一,目前还不清楚Polkadot是否能够解决。

其次,Polkadot使用了钓鱼者的概念,这些钓鱼者是Polkadot网络上的“赏金猎人”,他们监测平行链上的恶意活动。从某种意义上说,这是针对恶意活动的“第二道防线”。如果某一平行链的验证者最终确定了一个无效区块,钓鱼者可以向中继链提交证据并有效地回滚Polkadot网络及其平行链的整个状态。在链间通信期间,我们最担心的问题是一个区块链重组,另一个正常进行,如果发现了无效区块,Polkadot会回滚所有内容(包括有效区块)。

Cosmos采用完全不同的方法进行链间通信。由于每个区块链都有自己的验证者,因此存在串通验证者的“作恶”分区的可能性很大。这意味着当一个分区想要与另一个分区通信时,分区A需要信任分区B中的Cosmos Hub(用于路由)和验证者。理论上,因为分区A中的人员必须在决定向分区B发送消息之前查验分区B的验证者,因此会导致效率低下。但我认为,实践中不会效率低下。(Polychain Labs、Zaki Manian的iqlusion等)“著名的”验证者可能验证很多不同的区块链,并慢慢成为一个“良好的验证者”。这意味着当分区A看到分区B由Polychain Labs或iqlusion验证时,就会决定信任它。

然而,即使人们信任一个区块链,仍然可能被作恶者控制并产生损害。举个例子:

在多个分区中有代币的Cosmos网络

小红点代表一个ETM(Ethermint分区的原生货币)的标记。分区A,B和C中的用户希望自己分区内的应用程序中使用ETM,并且信任Ethermint分区,因此用户会执行IBC消息,将ETM转移到各分区。假设Ethermint验证者相互串通并开始双花,或任意转移代币等等。这将对网络的其余部分产生影响,因为ETM代币也存在于其他的分区上。但是,唯一受影响的人是在Ethermint分区或其他分区内持有ETM代币的人。Ethermint中的作恶验证者无法任意破坏其他分区。这是Cosmos架构的目的——确保恶意活动不会影响整个网络。

相反,如果在中继链(全局状态)上发生无效状态转换并且钓鱼者没有接收到,则可能会影响Polkadot网络中的每个平行链。我们猜测所有平行链都会受到影响,因为所有平行链最终共享一个全局状态。

差异4

共识算法

Polkadot 中继链使用由GRANDPA团队创建的共识算法。该算法允许中继链快速确定来自平行链的区块,并且还可以容纳大量验证者(超过1000)。简单来说,因为不是所有验证者都要对每个块进行投票——相反,验证者可以对他们认为有效的单个最高区块进行投票,并且该算法可以将投票结果传递给之前的所有区块。通过这个方法,算法能够找到具有绝大多数投票的区块集合,并认为这是投票最终结果。GRANDPA仍处于开发阶段,我们不知道它在实际运用中的表现如何。

平行链可以使用各种不同的共识算法来达成局部共识。Polkadot提供了一个软件开发工具包(Substrate),它带有3种开箱即用的共识算法:GRANDPA,Rhododendron和Aurand。将来可能会有更多算法,并且可以在Polkadot网络中使用。

另一方面,Cosmos网络中的每个区块链都可以使用不同的共识算法,只需符合ABCI规范。创建此规范是为了链间通信标准化。目前,只有Tendermint算法符合此规范。高级别的Tendermint算法的工作原理是:每个验证者相互通信以批准/拒绝单个区块,从而在每个区块上形成最终结果。该算法十分快速并且在拥有200个验证者、出块时间为6秒的真实环境中(木桩的游戏 Game of stake)进行压力测试。Cosmos团队也提供了一个软件开发工具包,其中Tendermint算法可以直接使用。

Tendermint最大的缺点:验证者之间的通信开销很高。这意味着虽然它在拥有大约200个验证者时运行速度快,但使用2000个验证者时,速度会慢很多。然而,权衡是你可以在异步中获得安全感。这意味着,网络分离时,网络将停止(而不是具有2个最终会合并的不同交易历史,并且在该过程中将丢弃1个交易历史)。这非常重要,因为如果您看到一个交易“已完成”,即使在最糟糕的网络条件下交易也不会被撤销。

我个人对此的看法是,从长远来看,在基础上对比共识算法并不是特别有用。因为这两个项目都在创建构架,将来允许使用不同的共识算法。目前,绝大多数应用程序无论使用Tendermint还是使用Polkadot的共识算法都可以正常运作。

差异5

Substrate vs Cosmos SDK

Polkadot和Cosmos都提供了一个软件开发工具包,分别称为Substrate和Cosmos SDK。它们的目的是使开发人员能够轻松构建自己的区块链,并包含各种开箱即用的模块,例如治理模块(投票系统),staking模块,身份验证模块等。两者之间的主要区别在于Cosmos SDK支持Go,而Substrate支持任何编写为WASM(Web Assembly)的编程语言,灵活性更高。

两者都是构建区块链的新框架,并将在未来几年内添加更多功能。会在另一篇博客深入研究两者并概述使用SDK构建应用程序的开发体验。如果你想看,请写信给我。

结论

虽然这篇文章非常长和详尽,但仍然没有做到巨细无遗。Cosmos和Polkadot之间的差异很难掌握,并且我可能忽略了其他细微差别,也还很难全面了解这两个项目,因为文档每天都在变化。这两个项目仍处于起步阶段,并将在明年大力发展——我提出的一些问题可能很快就会解决。

总之,我认为Polkadot优于Cosmos的方面如下:

-应用程序开发人员无需引导自己的安全性

-如果Polkadot可以解决数据可用性问题,则共享安全性下的链间消息传递更简单

-Polkadot似乎对开发Substrate更有信心(WASM,更多开箱即用的共识算法和模块)

-专注于跨平行链合约调用的任意信息传递(目前还不确定用例)

-似乎有更多的开发人员构建1.0版本

相反,Cosmos优于Polkadot的方面如下:

-Cosmos更灵活

-Polkadot的平行链成员资格具有限制性、花费很高

-对于专用项目更具自定义性(例如Binance)

-平行链的恶意验证者可能会损害整个网络,Cosmos将损害限制在分区和相应的资产持有者内

-许多项目已经使用过Cosmos SDK

-专注于资产转移,更简单、更容易实现,目前已有用例

(文章来源:头等仓)

本文系作者个人观点,转载请注明出处!
喜欢 0
支付宝扫码打赏
微信打赏

相关文章

更多

发布评论

共0条评论