Polkadot与Cosmos深度对比,两种截然不同的跨链哲学,治理逻辑&跨链通信&共识算法(下)
阿风1989·2020-09-15 阅读 5

Polkadot与Cosmos深度对比,两种截然不同的跨链哲学,局部安全VS全局安全(上):https://www.voosay.com/scien/20600063391784236.html


本文是早期区块链行业从业者Julian Koh对Polkadot与Cosmos的对比,思考十分深刻,值得细细品味。近期我在深入在学习波卡生态时,总会问一个问题:同样是跨链,Polkadot与Cosmos到底有哪些区别?


Julian Koh这篇文章将会对该问题进行十分深入的探讨,虽然文章发表于2019年4月30日,Polkadot与Cosmos的技术文档也进行了大量更新,但他们的底层逻辑并没有发生很大变化,作为初学者能搞清文中涉及到的知识点,也属不易,知识不会过时,不是吗?

 

另外由于原文太长,且我在阅读过程中进行了勘误,也添加了不少个人理解,因此文章就更长了,所以决定分为上、下两次放送,今天带来第二部分,包括治理&成员资格(Governance & Membership)、跨链通信(Inter-blockchainCommunication)、共识算法(ConsensusAlgorithms)Substrate VS Cosmos SDK。


这其中跨链通信部分最为重要,作者论述也很精彩,其中也有阿风难以理解的部分,正在请教曹神,得到解答之后会第一时间更新文章。

 

Polkadot的网络架构,漂亮!

 

 

2、治理&成员资格(Governance & Membership)

 

Polkadot和Cosmos的第二大区别在于两者的治理和成员资格

 

在Polkadot网络中,只存在一条Relay Chain和一定数量的Parachains(由RelayChain的验证者支持)。当前的预计是,Polkadot网络中将容纳100条Parachains,但这一数量可能在将来有所增加或减少。

 

Polkadot网络通过一种拍卖机制来分配Parachain的链槽(Parachainslots)——出价最高者将能够通过在一个PoS系统中锁定DOT(Polkadot网络的原生代币)从而获得一个链槽(Slot)。这意味着,如果想要称为Polkadot网络中的一条Parachain,那你将需要购买大量的DOT代币并锁定起来,而且如果你想要继续运行一条Parachain,就必须一直锁定这些DOT代币。

 

阿风注:波卡采用中继链+平行链的架构方式,通过“链槽”,一条中继链a上可以插100条平行链,当中继链a插满之后,再开辟新的中继链b,然后再插入100条平行链......a/b之间又可以构成平行链结构,实现无限分片,性能无上限。此外,这里的拍卖机制将于2020年底发生在波卡的试验网络Kusama上,届时投资者可以通过质押KSM将票投给自己看好的项目,以支持他们竞拍中继链插槽。

 

另一方面,在Cosmos网络中不存在固定的成员资格规则——任何人都可以搭建一条Hub链或者一条Zone链。Hub本身是拥有主权(控制权)的区块链,搭建的目的是链接其他的区块链。

 

