教你如何比较跨链桥

链得得的朋友们
链得得的朋友们

Aug 17, 2022 链得得的朋友们

摘要: 安全在未来将成为跨链桥之间的区别特征。

文章来源:老雅痞

信息来源:jumpcrypto,略有修改

原文作者:Jonathan Claudius, Anirudh Suresh, Eric Wong, Akshath Sivaprasad

介绍

无论是在物理世界还是在加密领域中,桥梁都被设计用来连接被障碍物隔开的两个地方。物理世界的桥连接着跨越山川、河流和其他自然屏障的土地,而跨链桥协议则连接了没有办法进行通信和同步的区块链。桥梁的重要性在它们发生故障的时候最能体现出来。在现实世界中,灾难性桥梁事故的记录表明了它们的重要性,以及设计或建造不当的桥梁会有多么危险。

随着加密货币的成熟,同样的道理也越来越适用于跨链桥协议。就安全风险而言,跨链桥是一个很容易被盯上的目标。从智能合约利用潜力和攻击规模的角度来看,跨链桥呈现出一个二次风险面:随着跨链桥连接的链数量的增加,维持跨链桥运行所需的智能合约数量以二次增长(至少在点对点模型中是这样)。根据定制配置在不同的运行时间编写的更多智能合约也会迅速增加过桥风险。在辐射模型中,与枢纽链或网络有关的单一漏洞同样会导致不相称的损害。

就像最近的Nomad黑客攻击所显示的那样,一个漏洞就可能导致跨链桥的大部分或全部资金的损失。尽管漏洞与桥无关,但它很可能源于操作失误。在Ronin桥的案例中,糟糕的操作安全措施导致了钓鱼攻击,攻击者通过获得确保网络安全的大多数验证器的控制权,从而能够带着5亿多美元的资金潜逃。与此同时,Wormhole在2月份的漏洞攻击是由于缺乏验证检查,从而使攻击者能够创建虚假签名并窃取了超过3.2亿美元。

如果不关注安全问题,就不可避免地会出现更多的疏忽,从而导致漏洞和损失。跨链桥所拥有的巨大的TVL使其比普通协议更具有吸引力。在上述的每个案例中,被利用的漏洞都与协议的桥接逻辑无关,而是与智能合约漏洞和操作疏忽有关。即使是最精心编写的代码和最佳审计实践,随着上链数量和启用功能数量的增加,也必然会遗漏漏洞。因此,跨链桥更重要的是在最坏的条件下也能安全工作。

在使用跨链桥时,用户最关心的是以下几个特性:良好的用户体验、低滑点和效率,以及资产的安全性。其中,安全性不仅仅是评估跨链桥时要考虑的一个因素,相反,它是评估的最重要特征。

考虑到这一点,让我们看看不同跨链桥的安全性是如何叠加的。下面,我们将从三个角度讨论和比较跨链桥的安全性:

  1. 信任假设

  2. 代码质量

  3. 安全特性

前两个与跨链桥在其信任层及其源代码中排除漏洞来源的能力有关。最后一个对应的是一项协议是否承认它可以并且将不可避免地存在漏洞——无论它多么小心——并建立额外的安全措施来最大限度地减少用户受到伤害的可能性。

信任假设

跨链桥的核心可以分为3个部分:

  1. 从每条链发送/接收消息的智能合约

  2. 验证消息是否确实来自原始链的oracle

  3. 将消息提交给目标链的中继者。

在实践中,桥在如何在oracle中达成共识(关于消息是否有效)方面的实现方式可能会有很大差异,这也说明了对中继者的要求。

在我们深入探讨之前,先来快速浏览一下该领域中一些最流行的跨链桥所使用的共识机制:

Axelar

Axelar在一个基于Cosmos的股权证明网络上运行,验证者由代币持有者选出,并根据委托给他们的股权按比例赋予投票权。Axelar网络通过一个(t,n)阈值签名方案来验证跨链信息,其中签名者的投票权归一化为n,n必须大于协议阈值t才能签署消息。Axelar网络目前最多有50个验证者,并且必须获得超过66.67%的多数投票才能签署消息(这两个变量都可以通过治理投票修改)。

