前言
初视波卡与Cosmos觉得两个项目挺像的,都是基于中继链/侧链的跨链解决方案,后来为了写这篇对比文章找了很多资料,逐渐的发现设计哲学对项目后续发展不同的影响,得出了一点心得,欢迎大家一起讨论,。
每个人看项目的角度都不一样,安全重要?扩展重要?生态重要?哪一个要先发展?
在波卡与Cosmos开发人员的问答直播里,答案明显呼之欲出,两个项目一致共识从安全出发,这给我很大的体悟,从安全为起点思考这两个项目才是正确的方向。
没有安全就没有根基,为什么早些时候货币是金银,因为很难伪造,为甚么政府要在纸钞上做出这么多花样,因为假钞扰乱了真钞,正如这些货币,区块链上的加密货币一样如此,一条链出现了双花攻击,凭空造币等安全问题,那这条链大概率就声誉全毁,技术及远景再牛逼都是一场空。
以下开始正题:
第一个不同点
Cosmos与波卡两个跨链项目在安全上不同的设计哲学
Cosmos强调自治,希望能有一个更自由更自主的跨链生态,白话说如果一条链是一个国家,Cosmos这个大世界里,每个国家都有自己的军队与主权维护安全,所以在中心Hub和区域Zone上各自的验证人节点不同,自行维护安全。
Polkadot强调团结,希望更多的项目团结来增加跨链生态的安全,白话说在Polkadot这个大世界,大家共同建立一个联合政府,联合政府会指派军队去保护各个区域安全,所以在Polkadot上,中心Relaychain与区域Parachain的验证人节点统一由Polkadot系统分配。
第二个不同点
这样的安全设计理念下两者各自会遇到什么样的恶意攻击呢?
Cosmos下,中心Hub与区域Zone各是不同国家,每个国家负责安全的军队都不同,当跨链场景从ZoneA 到Zone B发生时,外部人怎么知道ZoneA 与Zone B的军队(验证人)是善良诚实的?在高速复杂的跨链场景下,某一个Zone被攻击后,可以发出虚假信息进而扰乱整个Cosmos大系统。
Polkadot下,所有军队(验证人节点)由Polkadot随机挑选并分发到不同区域(Parachain)上,如果随机分配到Parachain上的一群节点,是互相勾结的坏人,那外部人就有理由怀疑上面发生的跨链交互是有问题的。
如何解决呢?两者各有应对方案,在理想情况下
Cosmos本身团队是Tendermint出身,Tendermint团队深耕于在区块链上实现拜占庭容错,拜占庭容错能容许一定节点作恶下,系统依然不崩溃而正常运行,所以Cosmos有底气设计这样的自治生态,同时Cosmos的Hub中心会有一个全局观的代币状态,在最重要币的安全上,中心Hub有责任去检验不同区域Zone上的操作是否真的有这么多数量的代币,如果发现全局观的代币记录与分区上代币记录不一致,可以将中心Zone与区域Hub间的联系中断,有效遏止作恶引起的系统崩溃,具体实现等Cosmos上线后将会有更多的讨论。
Polkadot通过随机挑选验证人节点,维护每一条围绕Polkadot的链,当可以被随机挑选的验证人池子越大,那就会越公平与安全,想作恶的一群人被划分在一起的概率会下降,所以Polkadot官方希望有1000个节点来维护Polkadot这条链, 同时加入钓鱼人Fisherman这项角色,作为系统内警察,通过揪出作恶操作获得奖励来进一步加强系统安全。
PS: 真实的攻击和变化肯定更多,我不是安全专家,只是举了最容易了解的攻击形式
第三个不同点
安全设计哲学下如何影响代币价值与生态发展
币价和安全性有什么关系?
我们都知道比特币里一部分的安全是由矿工运行矿机来保证,算力成本的高低和币价有一定关联性(虽然不是直接因果关系),在PoS共识下,没有实体矿机,大家手中的币就是矿机,币通过委托代理Stake进行挖矿,同时维护链的安全,如果要攻击一条PoS的链,攻击代价就是控制1/2甚至要到2/3比例的代币。
先说Polkadot共享安全shared security的概念(就是前面提到的团结哲学),Polkadot认为不是每一个新的区块链都可以找到这么多节点来维护安全(事实也是如此,很多新公链最大问题就是节点不够,不够就代表不去中心化不够安全),Polkadot说我提供大家安全性,大家的链接入到我整个系统,所以Dot代币将来提供的不仅仅是Polkadot自身安全,还包挂围绕在Polkadot旁Parachain的安全,可想而知Dot用途更广了,价值也扩大了。
Cosmos强调了自治思想,所以每个区域Zone需要自己的验证人节点提供安全,在PoS共识架构下,每个自治Zone的代币都承担了安全保护的功能与价值,但同时Cosmos原生代币Atom的用途也相对Dot减少了。
反过来想Polkadot的模式其实是抢夺了其它链原生代币安全保护的功能与价值,建立在Polkadot上的链就只剩下本身业务场景才能撑起币的市值(打了一个大大折扣),所以我猜测一个希望自己做大(市值高),有自主权的链,会选搭建在Cosmos之上。
当然Cosmos也有在讨论提供共享安全性的想法,以现阶段区块链还在早期的阶段,市场上确实没有足够且去中心化的验证人节点来为新的区块链服务(必须要有足够的经济诱因),我认为共享安全性是一个不错的点子。
第四个不同点
瞄准场景的不同
Cosmos专注在代币流动的领域,还有支持跨链下使用代币进行的物件化模块功能调用。
Polkadot专注在整个信息的流动,其它Parachain的最终共识由Polkadot提供,使Polkadot的中心Relaychain在记录整个网络的所有信息状况更容易,Polkadot上可以做到直接调用其它链上的智能合约。
两个项目其实都可以向外扩展,或是向某个方向专注,特化下自然会形成两者各自的特色而吸引各自的项目开发者与使用者。
最后一些有趣的讨论
1. 不管是Cosmos和Polkadot都要面临验证人节点不足的问题,从我们参与社区的观察,一条链拥有超过100个不同背景的验证人节点现阶段是很难的(短期内区块链还没有发展那么广为人知,可能由基金会自己运行,投资机构运行,或同一个团队运行多个节点来满足)
2. Cosmos, Polkadot及Tezos, 这三个项目的验证人节点有很大一部分重叠,作恶问题,垄断问题可能发生,是一个有趣的事实。
3. 项目开发进度与回应速度,我会比较担心Cosmos,Cosmos项目已经延期,而且从我们递交给官方信息的反馈速度来看,Polkadot远胜Cosmos。
4. 跨链项目不会这么快,观察他们如何完美的解决连接以太坊及比特币再说,这两个最主要的区块链社区,互相连接上了才会有更多的交互的创意与应用,连接以太坊是这两个项目上线后最主要的目标,同时他们也提到连接比特币更困难,但还没有确定时间轴。
5. Cosmos团队提到2019年要开始宣传可组合型Composibility,Cosmos SDK是一个可以节省开发者大量时间的工具包,内置委托代理,治理,跨链等基础功能模块,Polkadot也做了一个类似工具包Substrate。除了设计哲学,谁能更好的说服及宣传自己的工具包,谁就能掌握更多的开发者。