在实际运行中,我们会看到一个zone会连接到hub上(做信息转送到其他的链上),然后由hub来验证另外一个zone上的验证者是否可信。之后这个zone才会发送信息到另外一个zone。这听上去感觉会很繁琐,但是实际操作中,我们可能会看到知名大机构在做某链的验证人(一般大机构会把所有有名的POS的验证人都占上坑),这样虽然不大清楚这条链的具体情况,信息发送人可能会根据知名大机构的名声选择相信某条链。这其实又和polkadot有某种相似 - 靠制度而不是靠数学算法进行治理,我个人观点是这种方法早晚会出事。但是上述问题本身又不是个问题,因为cosmos的设计的结构其实避免了一条链可以“腐蚀”其他链的现象:
我们用这个例子来说明一下,假设现在又一条归零链,上面有一些归零币。这个链和其他三条链a,b,c 都和cosmos hub相连。这三条链的某些用户出于某种脑残的决定要和归零链做一些互动,则他们会通过IBC把他们在归零链上的三个币分别转到zone a,b,c。这时候,如果归零链上的验证人产生了共谋的想法,开始篡改验证并对归零链进行双花,则所有在归零链上的用户,与在别的zone里持有归零币的用户将受到这次双花的打击,但是这个打击仅限与归零币与归零链,zone a,b,c的链并不会被“腐蚀”。想想看,这个和polkadot被双花攻击的效果是相反的:
cosmos允许有人在网络上作恶,作恶成本较低,但是作恶仅限于与自己的链。
polkadot不允许有人在网络上作恶,作恶成本较高,但是一旦作恶,将会影响整个网络,必须进行回滚。
共识算法
polkadot的共识算法叫GRANDPA(你大爷),他长这个样子:
它和以太坊的casper的区别是:
基本上来说,你大爷可以让中继链同时finalise在不同平行链,有着不同区块高度的块(这意味着超快验证速度),同时你大爷还可以同时执行大量的验证者(1000个)。另外你大爷还可以对他认为是最高块的区块进行认证,并把这个验证对这个区块之前的所有区块同时验证 - 说白了就是你大爷算法可以迅速找到最被认可的区块并对其进行finalise。总之一句话,你大爷永远是你大爷(破音)。
对于平行链的公式算法,polkadot并不是特别感冒,polkadot的substrate有三种算法可供选择:GRANDPA,R