其中的一个例子是最近由Tendermint团队搭建的CosmosHub链(https://cosmos.bigdipper.live/),另一个例子就是计划将主要在中国和亚洲其他地区运营的那些区块链连接起来的IrisHub链(https://www.irisnet.org/)。

 

Hub-Zone模式能够使跨链通信更加高效,因为每条链只需与一条Hub链相连接,之后就可以与连接此Hub链的其他区块链进行连接了。

 

阿风注:由于改文章发表于2019年4月份,因此这里阐述的Cosmos的优势发生一年半之前,这是优势,同时也是劣势,我们知道任何不经过一番付出得到的事物,肯定不会被珍惜,任何任何人都能够发链,并参与通信,约等于任何人都发了一条无用的链(欢迎来反驳)。

 

Hubs(右图)在连接多条区块链方面更加高效

 

两个网络的治理过程(Governance Processes)与“成员资格”紧密相关。

 

在Polkadot网络中,治理决策是投票者持有的DOT代币数量来决定的。在链上会有一个正式的投票机制,但这方面还没有最终确定,可以通过此链接查看最新相关更新信息:https://github.com/paritytech/polkadot/wiki/Governance

 

除了定期的由持币量加权的投票之外,Polkadot也使用委员会(Council)的理念来代表被动的利益相关者(即不主动参加投票的持币者)。该委员会会由6人组成,每两周增加1人,直到总人数满24人。每个委员会成员都是通过认可投票(Approval Vote)的方式来选择。

 

阿风注:持币者投票+委员会成员共同治理波卡网络。

 

虽然有关这种治理过程的具体细节还没有最终敲定,但这意味着存在一些方式能够改变Relay Chain中的一些参数(比如区块时间、区块奖励等等),以及改变获取Parachain链槽的成员资格规则。比如,Polkadot的治理过程可能会改变成为Parachain所要求持有的DOT数量或者相关的拍卖机制。

 

 

一个常见的误解就是认为DOT持有者可以随意地通过投票将Parachain踢出去,但实际上DOT持有者只能改变成员资格的过程,也就是说,当某条链通过锁定一定数量的DOT成为一条Parachain之后,在其锁定这些DOT代币的整个期间,这条Parachain都是有担保的。

 

阿风注:DOT持币者并不能够随意决定某一条平行链的去留,因为平行链本身链接在中继链上是质押了相当部分的DOT作为担保的。但是DOT持币人与委员会成员能够通过投票改变波卡网络的治理,例如改变Bkockreward、Blocktime以及获得中继链链槽的成员资格等,DOT持币人的权力还是相当大的。

 

既然有如此大的权利,会不会导致作恶事件发生呢,由于DOT持币者作恶的结果就是DOT价格下跌,因此根据利益一致原则,DOT持币者作恶的可能性不大,这与比特币矿工不会对网络发出51%攻击的原因一致。当然,在确保安全的同时如何确保公平与高效,则是另外一个值得深入思考的问题。

 

另一方面,Cosmos网络并没有单一的治理过程。每条Hub链和Zone链都有着自己的治理过程,没有适用于整个区块链网络的中心规则集。当人们谈论“Cosmos的治理”时,指的是Cosmos Hub的治理,也即那条由Tendermint团队推出的Hub链。Cosmos Hub链有着一套规则集,任何人都可以发起提议,并且Atom(Cosmos发行的代币)持有者可以对提议进行投票,他们的投票权重有持有者持有的代币数量来决定。通过下方链接可以进一步了解有关CosmosHub的治理过程:https://blog.chorus.one/an-overview-of-cosmos-hub-governance/

 

阿风注:记住一点,即Cosmos网络并没有单一的治理过程,当人们谈论“Cosmos的治理”时,指的是Cosmos Hub的治理,也即那条由Tendermint团队推出的Hub链。任何人都可以发起提议,并且ATOM持有者可以对提议进行投票,他们的投票权重有持有者持有的代币数量来决定。

 

 

3、跨链通信(Inter-blockchainCommunication)

 

Polkadot和Cosmos的第三个区别就是两者在跨链通信协议的架构及其设计目标的区别。

 

Polkadot的目标是在Parachains之间传递任意消息,这意味着ParachainA可以调用ParachainB中的智能合约,可以在两条链之间转移代币,或者任何其他类型的通信。

 

另一方面,Cosmos专注于区块链之间的资产转移,这是一种更简单的协议。

 

当前,这两种通信协议规范都还没有充分地完善和建成。有关这两种规范的更多细节,请参阅:Cosmos的IBC(跨链通信)协议,Polkadot的ICMP(Parachains之间的跨链消息传递)协议。

 

阿风注:作者(本文的作者为早期区块链行业从业者Julian Koh)认为,Polkadot主要功能是跨链通信,而Cosmos则专注于资产跨链,这其实是不准确的,因为能够解决跨链通信自然能够解决跨链资产转移,还能够解决跨链交互,作者提到的“意味着ParachainA可以调用ParachainB中的智能合约”是指Polkadot的跨链交互,也同样也是跨链最重要的组成部分(欢迎来辩论)。


但当前在跨链通信方面的最大挑战并不是如何在一条链上表示另一条链的数据,而是当这些数据来源的那条链分叉和重组了,并将这笔交易排除出去时,如何处理这种情况。这是Cosmos和Polkadot在架构设计方面最大的不同之处!

 

阿风注:注意标黄这段,作者假设了一种状况,即当跨链的某一条链发生了分叉或者重组了,例如Ethereum Classic这条链与Polkadot与Cosmos都进行了跨链,但是由于Ethereum Classic发生了51%攻击,网络重组了,但是Polkadot与Cosmos都已经同步了Ethereum Classic的区块链信息,这时候怎么办?简而言之,如何确保跨链通信安全?作者格外强调了这点,对这种情况的处理方式,是体现Polkadot与Cosmos架构设计的最大的不同之处。

 

Polkadot使用两种不同的机制来保证跨链通信的安全:

 

首先,Relay Chain和Parachains共享安全性使交换消息变得更容易。共享安全性(Shared Security)的另一个作用是所有的Parachains都用着相同级别的安全性,其结果是这些链之间可以相互信任。

 

为了便于理解这一点,我们以将以太坊(安全性高)和Verge(安全性低)之间进行相互操作作为例子:如果我们想要在Verge上表征以太坊,我们可以在Verge区块链上锁定ETH并铸造一些ETH-XVG代币,但由于Verge的安全性低,攻击者可能会对Verge发起51%攻击并向以太坊区块链上发送一笔双花,允许该攻击者能够提取比他实际拥有的更多的ETH。

 

因此,在相互发送消息时,对于安全性高的区块链来说,很难回去信任安全性低的区块链。而当消息是经由多条具有不同安全级别的区块链进行传递时,这将使情况更加复杂。

 

理论上来说,共享安全性是一个保证跨链通信的良好方式。但是,为了达到这一目标,跨链通信协议必须能够经常性和随机性地打乱那些分配给每条Parachain的验证者。这带来了经典的“数据可用性问题”,即每个验证者必须经常下载他被分配到的每一条Parachain链的状态。这是当前这一领域最为困难的问题之一,目前还尚不清楚Polkadot将能否解决这一问题!

 

其次,Polkadot使用了Fishermen(钓鱼人)的概念,他们是Polkadot网络中监视Parachains的恶意活动的“赏金猎人”。从某种意义上说,这是Polkadot网络抵御恶意行为的“第二道防线”。如果某条特定的Parachain的验证者敲定了一个无效的区块,那Fishermen可以向Relay Chain提交一个证明,并有效地将Polkadot网络和相关的Parachains的整个状态都进行回滚。

 

在跨链通信期间,我们最为担心的情况是其中一条链在重组(Reorganizing)中,而另一条链正在正常地进行中,但是Polkadot会确保一旦发现了无效区块,一切都会回滚!

 

阿风注:这段其实我也有点懵,问题我已经抛给了曹神,得到他的回答之后,我会第一时间整理在这里。不过我可以先把疑惑放在这里,就像上一条批注所解释的那样,Ethereum Classic与Xvger分别在2020年与2018年多次出现区块重组事件,当如果恰好这两条公链通过Polkadot进行了资产跨链、信息跨链与互操作,造成的巨大损失如何处理;再例如,Bitcoin与Ethereum的资产安全性必然高于Ethereum Classic,如何说服前者与后者性跨链资产互换?

 

相比之下,Cosmos则采取了一种完全不同的方式来进行跨链通信。由于在Cosmos网络中,每条链都拥有自身的验证者,完全有可能存在一些包含串谋验证者的“恶意”Zone链,这意味着当某一条Zone链想要与另一条Zone链通信时,ZoneA需要信任CosmosHub以及ZoneB中的验证者。

 

 

理论上来说,这听起来并不十分高效,因为ZoneA中的人在决定发送消息之前,将必须调查ZoneB中的所有验证者,但作者认为在实际操作中,这也并没有那么糟糕:诸如PolychainLabs等“著名的”验证者和ZakiManian的iqlusion(https://hubble.figment.network/cosmos/chains/cosmoshub-2/validators/95E060D07713070FE9822F6C50BD76BCCBF9F17A)都很可能将验证很多不同的区块链,且随着时间的推移建立起“良好验证者”的名声。这意味着,当ZoneA看到ZoneB是由PolychainLabs和iqlusion验证时,就会决定信任ZoneB。

 

阿风注:我认为作者Julian Koh是有些偏向Cosmos的,因为作者在讨论Cosmos链上可能出现的重组问题时,将安全性直接解释为“可以信任某一个诚实可靠的节点”,如果是这样,那我们为什么不直接干脆地使用DPos共识,选出21个超级节点,然后像宣传明星一样把这些超级节点的名气打出去,然后所有跨链者就可以安心睡大觉了,这岂不是更加省事?这显然是违背了区块链去中心化的精神。

 

 

4、共识算法(ConsensusAlgorithms)

 

Polkadot的Relay Chain使用了一种由该团队发明的称为GRANDPA的共识算法。该算法允许RelayChain快速地敲定很多来自所有Parachains的区块,并且也能容纳大量的验证者(超过1000个)。

 

简单来说,这并不是因为所有的验证者都需要对每一个区块进行投票,而是验证者可以对某个他们认为有效的、高度最高的区块进行投票,并且该算法会将投票应用于该区块之前的所有区块。通过这种方式,该算法会找到那些拥有绝大多数票数的区块并将这些区块进行敲定。GRANDPA尚处于开发阶段,我们也不清楚该算法将在实际中表现如何。

 


在Polkadot网络中,Parachains可以使用一系列不同的共识算法来达成本地共识。Polkadot提供一个软件开包Substrate(https://github.com/paritytech/substrate),Substrate提供了三种现成的共识算法:GRANDPA、Rhododendron和Aurand。很可能将会有更多的共识算法被增加到Substrate之中,并且将能在Polkadot网络中使用。

 

阿风注:波卡Relay Chain采用的是BABE+GRANDPA的混合共识算法,已经上线,且表现良好。GRANDPA即GHOST-based Recursive ANcestor Deriving Prefix Agreement;BABE即Blind Assignment for Blockchain Extension。Parachains采用的是一系列不同的共识算法来达成本地共识,且Substrate(可以简单理解成为波卡的技术文档)提供了三种现成的共识算法:GRANDPA、Rhododendron和Aurand。此外,任何共识的链均可以通过链槽与中继链结合,且与其它平行链进行信息交互。

 

另一方面,Cosmos网络中的每条链都可能会使用任何一种共识算法,只要该共识算法遵守一个称为ABCI的规范(https://tendermint.com/docs/spec/abci/)。

 

该规范的创建是为了实现链之间通信的标准化。当前,只有Tendermint的共识算法符合该规范的要求,但当前也正在通过一些努力来创建符合该规范的其他共识算法。

 

从高层次来看,Tendermint的算法使通过使每个验证者都相互对话,以此来同意/拒绝任何单个区块,在单个区块的层次上进行最终敲定。该算法速度很快,已经在一个有200个验证者的实时环境中进行了压力测试,在Game of Stakes游戏中的出块时间达到了6秒。Cosmos团队同样也提供一个软件开发包,其中包含了Tendermint的算法可供使用。

 

Cosmos另一层意思是宇宙


Tendermint算法的最大缺点就是该算法在验证者时间有着很高的通信成本(High Communication Overhead)。这意味着虽然该算法可以相当快地与大约200名验证者运行,但如果验证者是2,000个时,该算法将变得非常缓慢。但是,其中的权衡是在异步(asynchrony)中获得安全性,这是非常重要的,因为如果你看到了某笔交易被“敲定了”,那即便是在最糟糕的网络状况下,这笔交易将不会被逆转的。

 

对此,作者的个人观点是,从长远来看,将这两个项目基于它们所使用的共识算法进行比较并不是特别有用。Polkadot和Cosmos在创建的架构都将在未来允许许多不同的共识算法在网络中被使用,当前绝大多数应用程序都可以很好地运行,无论它们使用Tendermint还是Polkadot的共识算法。

 

阿风注:作者Julian Koh在此处的总结还是比较客观的,不过多评价。

 

 

5、Substrate VS Cosmos SDK

 

Polkadot和Cosmos都提供一个软件开发包,分别是Substrate(https://www.parity.io/substrate/)和CosmosSDK(https://cosmos.network/sdk)。这两个开发包的目的都是为了使开发者能够更容易地开始搭建自己的区块链,其中包括各种开箱即用的模块(包括治理模块)、staking模块、认证模块等等。

 

两个开发包的主要区别在于,CosmosSDK支持Go语言,而Substrate支持任何一种兼容于WASM(WebAssembly)的语言,使其给予开发者更多的灵活性。

 

这两个开发包都是用于搭建区块链的全新框架,将在接下来几年内增加更多的功能。本文将不会进一步深入研究这两种开发包,如果读者想要获取相关跟多信息,欢迎在推特上发消息给作者@juliankoh

 

阿风注:大家可能不太清楚Substrate所兼容的WASM(WebAssembly)语言,ETH2.0重要改变就是把原来的智能合约语言升级为WASM模块。

 

 

结论

 

虽然这篇文章篇幅很长,写的也很详细,但是依然有所疏漏。Cosmos和Polkadot之间的不同点很难把握,可能还有很多细节我没有捕捉到。要全方位了解这两个项目绝非易事,毕竟项目文件随时都可能改动。这两个项目尚在起步阶段,未来一年将得到极大的发展——我在上文中提到的几个点可能很快就不成立了。

 

总而言之,我认为Polkadot相比Cosmos主要有以下几个优势:

  1. 应用程序开发者不需要自己维护安全性
  2. 共享安全性模型下的跨链通信更容易解决数据可用性问题
  3. Substrate(在 WASM、更多共识算法和开箱即用模块方面)表现出很大的野心
  4. 相比跨平行链的合约调用更侧重于不限类型的信息传递(这一用例目前尚不明确)
  5. 1.0版本的开发者似乎多一些


反过来,Cosmos相比Polkadot主要有以下几个优势:

  1. Cosmos已经上线了,Polkadot还没上线
  2. Polkadot 的平行链参与流程限制性更强,而且成本更高
  3. 更能满足特定项目(如币安)对自定义的需求
  4. 平行链上验证者的恶意行为会波及整个网络。在Cosmos网络中,恶意行为只能破坏个别分区和资产
  5. 已经有很多项目在使用Cosmos SDK了
  6. 重点关注如何降低资产转移的难度。目前已经有经过验证的用例。

 

阿风注:笔者这里提到了“未来一年将得到极大的发展——我在上文中提到的几个点可能很快就不成立了”,实际上这篇文章发表时间为2019年4月30日,距今已有16个月,Polkadot网络发生了翻天覆地的变化,例如2019年6月波卡发布了Substrate(为开发者提供的快速创建区块链的开发套件);2019年8月发布波卡(Polkadot)先行实验网络Kusama,被称为波卡的测试网络;2020年5月,波卡首条候选链 (CC1) 上线。POlkadot生态在Web3基金会的扶持下与一众开发者的努力下正越来越完善。

 

正如GavinWood在博客中所总结的那样,(如果将波卡比作一栋房子)2018年是波卡(Polkadot)打地基的一年,2019年是构建框架的一年,2020年则是室内装修和入住的一年。

DeFi项目跨链波卡波卡生态
本文仅代表作者观点,不代表本站立场,若侵犯了您的合法权益,请点击联系我们。