虽然理论上验证者的最大数量是无限制的,但在实践中,由于验证者不需要为每个受支持的链运行节点,因此投票权似乎会有偏差。在Axelar当前的验证者列表中,虽然总共有47个验证者,但只有20个拥有有意义的投票权,而且对于任何特定的链来说,这个数字更低。例如,如果我们只考虑验证Aurora的节点,则需要8个节点才能成功发送消息,而共同审查消息只需要4个。

LayerZero

LayerZero是一个跨链互操作性协议,它将链之间的无信任通信问题简化为了两个实体(它的oracle和它的中继者)之间的独立问题。oracle将区块头转发给目标链,而中继者转发交易证明,两者共同证明该消息是有效的,并且确实被提交给了它所来自的原始链。用户应用程序可以灵活地使用LayerZero的默认oracle和中继者,也可以创建和运行自己的oracle和中继者。

默认oracle是一个Chainlink DON,它在三个参与者(FTX、Polygon和Sequoia)之间使用阈值签名方案。在撰写本文时,由于LayerZero代码库的闭源性质,所以对它的实现知之甚少。关于oracle的应用程序特定版本,LayerZero自己的Ackee审计指出,对于任何创建并运行自己的oracle和中继者的应用程序来说,成功提交无效的交易证明和区块头是很容易的。然而,这种模块化确实提供了一个好处,任何未来的漏洞将只限于那些使用受影响的oracle-中继者对的应用程序。

这个跨链桥的信任假设取决于两个实体的行为—只要oracle和中继者彼此独立运作,就不可能发送无效消息。但反过来说,任何一个组件都可以随意省略数据来审查信息,因为该系统需要两者都能正常运作以验证信息。

Multichain

Multichain是一种跨链消息传递协议,源自于以前的跨链代币交换协议Anyswap。Multichain使用安全多方计算(SMPC)运行阈值签名方案,以创建公钥并签署链之间发送的消息。这些节点以无信任的方式控制外部拥有的帐户(EOA),其公共地址对应于拆分的私钥。这些帐户用于存储资产并将资产转移到目标链,目标链只需检查发送者的地址是否可信,而不是验证消息本身。

Multichain网络目前由24个SMPC节点组成,由不同的机构运行,并需要大多数节点来共同验证消息。因此,该协议的安全性依赖于SMPC节点的信誉安全性,它假定所有节点的诚实多数超过1/2。需要13个签署方跨链发送数据,12个节点共同审查消息。

Nomad

Nomad是一种以EVM为中心的跨链消息传递协议,采用optimistic机制来验证消息,在这种方法中,消息被添加到Merkle树中,并散列到由Updater发布到原始链上的新的根中。更新者必须发布债券,激励他们发布有效的认证,并尽量减少停机时间。然后,观察员有时间对新根提出质疑,并提交欺诈证明。一旦超过时间范围,这一Merkle根就被认为是有效的,并被转发到目标链进行发布,从而允许消息本身(因为Merkle根只是消息的一个表示)被发布到目标链上。

这种optimistic模型只需要一个诚实的观察者来验证是否发布了无效的更新。这种安全模型的代价是,观察者有大约30分钟的时间提交欺诈证据,这将使信息的传输延迟相同的时间。因为观察者可以通过发送带有虚假欺诈证据的目标合同来防止消息被处理,Nomad使用了一组由应用程序指定、经过许可的观察者。该协议的安全性来自于至少存在一个诚实观察者的可能性,以及因不良行为而削减更新者的经济安全性。

Nomad智能合约可以通过多签名治理模型进行升级,5个签名者中有3个需要执行治理更改并处理恢复管理。

值得注意的是,最近的Nomad黑客攻击与其共识机制的安全性无关。这是一个不幸的合约配置错误,导致了智能合约终端的不良行为。

Wormhole

Wormhole利用一个权威证明守护者网络作为oracle,并利用无许可中继网络来跨链传输消息。19个守护者中的每一个都为Wormhole支持的每一条链运行完整的节点,并监听Wormhole的核心合约在每一条链上发出的消息。这些守护者验证并签署这些消息,然后在P2P网络上互相传递。一旦消息收到2/3以上守护者(至少13个)的签名,它就会被转发到目标链上。这种设计的一个副作用是,它允许一个完全无信任的中继网络将消息发布在目标链上。因为这些消息是由守护者签署的,因此不可能更改消息内容或对其进行审查,因为任何人都可以运行中继者来提交任何消息。

本协议的安全保障来自于守护者的声誉权威。在Wormhole的案例中,这是一个由Web3中最大的19家质押和基础设施提供商组成的团体。签署一个虚假信息需要13个守护者合谋,审查信息需要7个守护者合谋。此外,现有的守护者团体有权投票罢免或替换守护者。

代码质量保证

代码质量保证是指在链上部署代码之前所付出的努力。这可能涉及到:

  • 审计——对公开的核心功能和新功能进行多次独立的质量审计

  • 赏金——为激励漏洞披露提供有吸引力的奖励,并因支付大额赏金而享有声誉

  • 测试——在每一次代码更改中测试尽可能多的协议堆栈,以检测不断增长的软件生态系统中的回归情况。

  • 部署安全——在开放环境中构建、合并之前需要审查、合同字节码验证、升级模拟

下表总结了五个跨链桥协议在这四个方面的表现。我们将在下面深入探讨每一个。

Axelar

Axelar有多次公开的、声誉良好的审计,并运行着一个相当强大的(尽管最近几个月相对不活跃)测试套件:持续集成(CI)和持续交付(CD)运行、bash构建脚本和校验验证。它有一个积极的Immunefi漏洞赏金计划,声称针对重大漏洞提供100万美元的丰厚赏金,但其他级别漏洞的赏金额度要少得多。Axelar repo有定期的贡献者活动,其PR至少需要1个审查者的批准。

LayerZero

LayerZero在代码部署方面的措施显得有些不透明。虽然有一些来自高质量审查者的公开审计,但却缺乏公开的CI和CD流程。其代码似乎是一次性公开发布的,而不是一个敏捷的开发流程,而且现有的测试似乎相对过时,且仅限于JavaScript测试。Pull请求似乎缺乏强制的同行审查。LayerZero确实在4月份宣布了一个与Immunefi合作的1500万美元的bug赏金计划,然而迄今为止还没有公开发布这样的程序,也没有关于如何向bug赏金提交漏洞的说明。

Multichain

Multichain已经进行了多次公开审计,并与Immunefi达成了最高200万美元的赏金计划。Multichain的测试方法似乎停滞不前,似乎仅限于通用ABI和简单的转移检测。尽管有CI和CD的运行和有限的单元测试和集成测试,但部署过程似乎主要是手动的。Multichain的repo有一些定期的贡献者活动,但似乎只需要一方合并代码(原始开发人员可以合并他们自己的代码)。

Nomad

Nomad最近接受了Quantstamp的公开审计,并有一个最高赏金达100万美元的Immunefi bug赏金计划。Nomad的测试套件包括一些基于Foundry的路由和消息传递测试,并且类似于Axelar,也有bash构建脚本来构建和验证字节码。Nomad的Repo有定期的贡献者活动,其PR需要至少两方来合并代码(原始开发者+ 1个独立审查者)。

Wormhole

Wormhole的安全页面突出显示了来自行业领先审计公司的已完成和正在进行的审计。Wormhole在Immunefi有一个1000万美元的赏金计划,自2月份的黑客攻击以来,已经支付了1100多万美元的漏洞赏金,其中包括5月份支付给一名白帽黑客的1000万美元。Wormhole repo利用了单元测试和集成测试的混合,有一个广泛的CI和CD套件,并运行了一系列模拟来验证升级的向后兼容性和未来的可升级性。此外,Wormhole正通过积极的提交和贡献者活动公开构建,让透明的代码审查和负责任的披露成为可能。Wormhole的PR要求至少3方合并代码(原始开发者+ 2个独立审查者)。

值得注意的是,协议的代码质量保证方式在经历重大安全事件后会显著改善。例如,在被黑客攻击后,Wormhole的代码质量保证方式迅速改善。同样,在本周发生Nomad事件后,该协议很可能在不久的将来采用额外的代码质量保证实践。显然最好在事件发生之前就采用这些做法,可惜它们并不总在优先列表上。

安全功能

如上所述,跨链桥安全的风险极高,而上述代码质量保证措施对跨链桥提供商的安全计划至关重要。在本节中,我们将仔细研究每个桥正在开发或部署的协议内安全功能,以了解当核心信任假设和代码质量保证根本不够的情况下,这些桥如何实现深层防御。

Axelar

在其白皮书中,Axelar描述了一个由网络分配的资金池,作为治理控制的保障以及在Axelar停滞的情况下为用户提供恢复治理指导的后备机制。在这种危机中,由阈值合约(由Axelar验证者管理)存放的“紧急解锁密钥”将与二级恢复用户集共享。如果需要的话,这个队列可以扩展到成千上万的个人和机构,他们可以共同控制这个网络,以:

  • 为可以在特定链中转入/转出的资金数量设置利率限制

  • 决定链上原生资产的包装形式的情况

这些功能似乎是专有的,目前还没有开源。此外,这些提议的功能并没有提供限制风险的被动安全性,而是在危机中被激活。

LayerZero

LayerZero的桥接模型包括交易应用程序选择目标链上中继者的要求。因此,在这个模型中,协议内安全功能可以扩展的逻辑位置是中继者本身。

今年4月,LayerZero团队宣布了他们的协议内安全功能,这被称为“the dome”和“pre-crime”。目前关于the dome的信息还很少公开,但关于pre-crime如何运作的线索已经在博客文章中提供。pre-crime模型本质上允许用户应用程序( UA)定义一组特定的状态,中继者必须对这些状态进行验证,如果这些状态没有被验证,中继者将不会中继交易。

需要注意的是,这些功能似乎是专有的,目前还没有开放源代码,虽然概念上很强大,但很难独立评估其有效性。

Multichain

在最近的一篇文章中,Multichain披露了他们的一些安全实践,包括提到了他们的桥接配置的一些安全功能:

  • 交易金额限制和总交易量限制:该功能允许交易规模较高的区块链被限制在一个特定的上限。此外,对于总体交易量较低的链则采用总交易量限制的方式。

  • 链上监控:该模式包括监控软件和链上看门狗,以检测异常行为并触发事件响应活动。

  • 暂停产品:该功能允许暂停所有产品,并在实施突发事件响应行为时有效将其暂停。

  • 安全基金:这实际上是一种保险基金,从所有跨链费用中提取10%来补偿用户在特殊情况下的资产损失。

Nomad

Nomad利用optimistic验证模型,在原始链上对消息进行签名,并在目标链上强制执行一个内置的时间窗口。在某种程度上,我们可以观察到这类似于“不早于这个时间打开这封信”。这段时间有助于实施“自动断路器”,并在默克尔根被认为有效之前停止资产转移。这在Nomad的文档中已经被提及,而且似乎正在进行中。

Wormhole

Wormhole的消息模型是多点传送的,消息由守护者/Oracle网络从原始链进行公证,并无信任将消息传递给目标链的中继者。该模型本质上需要一个非常强大的Oracle网络,其中协议内安全功能能够扩展。

Wormhole项目在开发过程中有三个主要的协议安全功能:监管、会计和紧急关闭。这些功能都是公开构建的,这让我们能够深入了解它们最终将如何运作。这些功能有待开发完成并被守护者采用。

  • 监管:该功能在守护者/Oracle中实施,允许守护者在一个时间窗口内监控来自任何受监管链的名义价值移动量。这让守护者能够有效地为每条链设置一个可接受的上限,一旦达到这个上限,就会阻止该链产生额外的名义价值传输。 

  • 会计:该功能在守护者/Oracle中实施,允许守护者维护他们自己的区块链(又名“wormchain”),它可以作为不同链之间的跨链账本。通过使用这个账本,守护者可以作为链上的验证者,并充当一个会计插件。如果试图进行跨链交易,但原始链没有足够的资金(独立于智能合约逻辑的验证),守护者将拒绝履行这些交易,直到原始链达成一致。

  • 紧急关闭:这一功能在链上实施,允许守护者在意识到代币桥存在的威胁后建立共识,暂时停止代币桥上的价值移动。目前的实施方案允许通过拟议的实施方案中的链上函数调用来实现这一目的。

结语

我们相信安全在未来将成为跨链桥之间的区别特征。那些优先考虑安全的跨链桥更有可能在最糟糕的日子里幸存下来,而不考虑安全的跨链桥很可能容易受到生存风险的影响,最终可能会使跨链桥及其资金陷入危险。安全可能曾经只是竞争优势的一个来源,然而,它现在必须成为每个跨链桥都应该优先考虑的首要功能,我们希望所有跨链桥都能合作以提高跨链桥安全的技术水平。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 链得得的朋友们 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信