跨链设计领域还没有明显的赢家。在IBC/Layer Zero之后,我们希望能看到更进一步的迭代。
我们从成本、安全性、效率三个方面比较了所有主流的跨链桥设计:
(跳出跨链资产转移,来到更通用的跨链通信)
在这种痛苦的权衡之下,我们相信跨链的设计会继续迭代。在本文第四部分,我们会讨论三个想法:
这篇文章中会提及的项目:Ethereum 2.0, Cosmos, IBC, Layer Zero, Solana, Serum, Optimistic Roll-ups, StarkNet, Terra, THORChain, Osmosis, Anyswap, Wormhole, Ronin Bridge, Terra Bridge, Avalanche Bridge, Ren Bridge, Axie Infinity
这一部分包括:
- 当前的现实仍然是多链的世界
- 跨链基础设施的价值和使用场景
- 跨链战争和L1战争之间的爱恨情仇
- 跨链协议的价值捕获:为什么它是(且应该是)瘦协议
在短到中期的未来,我们的世界会有更多的链,而不是更少:
跨链的互操作性是一个很重要的设计领域:
货币的互操作性(Money interoperability):对用户来说,货币就是货币。不能互换的货币仅仅是商店的积分。创建互操作性能够提升资产的价值。
数据的互操作性(Data interoperability):Facebook 和 Google 是世界上最具价值的企业,因为它们在没有关系的数据中捕获到了价值。类似的数据现在被浪费在相互孤立的区块链中。
使用场景:资格认证(credentialing)、信用评分、元宇宙中的身份、协议奖励在另外一条链上的用户。
对那些对L1战争感兴趣的人来说,跨链通信领域已经和区块链可扩展性深度绑定:
一个有价值跨链协议应该是一个非提取式的(non-extractive)、无状态的、几乎无需防御的瘦协议,就好像互联网的IP层一样。在我们看来,一些通常用来建立跨链协议护城河的方法并不是最优的,或者它们会对跨链的效用有破坏性:
直接的影响:跨链基础设施的主要投资驱动力可能是生态系统基金和具有既得利益的风险投资公司。每个链都可以提供跨链作为最基础的功能。在这种情况下,可信的中立性成为一种罕见的美德——这是另外一个感兴趣的话题,我们不在这里展开。
因此,我们对跨链重要性的讨论并不意味着它们代币的投资价值比例。
这一部分包括:
- 中心化交易所
- 资产桥
- 全链去中心化交易所
代币是web3中最突出的原语之一。它们构成了最多的跨链使用场景。
历史的类比:人们发现银行可以帮助促进两个原本孤立的主权国家之间的价值转移。
中心化交易所就像一个商业银行,在很多国家都有货币储备。如果一个人能够使用中心化交易所,那么它仍旧是一个简单、直观的跨链服务。
优点:
不足:
资产桥的资产好像一张旅行者的支票(如果有人老到知道那是什么的话),是一种在web3中被称为wrapping(包装?封装?)的信贷工具。
项目案例:Wormhole, Ronin Bridge, Terra Bridge, Avalanche Bridge, Ren Bridge
它是如何工作的?
资产桥在每条链上都部署一个智能合约,然后将此条链的本地资产锁定在智能合约中,凭借桥本身的信用,通过另一条链的智能合约再发行一个自定义包装(wrapped)过的资产。
例如:在以太坊上锁定100个ETH,然后通过wormwhole这个智能合约,在solana上发行100个wETH。
理论上,这种包装(wrapped)过的资产是依托于在另一条链上1:1锁定的原生资产作为抵押的。
这种桥有放入白名单的链下验证者。验证者在链A上观察本地资产是否已经被锁定,然后在链B上发行包装过的资产。在Wormhole这个项目中,一共有19个验证者在被称为“卫士”(Guardian)的网络中,大部分的卫士都是Solana链上的顶级验证者。
优点:
不足:
我们可以将商业银行去中心化吗?
可以的,这就是去中心化交易所专用链正在做的。
案例项目:THORChain, Osmosis, Anyswap
它是如何工作的?
优点:
比中心化交易所更低的准入门槛——不需要KYC
具有智能合约的可组合性
统一的流动性:所有链的流动性池都是 XXX-RUNE,即都和RUNE组成流动性。
例如:BNB/ETH/LUNA 在和SOL交换时,都是从RUNE-SOL池中提取流动性。
全部是原生资产:只要交易完成,那么再不需要依赖于交易所是正直的这个假设。本质上,交易所是把脱钩的风险从用户身上转移到了流动性提供者身上。
开放的资产列表:任何人都可以在交易所为一种新的资产提供流动性对。
不足:
我们不喜欢资产桥。包装过的资产不是原生链的主权资产;它们是资产桥协议的非流动性借据,很容易受到攻击。
对于那些有权限的人(满足KYC,税收以及有它们希望交易的资产),中心化交易所仍旧是最简单也是最便宜选择,它只有短暂的对手方风险。
除了中心化交易所,用户只能使用全链交易所。它们都支持本地原生资产和统一的流动性。但是用户必须支付协议的多层级费用:流动性的费用、专用链的验证费用或者中继预言机的费用、交易滑点等等。
这部分包括:
- IBC是第一个通用的跨链协议。它最大的创新点是:可以在本地链原生验证另一条链上的交易——通过维护一个链上的轻客户端。
- Layer Zero试图解决IBC最大的问题:链上验证高额的GAS费用。Layer Zero引入了ChainLink预言机,在信任、固定成本、可变成本的设计上做了一些不同的选择。
下一个阶段的跨链主要关注通用的跨链通信。这里不难看出为什么通用的跨链通信在整体上都是很有价值的:
跨链通信的难题有三个部分:
一些细节和讨论,如果你不关心技术,那么可以略过这部分:
在WEB 2,一个典型的实现方式是一段“监听者”代码,这意味着服务器不停地(每隔一毫秒去循环一次)去扫描它端口看看是否有新的请求。这种方式在WEB3是不可能的,因为在链上进行高频的循环计算成本太高了。
在WEB 3,自运行的智能合约需要被通知有一些事情发生了。目前的解决方案都依赖于验证每条链上交易的节点——“中继者”(Relayers)。我们将会在下个部分讨论它们做了什么。
在WEB 2,这个问题微不足道。谷歌可以通过互联网给FACEBOOK发送任何数据。
在WEB 3,我们需要关注的是计算需要经济实惠。我们很幸运,感谢这些聪明的以太坊设计,我们不需要将整个区块都发送出去:为了描述并证明一个交易已经发生一个以太坊的区块中,我们只需要发送整个区块大小的不到0.1%的数据(参考: Patricia-tree)。 在IBC和Layer Zero,中继者负责发送这些数据。
在WEB 2,这个问题同样简单明了。FACEBOOK使用已经建立的协议(像HTTPS)来验证谷歌服务器的签名同时解密消息。
在WEB 3,仅仅知道交易信息和它所属的区块XYZ(数据)是不够的,接受消息的智能合约还需要确信区块XYZ已经被包含在源头区块链中了。这种证实是有难度的,因为即使在这个区块被验证且签名之后,重组也有可能会发生。如何处理这件事是IBC和Layer Zero最主要的区别。
IBC把以上的三个要素分离给了中继者和轻客户端。
工作流程
监控和激活+交易数据——中继者:如之前讨论的,中继者是一组节点,它们可以在同一台物理机器上验证两个链的数据。中继者使用便宜的云计算能力去监测链A上的网络请求。如果他们发现了链A→B的请求,它们就会提交一个交易到链B。
验证——轻客户端:IBC同样也需要部署一个链上的轻客户端(看定义)。链B上的智能合约可以独立的在链上验证那笔交易在源链上是否已经被写入,这是IBC认可这笔交易的最后一步。
*定义——链上轻客户端:是一个部署在链A上的应用程序,它会观察和记录链B最新的区块头。(即,最长的链)
关键设计选择的讨论
IBC的运转依赖于链下的中继者,它们运行着链A和链B的轻客户端。IBC中继者的客户端软件是开源和不限制使用的,所以任何人都可以成为中继者。他们不需要在安全方面被信任,因为链上的智能合约会验证所有的交易。中继者的冗余只是为了服务的可用性。
链上的验证在像ETH这种高GAS的链上成本会非常高,因为在ETH上的IBC协议需要不停的存储其他链的新区块头来维持实时的验证。
“… 在以太坊上,轻客户端每对链每天要几千万美金的成本,” Layer Zero如是说。
Layer Zero 相比 IBC有两个主要的不同点:
工作流程
“在Terra链上是否有默克尔树根哈希为0xbbcc 的129634区块在你完整版本的区块链账本中?这个区块至少有X个子区块。”
同时,数据部分也会沟通,
“这里有一个Terra链的交易,钱包地址0x1927发送了10个LUNA给了智能合约地址0x7878。这笔交易被包含在默克尔树根哈希为0xbbcc 的区块中,下面这是区块包含在内的默克尔路径证明。”
将上面两部分放在一起,我们就有了数据和验证两者来证明在另一条链上发生了一笔交易。
设计选择讨论
鉴于两者差异化的优势,我们期望IBC和Layer Zero可以共存。
IBC适用于以下的使用场景:
反过来说,Layer Zero非常适合将高GAS的链和低频使用的链连接在一起。
这部分包括:
- 二层网络的复杂性和分片区块链未来会让跨链通信的问题更加复杂。
- 我们对未来演变的推测:
- CLOBs——中央限价订单簿,提升资金使用率。
- 使用zk-SNARKs来优化链上验证
- 链级别的SDK来实现完全去中心化
未来将有更多的复杂性
这里我们只了简单的一层网络的链间通信。对更复杂的链间互操作性的解决方案的设计仍然是一片空白,下面是一些例子。
二层网络Roll-ups:由于二层网络的结算层在以太坊网络,以太网的1层网络可能需要来证明最终性。
分片区块链:截止2022年3月,以太坊基金会仍然没有决定ETH2.0网络的设计选择。我们在观察两件事情:
我们的一些推测
中心化限价订单簿 Central Limit Order Books (CLOBs)
类似于去中心化的自动做市商交易所相较于中心化交易所是如何提供一个更开放但更贵的市场,全链交易所目前最大的痛点是非常低的资金利用率。
也许全链交易所可以借鉴Serum来提供中心化的限价订单簿,在费用、最终性和延迟上提供不同的选择。另外,如果Serum本身发展的足够快,它自己本身也可以尝试。
ZK-SNARKs(一种零知识证明的技术)
零知识证明的Roll-ups面临的设计问题和跨链桥面临的非常类似:
如果证明在另一条链上已经发生的且具有最终性的事情?
虽然我们目前没有时间来深入探讨零知识证明的数学计算,但我们会非常乐于看到零知识证明和跨链沟通相结合而带来以下全部或一些特性:
链级别的SDK标准化,以实现完全的去中心化
所有目前的跨链解决方案都包括中继者。正如我们之前讨论过的,跨链用例的经济性差意味着中继者总是生态系统中的重量级选手。他们利益一致,如果有必要,他们可能会进行勾结——在某些极端情况下会导致重大的中心化风险。
所以完全去中心化的桥在技术上是否是可实现的呢? 我们相信是的:
上面绿色部分的两个要素已经通过部署轻客户端实现了去中心化:
轻客户端协议的目标是允许用户在一个低容量的环境中(嵌入式智能设备、智能手机、浏览器插件、一些桌面电脑等)有一个高安全性的保证,保证当前以太坊网络某部分的状态的准确性或是验证某项交易。
所以我们最后需要进行去中心化的一步是监听和通知(Monitor and Alert)。
不成熟的方案:一个不成熟的方案是需要链B来扫描所有链A的区块来发现是否跨链通信的请求。但如果是以太坊来扫描solana网络,这个方案是不可能实现的。
SDK集成:考虑一个方案:链A在它的每个区块或隔几个区块中有一个授权的专用空间。链A的规则就是要求矿工们把所有的跨链通信请求放到那个区块空间中去(the "networking bytes")。链B只需要去扫描这个空间来发现是否有新的请求。这个设计可以降低链B的扫描工作量,类似于轻客户端比全节点要轻2500倍。(这是因为轻客户端只会同步非常有限的一部分元数据,如下图)
一个区块空间格式绝不仅是一个疯狂的想法。COSMOS已经把它加入了Tendermint SDK。SOLANA也有类似的区块空间规则,但不是为了跨链通信,而是为了优化并行执行,可参考SeaLevel。毫无疑问,这条路还会继续进行优化。
牛逼!感谢你读了这么长一篇文章。跨链设计还非常年轻,空间还很大。让我们一起关注并建设它。我们对一个完全去中心化的、没有鲸鱼的跨链通信协议非常兴奋。
Messages are always welcome:
鸣谢
We want to thank our thought partners for the brainstorming chats, reviews, comments, and edits that have made this piece possible.
Rebecca, Building @Pentagon, https://twitter.com/rebeccadai0
Rui, HashKey Capital, https://twitter.com/YeruiZhang
Cathy, Xerse Ventures, https://twitter.com/cc0987xx
译者注:以上内容为TheAntiApe所著文章的翻译,仅供学习和交流使用,不作为任何商业行为的用途。
原文链接如下,如有错误,烦请指正。
https://antiape.substack.com/p/whats-wrong-with-bridges-and-whats?s=w
译者推特,欢迎交流: