平行链、转接桥和预言机 互操作性如何改变未来?
本文是 Parity 核心开发者 Tomasz Drwięga 在波卡首届社区会议「Polkadot Decoded」上的分享总结。Tomasz 目前在 Parity 负责桥方面的工作,该分享名为 「互操作性的未来:平行链、转接桥和预言机」 。
先来个小彩蛋:刚好昨天 Gavin 在 Element 聊天室里也提到了 平行链相关事宜的上线顺序 ,在这里顺便也提一下。
平行链相关事宜的大致顺序(by Gavin):
-
上线 Rococo v1 并等待其稳定运行
-
上线 Kusama 的 system(公共利益性质)平行链
-
开启 Kusama 上的竞拍
-
上线 Kusama 上竞拍成功的平行链
-
(在审计完成后)上线 Polkadot 的公共利益性质平行链
-
开启 Polkadot 上的竞拍
-
上线 Polkadot 上竞拍成功的平行链
以下为 Tomasz 的分享内容干货总结(由 PolkaWorld 整理):
什么是互操作性?
什么是互操作性?这里举一个 Web2.0 的例子:你买了一份 航班延误保险 ,保险公司会从航空公司获取航班是否延误的数据,并从机场获取数据验证你是否准时去了机场,如果以上两者都符合,则会打一笔钱到你的银行账户里。
我们可以看到 Web2.0 的服务是高度互联的,而目前的区块链却是一座座孤岛。
区块链的一个重要特性是 确定性 ,也就是可以通过区块链的全部历史去验证链上发生的所有事的正确性,网络中的每个节点在任何时候都必须保存同样的结果,这意味为了保持这种确定性, 区块链不能依靠任何链外信息 。
这是目前区块链存在的问题,而我们希望区块链能够从外部世界 读取 信息,比如天气预报的信息。我们还希望能把链上信息 写入 到外部世界中,比如因为链上存储很贵,我们可以只在链上存储哈希,而把信息的具体内容存储在链下的服务器中来节省链上空间。
如何实现这种区块链与外部世界的交互呢?目前的常见方案就是通过一个 中间人 或者叫预言机(Oracle),然而我们无法验证中间人给的数据是否 准确 ,虽然我们可以通过一些博弈论或者机制设计来降低对中间人信任的依赖,也可以设置多个中间人来交叉验证信息,但是这种交互方式说到底还是不可证明的。
还有一种更好的方式就是 去信任交互 ,因为数据在链上而且链使用了加密原语,这些交互变得可证明且可靠。比如之前我们提到的链下存储数据,如果我有这个信息的链上的 哈希 ,而某人又向我出示了数据,那么我很容易地就能知道这个哈希和数据是否匹配,所以我就知道中间人没有篡改数据。在这种方案中的中间人一般被称为 中继者 或证明者,因为它们的任务是拿到数据,向区块链出示,而区块链可以验证该数据是否真实。这种方案显著降低了对信任的依赖,而且我们可以基于它去做去信任转接桥和原子互换等。
Polkadot 是一个互操作性框架
Polkadot 是一个框架,可以连接很多的区块链,每条区块链可以有完全不同的状态转换函数,也就是 “ 异构的 ”,每条链有自己的属性,这些链就叫平行链。Polkadot 通过跨链消息传递(XCMP)让这些平行链之间能够 互相交流 。而且它们不仅是互联的,它们还为整个提供了生态的 共享安全性 做出了贡献。
Parity 还做了一个开发区块链的框架叫做 Substrate ,Polkadot 本身也是使用 Substrate 开发的。外部的开发者可以使用 Substrate 加上 Cumulus 库来轻松地开发互联的平行链。
异构平行链的好处,就是每一条链可以专注发展一项功能,然后为整个生态做贡献。比如一条链专注做价值转移(类似比特币),一条链做智能合约(类似以太坊),一条链做隐私(类似 Zcash)。
Polkadot 的设计中还有 转接桥(Bridge ),可以将外部的独立链桥接到生态中来,这些转接桥是完全 去信任 和 无需许可 的。
为了让建设预言机系统更加轻松,Substrate 还有一个内置的功能叫链下工作机(Off-Chain Workers),让你可以直接在 Substrate Runtime 中建立和运行预言机。
回到之前的航班延误保险的例子,现在你可以想象这个 App 运行在整个多链的生态中。我们现在不需要和银行打交道,我们可以使用生态中的平行链提供的 稳定币 ,如 Acala 的 AUSD 或者通过以太坊桥使用 DAI,然后可以通过 预言机平行链 来获取航班延误的数据,之后通过 IoT 平行链 来确认你按时到达了机场,最后有一条 保险平行链 或者智能合约包含整套延误险的逻辑来最后执行保险。
Parity 在互操作性方面所做的努力
Robert 之前说过平行链功能已经快上线了,我们转接桥团队目前正在做一系列的通用部件,来在不同的链之间建立去信任桥。目前的主要目标是做 桥接基于 Substrate 的链的工具 ,比如连接类 Polkadot 的链,比如可以连接 Polkadot 与 Kusama 中继链,或者连接 Polkadot 和另一条使用 Substrate 的独立共识链。
我们也在做持续的优化来减少桥的成本,去做一些其他的共识来促进桥的发展,例如 BEEFY 共识就是桥接以太坊所需的。
目前主要在做的桥有:
-
Kusama - Polkadot 桥 (Parity Bridge 团队在做)
-
以太坊 - Polkadot 桥 (Snowfork 团队在做,受到 W3F 资助)
-
比特币 - Polkadot 桥 (Interlay 团队在做,受到 W3F 资助)
-
正在进行或计划中的桥:Cosmos、EOS、ZCash