来源 | Medium
作者 | Kerman Kohli
编译 | 王柯凝
出品 | 区块链大本营(blockchain_camp)
近期,随着区块链跨链技术 Cosmos 的发布以及它对以太坊生态系统的潜在威胁,针对区块链互操作性也引发了不少讨论。
在这篇文章中,营长就带你走进 Cosmos 和 Polkadot,结合一定的基础知识和图解,保准你能够在技术层面上对这些协议的认识达到一个新的高度。
首先,你一定要认识到区块链互操作性的重要性。在现有网络中,你可以通过应用程序的 API 对大量的数据集进行访问和修改。而在区块链中,数据就被封锁在某一个链中。
那么,区块链具有互操作性到底意味着什么呢?
它有以下几个作用:
不需要信任,不同的区块链即可直接安全地进行资产转移;
不同链之间的智能合约可以实现交互;
某些专用链可供其他区块链使用。
在深入探讨之前,营长先为你介绍一些去中心化系统的基础知识,以便帮助你理解后续概念。
去中心化系统
顾名思义,去中心化系统就是一组计算机为实现某一特定目标而共同运作,比如向世界各地的民众推送相同的内容(如 Twitter 新闻推送)。为实现这一目标,必须克服以下困难:
准时:每个系统/电脑都是按照自己的速度和节奏执行相同的任务。
次序:由于每个系统都有自己事件的事件和时间线,试图在什么时间解决发生的什么事件还是相当困难的。
错误:由于系统宕机、系统无法正确接收/发送消息或恶意操作(拜占庭),都可能会导致系统之间协调失败。
举个例子来说,人和人之间解决问题最好的方法就是良好的沟通。但这对计算机来说却比较困难,因为它可以是异步通信,也可以是同步通信。
该如何理解同步和异步呢?
同步:每个系统会给每个主机分配特定的时间轮流进行通信,这就好比人与人的面对面对话。
异步:每个系统随时都可以进行通信,并且没有任何限制,这就好比群聊天。
总而言之,区块链最终实现的是安全性(达成一致输出)和活跃性(区块不断增长和运作)。
如果区块链安全但不活跃,就会停止产生区块;如果区块链的活跃但不安全,就会产生很多很多分叉。如果不制定规则,就无法辨别哪个是正确的区块链,哪个是分叉。
实用拜占庭容错算法(PBFT)
Barbara Liskov 和 Miguel Castro 于1999年推出了实用拜占庭容错算法(PBFT),由于 Cosmos 和 Polkadot 等权益证明链的基础是 PBFT,因此,你很有必要听营长介绍下它的工作原理。
一方监听大量的交易,直到交易数足以打包成一个区块,就会停止监听,称这一方为“提案者”(proposer),因为他们产生了一个区块。
一旦产生一个区块,每个人都要参与到“预投票”环节,以确保每个人都监听的是同一区块。需要注意的是,这个区块也可以是错误或恶意的,但在“预投票”环节仍然有效,因为在这个环节中,每个人都只是试图达成共识,即他们收到了相同的数据/区块。
一旦超过2/3的参与者达成共识,即收到了相同的区块,就会进行“预提交”,随后,确定这个块是否有效,且没有恶意操作。
如果超过2/3的参与者认为这个块有效且正确,就可以成功的提交这个区块链。
区块链的高度不断增加,继续重复步骤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。
首先为 ETH 创建一个中间可信分区(Zone),并设一组验证人负责将信息从 ETH bridge-zone 转发到 Cosmos Hub。
由于 ETH 和 BTC 存在不确定性(即当前链不一定正确),验证者需要等待一定量的确认函数后,才能保证交易成功。
一旦验证者确定交易处于最终状态,就可以从所处分区向 Cosmos Hub 发起一笔交易,表明他们确实收到了 ETH,随后,Cosmos Hub 创建 Wrapped Cosmos Ether,剩余的所有 Cosmos 分区也会同时获知:系统中存在新的 Wrapped Cosmos Ether。
假设转换汇率已事先确定,Wrapped Cosmos Ether 将会被换成 Wrapped Cosmos BTC,将这个 Wrapped Cosmos BTC 发送到比特币中间可信分区,然后发送到指定的 BTC 地址。
在这一过程中,有些假设还得注意:
Cosmos Hub 需要确保 Wrapped Cosmos 资产余额能够正确地递增/递减 — — 这是一个潜在的缺陷,不过在 Cosmos 团队设计的系统中,任何人都能以自己的方式创建 Cosmos Hub。本质上来说,Cosmos 网络由不同群体运营的 Cosmos Hub 和 Zones 构成。
需要确保每个 Zones 可信,且能够正确转发资产、发送/接收消息,另外,发送者也必须对验证人能够充分信任,即验证人一定会正确转发消息而不会窃取资产。
互操作性经典案例 — — Polkadot
Polkadot 由以太坊联合创始人兼前首席技术官、Web3 基金会总裁 Gavin Wood 创建,并于2017年底发售代币 DOT,融资超过1.45亿美元。如果 Cosmos 是由 Cosmos Hub 和 Zones 构成的开放网络,那么 Polkadot 就是单条“中继链”(replay chain),为平行链带来了诸多好处。
Polkadot 有以下几个关键创新点:
每条平行链的安全性来源于中继链上的验证者,一旦通过成为平行链连接到 Polkadot 网络,就能同时收获与 Polkadot 网络相同级别的安全性;而在 Cosmos 中,每条新链都需要验证者,安全性掌握在自己手中。
平行链可以使用去信任链间通信与其他平行链进行交互,想要跨链通信的用户不需要信任与之交互的每一条链,而只需要信任整个 Polkadot 网络具安全性即可,这也与 Cosmos 的工作原理不同:在 Cosmos 中,用户不需要依靠独立的验证者来信任源链、中继链和目标链。
Polkadot 的共识机制由两部分组成:GRANDPA 和 BABE。GRANDPA 是一个终结工具,它借鉴了 GHOST 分叉选择规则的一些原则(如 Ethereum 的 Casper);而 BABE 是一种类似于 Cardano 的 Ouroboros 区块生成机制,GRANDPA 允许链的一部分“最终化”且不可逆,将终结工具与生成区块分离,允许效率较低的终结工具在生成区块的不同流程生效,这意味着区块的生成有可扩展功能,这与基于 PBFT 的 Cosmos Tendermint 算法不同。
Polkadot 生态系统包含以下几个角色:
校对者(Collators):为平行链生成区块,并将信息交付至验证人验证。
提名者(Nominator):将资金分配给验证人参与权益机制。
验证者(Validator):对其资金量要求较高,负责打包中继链的新区块,其作用是:对新区块进行签名;参与GRANDPA确认中继链;通过确认交易是否正确,或跨链消息是否已处理,对平行链区块进行验证。
钓鱼者(fishermen):审查网络节点,鉴别恶意行为,像“赏金猎人”一样,它能够拿到一大笔报酬。
可以将 Polkadot 看作一个互连的系统,它将想要借助 bridge-zone 实现通信的各个链连接起来,所有的平行链和中继链作为一个整体运行。平行链可以合并自定义逻辑,并负责处理自己的状态转换,同时与其他链进行消息转发与传递。通过相互监听,平行链可以自由与其他链进行通信,而在 Cosmos 网络中,所有沟通都必须依赖 Cosmos Hub。
得益于中心设计理念,Polkadot 有很好的结构——平行链被动地从连接合约(bridge-contracts)中读取信息,但并不依靠连接合约在各平行链中发送消息。每条平行链都有相同的地位,也就是说,Polkadot 跨链网络真正做到了“去信任”,平行链的利益与中继链一致,而与其验证的其他任何平行链无关,此外,每隔一段时间,各个链也会随机的重新分配验证人。
案例详解:ETH 转换为 BTC
下面,营长以 ETH 转换为 BTC 为例,更为直观的了解如何实现平行链间的代币转换。
以太坊平行链上的校对人将区块头部信息传递给所在平行链上的验证人,验证人再将以平行链可识别、可通信的格式在以太坊连接智能合约中签名并发布相关交易。任何发送的 ETH 都将由 Polkadot 验证人持有,同时,验证人也将提供 DOT 作为无效交易的抵押品。随后,ETH 平行链和 BTC 平行链之间创建通信,通过验证以后,BTC 就会指定一个地址。虽然具体设计决策还未出台,但是,在跨链通信的中心始终是“去信任”。
需要注意的是,通过链上的去信任拍卖,Polkadot 分配平行链槽(parachain slots),这些拍卖会使 DOT 在一段时间内处于锁定状态,以便保持平行链和Polkadot网络的连接。如果平行链出现严重漏洞,或者是涉嫌参与恶意行为,监管就会介入并着手解决问题。Polkadot 遵循链上治理机制,并且将其看作是加密货币网络的最佳管理方式。
正如 Gavin Wood 所说的那样:
“如果不引入链上治理,包括通过各种机制来引导升级的区块链,最终都会被‘有毒的民粹主义’荼毒。我并不认可‘链下处理’,‘链上信号’和‘粗略共识’能够为区块链生态系统中的利益相关者提供有效手段,管理和推动区块链的长期进步,我也不认为治理会奏效。”
时间线
虽然互操作性的核心应用实现已经达到了一定的水平,但执行力远远不够。Cosmos 于2019年3月推出,但也只是发布及运行 Cosmos Hub,接下来的工作就是确定链间通信框架的运作方式;而 Polkadot 将于2019年底推出,目前上线的只有中继链。
总的来说,Cosmos 和 Polkadot 的发行令我感到很兴奋,我最好奇的就是如何扩大开发人员对其的采用率、如何平衡每条平行链以及如何发挥平行链的作用。由于当前基础架构远不够完善,开发人员也还得根据需要考虑实现足够好的安全性所需要的人力及资源,就目前而言,现在创建特定的应用程序链还只是一个空谈。
在以后的发展过程中是否还需要重新调整目标做出一点妥协?这个很难说,或许以太坊的链下治理会为此带来契机。由于要实现去信任创新的同时,还要保证高度安全性,这一技术的发展相对来说比较缓慢。
另一方面,所有的加密货币网络逐渐开始将安全性委托给其他链,比如以太坊。一旦现有社区能够有较高的安全保障,它们就能专注于发展自己的链。MakerDAO 就是一个很好的例子,MakerDAO 有足够的资源来创建自己的链,并且通过成为 Polkadot 平行链的一部分来获取足够的支持,如果无法保证足够的支持,它还可以在 Cosmos 上建立一个 bridge-zone 保障其安全。Polkadot 计划则为无法保障安全性但可以实现通信的链提供 bridge-slots。
以上应是社区该给出的建议,而不是将区块链当作零和游戏。
报名 | EOS智能合约与数据库开发
16岁保送北大、麻省理工博士、
EOS黑客松全球总决赛前三名
5月8日晚,精彩技术公开课与您不见不散!
推荐阅读:
从BSV下架风波, 揭秘构造区块链分叉的测试方案 | 技术头条
太可怕了! 五一外出还敢连Wi-Fi ?
精华篇 | 王嘉平:突破不可能三角「异步共识组Monoxide」(附PPT)
20k~80k,蚂蚁金服等大厂招人啦!想赶上这波人才荒,你要掌握这些...
《互联网人叹气图鉴》
硬核粉丝 | 清华双胞胎“YCY Dance Now”杀进超越杯编程大赛决赛
异构计算=未来?一文带你秒懂3大主流异构
他说:当一个程序员决定告别996,什么都有可能发生!
老铁在看了吗?