来自:区块链大本营(微信号:blockchain_camp)
作者:Kerman Kohli,
编译 :王柯凝
今天这篇文章,结合一定的基础知识和图解,带你了解 Cosmos 和 Polkadot,保准你能够在技术层面上对这些协议的认识达到一个新的高度。
首先,你一定要认识到区块链互操作性的重要性。在现有网络中,你可以通过应用程序的 API 对大量的数据集进行访问和修改。而在区块链中,数据就被封锁在某一个链中。
那么,区块链具有互操作性到底意味着什么呢?
它有以下几个作用:
不需要信任,不同的区块链即可直接安全地进行资产转移;
不同链之间的智能合约可以实现交互;
某些专用链可供其他区块链使用。
在深入探讨之前,营长先为你介绍一些去中心化系统的基础知识,以便帮助你理解后续概念。
去中心化系统
顾名思义,去中心化系统就是一组计算机为实现某一特定目标而共同运作,比如向世界各地的民众推送相同的内容(如 Twitter 新闻推送)。为实现这一目标,必须克服以下困难:
准时:
每个系统/电脑都是按照自己的速度和节奏执行相同的任务。
次序:
由于每个系统都有自己事件的事件和时间线,试图在什么时间解决发生的什么事件还是相当困难的。
错误:
由于系统宕机、系统无法正确接收/发送消息或恶意操作(拜占庭),都可能会导致系统之间协调失败。
举个例子来说,人和人之间解决问题最好的方法就是良好的沟通。但这对计算机来说却比较困难,因为它可以是异步通信,也可以是同步通信。
该如何理解同步和异步呢?
同步:
每个系统会给每个主机分配特定的时间轮流进行通信,这就好比人与人的面对面对话。
异步:
每个系统随时都可以进行通信,并且没有任何限制,这就好比群聊天。
总而言之,区块链最终实现的是安全性(达成一致输出)和活跃性(区块不断增长和运作)。
如果区块链安全但不活跃,就会停止产生区块;如果区块链的活跃但不安全,就会产生很多很多分叉。如果不制定规则,就无法辨别哪个是正确的区块链,哪个是分叉。
实用拜占庭容错算法(PBFT)
Barbara Liskov 和 Miguel Castro 于1999年推出了实用拜占庭容错算法(PBFT),由于 Cosmos 和 Polkadot 等权益证明链的基础是 PBFT,因此,你很有必要听营长介绍下它的工作原理。
1、一方监听大量的交易,直到交易数足以打包成一个区块,就会停止监听,称这一方为“提案者”(proposer),因为他们产生了一个区块。
2、一旦产生一个区块,每个人都要参与到“预投票”环节,以确保每个人都监听的是同一区块。需要注意的是,这个区块也可以是错误或恶意的,但在“预投票”环节仍然有效,因为在这个环节中,每个人都只是试图达成共识,即他们收到了相同的数据/区块。
3、一旦超过2/3的参与者达成共识,即收到了相同的区块,就会进行“预提交”,随后,确定这个块是否有效,且没有恶意操作。
4、如果超过2/3的参与者认为这个块有效且正确,就可以成功的提交这个区块链。
5、区块链的高度不断增加,继续重复步骤1-5。
以上这些步骤就可以确保每个块生成的次序是已知的(每提交一个区块,区块链的长度就会增加),每台计算机都可以计算出自己的结果并进行实时通报,还能够处理错误(恶意节点提出的区块)。
接下来,和营长一起探索 Cosmos 和 Polkadot 吧!
互操作性经典案例:Cosmos
2016年,Jae Kwon 和 Ethan Buchman 创建了 Cosmos(ATOM),并通过 ICO 为其集资了超过1700万美元。Cosmos Hub 是允许区块链与其他链进行通信的分区(Zone),任何一个使用 PoW 机制的区块链(如比特币、以太币、ZCash或特定的应用程序区块链)都必须通过 Inter Blockchain Communication 框架连接到 bridge-zone。
在架构这方面,2014年,Jae Kwon 根据实用拜占庭容错算法(PBFT),在 Cosmos Hub 中使用了 Tendermint 共识算法。这就意味投票环节(预投票和预提交)中,每个人都分配了固定的时间进行投票,一旦区块被创建完成,就不可逆,即只要交易处于最终确定的状态,就可以实现即时通信 & 物联网支付。由于不需要确认,因此称为“快速终结(fast finality)”。
用户可以将持有的 ATOM 作为系统中的验证器,或将 ATOM 委托给验证器。最初,Cosmos 设置了100个验证人,并计划参考治理参数不断增加验证人数,并且,只有为网络贡献力量的人才可以参与维护网络安全。
案例详解:ETH 转换为 BTC
为了更加简单明了,下面将 ETH 转换为 BTC。
1、首先为 ETH 创建一个中间可信分区(Zone),并设一组验证人负责将信息从 ETH bridge-zone 转发到 Cosmos Hub。
2、由于 ETH 和 BTC 存在不确定性(即当前链不一定正确),验证者需要等待一定量的确认函数后,才能保证交易成功。
3、一旦验证者确定交易处于最终状态,就可以从所处分区向 Cosmos Hub 发起一笔交易,表明他们确实收到了 ETH,随后,Cosmos Hub 创建 Wrapped Cosmos Ether,剩余的所有 Cosmos 分区也会同时获知:系统中存在新的 Wrapped Cosmos Ether。
4、假设转换汇率已事先确定,Wrapped Cosmos Ether 将会被换成 Wrapped Cosmos BTC,将这个 Wrapped Cosmos BTC 发送到比特币中间可信分区,然后发送到指定的 BTC 地址。
在这一过程中,有些假设还得注意:
1、Cosmos Hub 需要确保 Wrapped Cosmos 资产余额能够正确地递增/递减 — — 这是一个潜在的缺陷,不过在 Cosmos 团队设计的系统中,任何人都能以自己的方式创建 Cosmos Hub。本质上来说,Cosmos 网络由不同群体运营的 Cosmos Hub 和 Zones 构成。
2、需要确保每个 Zones 可信,且能够正确转发资产、发送/接收消息,另外,发送者也必须对验证人能够充分信任,即验证人一定会正确转发消息而不会窃取资产。
互操作性经典案例 : Polkadot
Polkadot 由以太坊联合创始人兼前首席技术官、Web3 基金会总裁 Gavin Wood 创建,并于2017年底发售代币 DOT,融资超过1.45亿美元。如果 Cosmos 是由 Cosmos Hub 和 Zones 构成的开放网络,那么 Polkadot 就是单条“中继链”(replay chain),为平行链带来了诸多好处。
Polkadot 有以下几个关键创新点:
1、每条平行链的安全性来源于中继链上的验证者,一旦通过成为平行链连接到 Polkadot 网络,就能同时收获与 Polkadot 网络相同级别的安全性;而在 Cosmos 中,每条新链都需要验证者,安全性掌握在自己手中。
2、平行链可以使用去信任链间通信与其他平行链进行交互,想要跨链通信的用户不需要信任与之交互的每一条链,而只需要信任整个 Polkadot 网络具安全性即可,这也与 Cosmos 的工作原理不同:在 Cosmos 中,用户不需要依靠独立的验证者来信任源链、中继链和目标链。
Polkadot 的共识机制由两部分组成:GRANDPA 和 BABE。GRANDPA 是一个终结工具,它借鉴了 GHOST 分叉选择规则的一些原则(如 Ethereum 的 Casper);而 BABE 是一种类似于 Cardano 的 Ouroboros 区块生成机制,GRANDPA 允许链的一部分“最终化”且不可逆,将终结工具与生成区块分离,允许效率较低的终结工具在生成区块的不同流程生效,这意味着区块的生成有可扩展功能,这与基于 PBFT 的 Cosmos Tendermint 算法不同。
Polkadot 生态系统包含以下几个角色:
1、校对者(Collators):为平行链生成区块,并将信息交付至验证人验证。
2、提名者(Nominator):将资金分配给验证人参与权益机制。
3、
验证者(Validator):对其资金量要求较高,负责打包中继链的新区块,其作用是:
对新区块进行签名;
参与GRANDPA确认中继链;
通过确认交易是否正确,或跨链消息是否已处理,对平行链区块进行验证。
4、钓鱼者(fishermen):审查网络节点,鉴别恶意行为,像“赏金猎人”一样,它能够拿到一大笔报酬。
可以将 Polkadot 看作一个互连的系统,它将想要借助 bridge-zone 实现通信的各个链连接起来,所有的平行链和中继链作为一个整体运行。平行链可以合并自定义逻辑,并负责处理自己的状态转换,同时与其他链进行消息转发与传递。通过相互监听,平行链可以自由与其他链进行通信,而在 Cosmos 网络中,所有沟通都必须依赖 Cosmos Hub。