本文深入探讨了以太坊多链互操作性的难题,将互操作性协议分为原生验证、外部验证和本地验证三种类型,并提出了互操作性三难困境:信任性、可扩展性和通用性不可兼得。Connext 的 NXTP 协议旨在实现安全和可扩展性,并通过协议栈的方式,在 NXTP 基础上添加原生验证协议,以实现通用性。
免责声明:这篇研究文章最初发表于 2021 年 10 月。
几天前,我们发布了 NXTP,我们用于在以太坊兼容域之间实现完全无需信任的传输和合约调用的协议 (域 = 链和 L2)。
这篇博文将试图解释为什么以太坊域之间的互操作性很困难,并由此说明为什么我们认为 NXTP 代表了生态系统真正长期解决方案的开始。
多链/L2 以太坊已经到来,并将继续存在。这刺激了数十个新的桥和互操作性协议的创建,因为各项目都在争先恐后地为 DeFi 启用此功能。
正如预期的那样,这也带来了一些备受关注的黑客攻击和诈骗:
题外话:大多数人没有意识到这一点,但可扩展性研究就是互操作性研究。我们早就知道可以通过转移到多个域来实现扩展,但问题始终是如何以无需信任的方式实现与这些域的通信。这就是为什么 John Adler 关于乐观 Rollup 的开创性论文名为“通过停止实现的无需信任的双向侧链桥”。
让我们把上面学到的关于加密经济安全性的知识应用到桥上。
考虑这样一种情况:你的资金在 Arbitrum 上。你特别选择使用这个域,因为它是一个 Rollup,这意味着(在一些合理的假设下)你的资金完全由以太坊的底层验证者保护。换句话说,你的资金在区块链生态系统中尽可能地具有加密经济安全性。
现在想象一下,你决定使用桥将你的资金廉价而快速地转移到 Optimism。 Optimism 也是无需信任的,因此你很放心地将资金放在那里,因为你知道它们将与在 Arbitrum 上一样享有相同的安全级别(以太坊的安全性)。
但是,你使用的桥协议利用了自己的一组外部验证者。虽然这最初可能看起来没什么大不了的,但你的资金现在不再由以太坊保护,而是由桥的验证者保护:
尽管已经等了多年才等到安全、无需信任的 L2,但你的情况现在和你使用受信任的侧链或 L1 结构一样。😱
关键的要点是,加密经济系统的安全性仅与其最薄弱的环节一样。当你使用不安全的桥时,你的链或 L2 有多安全已经无关紧要了。而且,类似于 L1 和 L2 的安全性,这一切完全归结为一个问题:谁在验证系统?
我们可以根据谁来验证所有互操作性协议,将其分为三大类:
原生验证协议是指所有底层链自己的验证者都在完全验证链之间传递的数据的协议。通常,这是通过在一个链的 VM 中运行另一个链的轻客户端来实现的,反之亦然。
示例包括 Cosmos IBC 和 Near RainbowBridge。 Rollup 的进入/退出也是这种形式的一种特殊形式!
优点:
缺点:
以太坊生态系统是高度异构的:我们拥有的域从 zk/乐观 Rollup 到侧链再到底层链,这些底层链运行各种共识算法:ETH-PoW、Nakamoto-PoW、Tendermint-PoS、Snowball-PoS、PoA 等等。这些域中的每一个都需要一个独特的策略来实现原生验证的互操作性系统。
外部验证协议是指使用一组外部验证者来在链之间传递数据的协议。这通常表示为 MPC 系统、预言机网络或阈值多重签名(所有这些实际上都是相同的)。
示例包括 Thorchain、Anyswap、Biconomy、Celer、Synapse、PolyNetwork、EvoDeFi 以及非常多的其他项目。
优点:
缺点:
在某些情况下,项目将使用额外的质押或绑定机制来尝试为用户增加安全性。但是,这通常没有太多的经济意义。为了使系统无需信任,用户必须获得最高可 Rug 金额的保险,并且该保险必须来自验证者本身。这不仅会显著增加系统中所需的资本,而且还会破坏首先拥有铸造资产或流动性池的整个目的。
本地验证协议是指只有参与给定跨域交互的各方才能验证该交互的协议。本地验证协议将复杂的 n 方验证问题转化为更简单的一组 2 方交互,其中每一方仅验证其交易对手。只要双方在经济上是对立的,此模型就可以工作——即,双方不可能串通起来从更广泛的链中获取资金。
示例包括 Connext、Hop 和其他简单的原子交换系统。
优点:
注意:并非每个本地验证系统都是无需信任的。有些系统会进行信任权衡以改善用户体验或添加额外的功能。
例如,Hop 通过其对系统中快速的任意消息传递桥 (AMB) 的需求添加了一些信任假设:该协议在 1 天内解锁 Bonder 流动性,而不是在退出 Rollup 时等待整整 7 天。如果给定域不存在 AMB,该协议还需要依赖外部验证的桥。
缺点:
以上意味着有些细微之处,归结为权限:本地验证系统可以支持跨域合约调用,但前提是被调用的函数具有某种形式的逻辑所有者。例如,跨链信任地调用 Uniswap 交换函数是可能的,因为交换函数可以由任何拥有可交换 Token 的人调用。但是,跨链信任地锁定和铸造 NFT 是不可能的——这是因为目标链上mint
函数的逻辑所有者应该是源链上的lock
合约,但这在本地验证系统中是不可能表示的。
现在我们进入本文的论点,以及应该驱动用户和开发者围绕桥选择做出决策的思维模型。
类似于可扩展性不可能三角,以太坊生态系统中存在一个互操作性不可能三角。Interop 协议只能具有以下三个属性中的两个:
我们没有简单的方法来获得所有三个理想的互操作性属性。但是,我们已经意识到,我们可以采用与以太坊解决可扩展性不可能三角相同的方法来解决互操作性不可能三角。
以太坊 L1 以安全性和去中心化为优化目标,但以可扩展性为代价。这背后的理由是,这些属性对于区块链的寿命和效用来说可能是最重要的。然后,以太坊通过 L2/分片作为现有安全和去中心化骨干之上的一个层来增加可扩展性。
在 Connext,我们坚信,以太坊生态系统中具有最长寿命、效用和可采用性的互操作性系统将是最大程度地无需信任且可扩展的系统。因此,NXTP 是一个本地验证的系统,专门设计为与底层域一样安全,同时仍然可在任何域上使用。
那么通用性呢?与以太坊生态系统中的可扩展性类似,我们可以通过在 NXTP 之上(作为我们互操作网络的“Layer2”!)插入原生验证的协议来增加通用性。这样,用户和开发者就可以在任何域上获得一致的界面,并且可以在该功能可用时“升级”他们的连接以实现通用化。
这就是为什么我们说 NXTP 是我们互操作网络的基础协议。完整的网络将由一个协议堆栈组成,该堆栈将包括 NXTP、特定于域对的通用跨链桥以及将它们连接在一起形成一个无缝系统的协议。🌐
非常感谢 James Prestwich、Eli Krenzke、Dmitriy Berenzon 以及更广泛的 L2 研究社区,感谢他们在过去几年中为本文中的想法做出了贡献的多次对话,以及校对我的愚蠢错误。 😄
Connext 是一个用于在链和 Rollup 之间进行快速、无需信任的通信的网络。它是同类型中唯一以低廉且快速的方式实现此目的而不引入任何新的信任假设的互操作性系统。Connext 旨在帮助希望构建安全桥梁和其他原生跨链应用程序的开发者。迄今为止,已有超过 15 亿美元的交易安全地通过该网络。
网站 | 构建 xApps | Twitter | Discord | Crosschain Bridge
- 原文链接: medium.com/connext/the-i...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!