撰文:JonathanClaudius,AnirudhSuresh,EricWong,AkshathSivaprasad
编译:0x9F,0x214,BlockBeats
在物理和加密的世界中,桥梁都是为了连接两个被障碍物隔开的地方。物理桥梁连接被山谷、河流等自然屏障隔开的土地,而跨链桥协议则连接原本没有办法进行通信和同步的区块链。每当桥梁遭受摧毁和攻击,其重要性就得以彰显。在物理世界中,历史上有据可查的灾难性桥梁坍塌事件足以表明它们是多么重要,以及设计或建造不当的桥梁是多么危险。
加密世界的「跨链桥」协议亦是如此。跨链桥在安全风险方面极易被盯上。从智能合约可能的漏洞和攻击的规模角度来看,跨链桥呈现出一个二次方风险面:随着桥接的区块链数量增加,维持跨链桥运行所需的智能合约数量也呈二次方增长。根据定制配置在不同运行时间编写的更多智能合约也迅速增加了跨链桥风险。在轮辐模型中,一个与中心链/网络相关的漏洞会导致不对称的风险。
正如最近的?Nomad攻击事件所示,一个错误可能导致桥梁的大部分或全部资金损失。然而漏洞与跨链桥无关,可能只是源于一个操作上的失误。在Ronin跨链桥的案例中,糟糕的操作安全措施让网络钓鱼攻击有机可乘,黑客获得了对保障网络安全的大部分验证节点的控制权,从而能够携带价值超过5亿的资金逃之夭夭。2月份发生的Wormhole攻击事件同样是由于验证审查的缺失,让攻击者能够创建一个虚假签名,窃取超过3.2亿美元。
如果不关注安全性,不可避免地会发生更多的疏忽,因而遭受攻击和损失。对黑客而言,跨链桥规模巨大的TVL比普通协议更具吸引力。
上述的攻击事件均与协议的桥接逻辑无关,而是与智能合约漏洞和操作疏忽有关。即使使用最精心编写的代码,经过最棒的安全审计,随着连接的区块链和启用功能的数量增加,也必然会有被遗漏的漏洞。出于这个原因,跨链桥需要被配置为不仅在正常情况下能够安全工作,更重要的是能够应对极端情况。
用户在使用跨链桥时主要关注以下几个特性:良好的用户体验、低滑点高效率和资产安全。其中,安全性是评估跨链桥的重中之重。
Trezor发布固件及套件更新将提高安全性并支持Cardano:5月19日消息,硬件钱包Trezor发布固件及套件更新,其中固件更新包括Trezor Model One和Trezor Model T的安全修复、对Cardano的支持等,套件更新则包括新增功能指南、自定义节点设置、Tor稳定性修复等。目前所有更新已可以进行安装。[2022/5/19 3:27:12]
考虑到这一点,让我们看看不同桥梁是如何迭加其安全性的。我们将从以下三个层面展开讨论,比较不同跨链桥的安全性。
信任假设
代码质保
安全特性
前两者将讨论:跨链桥在信任层和源代码这两个层面上是否充分考虑了其脆弱性/漏洞的根源。最后一点涉及到,一个协议是否承认,不管多么仔细地编码与审计,漏洞不可避免,并且能相应地建立了额外的保障措施,以尽可能减少用户的潜在损失。
为了保持完全透明,在深入讨论之前,我们承认JumpCrypto确是Wormhole项目的运营监护人,并且是Wormhole的核心贡献者之一,但我们在这篇文章中将尽可能客观评估,我们欢迎和接受任何关于如何改进这篇文章的反馈,以展现跨链桥之间差异的详细情况。
信任假设
从其核心构成,跨链桥可以被分解成3个组成部分:
智能合约:发出/接收每条区块链信息
预言机:验证信息是否来自原始链
中继器:将消息提交给目标链
在实践中,跨链桥在预言机上实现共识这一方面可能存在很大差异,这也进一步影响中继器。
在我们深入研究之前,这里是对该领域一些最流行的桥接器所使用的共识机制的一个快速介绍。
Axelar
Axelar在基于CosmosPoS网络上运行,验证者由Token持有者选举产生,并按比例获得投票权,投票权重由委托权益加权计算得出。Axelar网络通过(t,n)阈值签名方案来验证跨链信息,其中签名者的投票权,权重归一化为n,n必须大于t,即协议阈值,才能签署一个信息。Axelar网络目前最多有50个验证者,并且必须获得超过66.67%的多数投票才能签署消息。
Paxful与Chainalysis达成合作以增强其运营安全性:点对点交易平台Paxful与区块链分析机构Chainalysis达成合作,以为其运营增加安全性。通过新的合作伙伴关系,Paxful将利用Chainalysis Reactor进行深入调查,并利用Chainalysis KYT监察任何非法交易。(Cointelegraph)[2020/3/23]
理论上,验证者的数量可以无限大,但在实践中,因为验证者不需要为每条区块链运行节点,投票权会出现倾斜。在Axelar目前的验证者名单中共有47个验证者,但只有20个拥有实际有效的投票权。在某条特定区块链上,这一数字更小。例如,如果我们只考虑验证Aurora上的信息,只需要8个节点就可以成功发送一条消息,只需要4个节点审查这一消息。
LayerZero
LayerZero是一个跨链互操作协议,它将区块链之间的无需信任通信问题简化为预言机和中继器这两个实体之间的独立性问题。预言机将区块头转发给目标链,而中继器将交易证明转发给目标链,两者共同证明消息是有效的,且信息确实提交到原始链上。用户应用程序可以自由使用LayerZero的默认预言机和中继器,也可以创建和运行自己的预言机和中继器。
默认的预言机是一个Chainlink去中心化预言机网络,它在三个参与者之间使用阈值签名方案。在撰写本文时,由于LayerZero代码库的闭源性质,笔者对其执行情况缺乏了解。关于特定应用版本的预言机,LayerZero自己的Ackee审计指出,对创建和运行自己的预言机和中继器的应用来说,成功提交一个无效的交易证明和区块头并不困难。不过,这种模块化确实提供了好处,如果未来出现任何漏洞,都将仅作用于那些使用受影响的预言机-中继器对的应用程序。
LayerZero的信任假设取决于两个实体的行为——只要预言机和中继者彼此独立运行,就不可能成功发送无效消息。但反过来而言,因为这一系统要求预言机和中继者均正常运行才得以验证信息,两者中任何一方都可以任意删除信息数据。
Multichain
Multichain是一个跨链信息传递协议,源自之前的Anyswap。Multichain使用安全多方计算来运行阈值签名方案,创建公钥并签署链与链之间传递的消息。这些节点以无需信任的方式控制用户账户,钱包地址与拆分的私钥一一对应。这些帐户用于存储资产并将资产转移到目标链,目标链只需检查发件人的地址是否可信,无需验证消息本身。
声音 | BCH开发人员:11月升级将包括可扩展性和安全性功能:据unhash报道,比特币现金开发人员Mark Lundeberg在推特上发布了他对BCH 11月升级的计划。根据Lundeberg的说法,此次升级将包括可扩展性和安全性功能。Lundeberg称,将在共识中激活BIP62规则3,并允许OP_CHECKMULTISIG使用Schnorr签名。[2019/3/15]
Multichain网络目前由24个SMPC节点组成,由不同的机构运行,并且需要大多数节点来共同验证消息。因此,该协议的安全性依赖于SMPC节点的声誉安全,它假设所有节点中诚实的节点占半数以上。跨链发送数据需要13个签名者,审查消息需要12个节点。
Nomad
Nomad是一个以EVM为重点的跨链信息传递协议,采用optimistic机制来验证消息,其中消息被添加到Merkle树中,并被哈希加密到一个新的根中,由更新者发布到原始链上。更新者必须交纳保证金,从而激励他们发布有效的证明并尽量减少停机时间。然后,观察者会有时间对新根进行争议怀疑并提交欺诈证明。一旦超过时间范围,这一Merkle根就被认为是有效的,并被转发到目标链进行发布,使得原始消息被发布到目标链上。
这种optimistic模型只需要一个诚实的观察者来验证是否发布了一个无效的更新。这种安全模型的代价是,观察者有大约30分钟的时间来提交欺诈证明,这就使消息的传输也被延迟了30分钟。因为观察者可以通过向目标合约发送虚假欺诈证明来阻止消息被处理,所以Nomad使用一组由应用程序指定、经过许可的观察者。协议的安全性基于至少有一个诚实观察者存在的可能性,以及因恶意行为而削减更新者的经济安全性。
Nomad智能合约可以通过多签治理模式进行升级,5个签名者中需要有3个来执行治理变更和处理恢复管理。
应指出的是,最近的Nomad黑客事件与其共识机制的安全性无关;它是一个不幸的合约配置错误,导致智能合约终端出现恶意行为。
Wormhole
Wormhole利用权威证明守护者网络作为预言机,并利用无需许可的中继器网络来跨链传输消息。19个守护者中的每一个都为Wormhole支持的每一条链运行完整节点,并监听每个链上Wormhole核心合约发出的消息。这些守护者验证并签署这些消息,然后在P2P网络上互相传递。一旦一个消息收到2/3以上守护者的签名,它就会被转发到目标链上。这一设计的副产品是,它允许一个完全无需信任的中继器网络将消息发布目标链上,因为这些信息是由守护者签名的,所以消息内容既不可能被改变也不可能被审查,因为任何人都可以运行一个中继器来提交任何信息。
动态 | 日本上市公司开发出可以提高比特币交易安全性的系统:据日经消息,日本上市科技公司Digital Garage开发出了一种可以提高比特币交易安全性的系统。通过消除日元和比特币交易的时间差,可以防止非法存取款行为。本月得到日本政府认可的实证实验确认了该系统的有效性。[2019/1/21]
协议的安全保障来自于守护者的声誉权威。在Wormhole案例中,这是一个由?Web3中19个最大的质押和基础设施供应商组成的团体。签署假消息需要13个守护者,审查消息需要7个守护者。此外,现有的守护者有能力投票移除或替换其他守护者。
代码质保
代码质保是指在链上部署代码之前需要完成的工作。这可能涉及到以下几个方面:
审计:对已公开的核心功能和新功能进行多次、独立的质量审计
赏金:包括为漏洞披露者们提供具有吸引力的奖励,以及能够爽快支付大额赏金的行业口碑
测试:在每一次代码更改上测试尽可能多的协议栈,从而在不断增长的软件生态中进行回归测试
部署安全:在公开环境下进行开发、合并代码之前需要审查、合约字节码验证、升级之前进行模拟测试
下表总结了五个跨链桥协议在这四个方面的表现。
Axelar
Axelar有多次公开且信誉良好的审计,并运行一个相当强大的测试套件:持续集成和持续交付运行、bash构建脚本以及校验和验证。Axelar与Immunefi合作设立了漏洞赏金计划,对严重漏洞披露者给予高达100万美元的赏金,但其他级别的赏金额度相对较小。Axelarrepo有贡献者定期提交代码,PullRequest需要至少1个审查者批准。
LayerZero
LayerZero在代码部署方面似乎有些不透明。虽然有来自顶级审核员的几次公开审计,但却缺乏公开的持续集成和持续交付流程。代码似乎是一次性公开发布,不是一个敏捷的开发流程。进行的测试似乎相对过时,并仅限于JavaScript测试。PullRequest看起来缺乏一个强制性的同行评审步骤。LayerZero确实在4月份宣布了一个与Immunefi合作的1500万美元漏洞赏金计划。然而,迄今为止还没有公开发布相关项目,也没有关于如何提交漏洞获得赏金的说明。
EOS主网启动团队发布联合声明:安全性是首要考虑的任务:EOS主网启动团队发布联合声明,当前进入了安全测试阶段, 为了更好地进行测试,目前同时存在两条测试网络用于安全测试,但最后只有一个名叫EOS的主网上线。
现阶段,建立了主网的github代码库;检验确认了快照里的163,936份账号的EOS数额的正确;确认了有效的系统账户和合约;产生了两条候选主链。
安全性是EOS主网启动团队的首要任务。一支知名且广受赞誉的专业安全团队会联合EOS主网安全启动团队,旨在实现备选出块节点层次的安全实践能够实现标准化。
目前已经建立了一条供安全测试用的网络,供有意参与的候选节点对自己的架构进行严苛的安全测试。这一测试网络在启动后会持续存在,以提供持续的安全支持。这一网络是社区的共同资产。
请全体持币人注意,务必保护好私钥安全,在得到多个可信节点发布联合通告声明主网启动之前,不要进行操作。在未来四十八小时之内,EOS主网启动团队发布一则新的声明书来阐述届时最新的启动进展情况。
(注:EOS主网启动团队由EOS Core团队(此前的Ghostbusters团队)、BIOS BOOT Channel团队、中国安全启动团队构成,全球至少有90个节点候选者加入其中。)[2018/6/6]
Multichain
Multichain进行了多次公开审计,并与Immunefi有一个高达200万美元的赏金计划。Multichain进行的测试看起来停滞不前,似乎仅限于一般的ABI和简单的转移测试。虽然有持续集成和持续交付运行以及有限的单元和集成测试,但部署过程看起来主要是手动的。Multichain的repo有贡献者定期提交代码,但看起来只需要一方合并代码。
Nomad
Nomad最近接受了Quantstamp的公开审计,并有一个Immunefi的漏洞赏金计划,赏金最高达100万美元。Nomad的测试套件包括一些围绕利用Foundry进行路由和消息传递的测试,也和Axelar一样有bash构建脚本来构建和验证字节码。Nomad的Repo有贡献者定期提交代码,它的PullRequest需要至少两方合并代码。
Wormhole
Wormhole的安全页面突显了他们已完成和正在进行的来自业界领先的审计公司的审计。Wormhole在Immunefi上有一个1000万美元的赏金计划。自2月份遭受黑客攻击以来,Wormhole已支付了1100多万美元以上的漏洞赏金,包括5月份支付给一个白帽黑客的1000万美元。Wormhole的repo使用混合单元和集成测试,有一个可扩展的持续集成和持续交付套件,并运行了一系列模拟测试,以验证升级的向后兼容性和未来的升级能力。此外,Wormhole通过积极的提交和贡献者提交公开建设,让透明的代码审查和负责任的披露可以实现。Wormhole的PullRequest需要至少三方合并代码。
注意,协议的代码质保方式在经历了严重的安全事件后会有很大的改善。例如,在遭受黑客攻击后,Wormhole的代码质保方式迅速得到改善。同样,在本周的攻击事件之后,Nomad协议很可能会在不久的将来采用更多的代码质保方式。显然最好在事件发生之前就采用这些做法,可惜它们并不总在优先列表上。
安全功能
如上所述,跨链桥一旦发生安全问题,代价极其高昂。上面的代码质保措施对跨链桥供应商的安全计划至关重要。本节我们将仔细研究每个跨链桥正在开发或部署的协议内安全功能,以了解在核心信任假设和代码质保根本不足的情况下,这些跨链桥是如何实现多层防御的。
Axelar
在白皮书中,Axelar描述了一个由网络分配的资金池,作为治理控制的保障和备用机制,以便在Axelar中断的情况下为用户提供恢复治理的指导。在这样的危机中,由阈值合约存放的「紧急解锁钥匙」将与辅助恢复用户集共享。如果需要,这个队列可能扩展到成千上万的个人和机构,他们可以集体控制网络以:
为可以转入/转出某一特定链的资金量设定速率限制
决定链上原生资产的包装形式的情况
这些功能看起来是专有的,目前还没开源。此外,这些提议的功能不提供被动安全性来限制风险,而是在生死存亡关头被激活。
LayerZero
LayerZero的桥接模型包括交易应用程序选择目标链上的中继器的要求。因此,在这个模型中,协议内安全功能的关键之处在中继器。
4月份,LayerZero团队介绍了他们的协议内安全功能的方法,称为「穹顶」和「预犯罪」。关于穹顶功能的公开信息很少,但博客文章中提供了关于预犯罪是如何运作的线索。预犯罪模型基本上允许用户应用程序定义一组特定的状态,中继器必须根据这些状态进行验证。如果这些状态没有得到验证,中继器就不会中继交易。
注意,这些功能看起来是专有的,目前还没开源。虽然概念上很强大,但很难独立评估其有效性。
Multichain
Multichain在最近的一篇文章中,披露了他们的一些安全措施,包括提及他们的桥接配置的一些安全功能:
交易量限制和总交易额限制:这一功能允许交易量较大的区块链被限制在一个特定的上限。另外,对于交易量较低的区块链,则采用总交易额限制的方式。
链上监控:这种模式涉及监控软件和链上看门狗,以检测异常行为并触发突发事件响应行为。
产品暂停:这一功能允许暂停所有产品,并在实施突发事件响应行为时有效将所有产品暂停。
安全基金:这实际上是一个保障基金,拿出所有跨链费用的10%补偿用户在特殊情况下的财产损失。
Nomad
Nomad利用optimisticverificationmodel,即消息在原始链上签名,并有一个内置的时间窗口会在目标链上强制执行。在某种程度上,我们可以观察到这类似于「不早于这个时间打开这封信」。这段时间对于实施「自动断路器」和在Merkle根被认为有效之前停止转移资产是有用的。这在Nomad文档中已作为一个概念出现,开发似乎正在进行中。
Wormhole
Wormhole的消息传递模型是群播的,即消息由守护者/预言机网络从原始链进行公证,并且不信任将该消息带到目标链的中继器。这种模式基本上需要一个非常强大的预言机网络,协议内安全功能有赖于此。
Wormhole项目有三个主要的协议内安全功能正在开发中:监管、会计和紧急关闭。这些功能是在公开可见的情况下开发的,这让我们能够深入了解它们最终会如何运作。这些功能正在等待开发完成并被守护者采用。
监管:这一功能在守护者/预言机中实现,允许守护者在一个时间窗口内监控来自任何受监管链的价值流动的名义金额。守护者可以为每条链设定一个可接受的上限,一旦达到这个上限,就会阻止这条链超出的资产流动。
会计:这一功能在守护者/预言机中实现,允许守护者维护他们自己的区块链,它们可以作为不同链之间的跨链账本。这个账本不仅可以让守护者担任链上的验证者,还充当了一个会计插件。守护者可以拒绝原始链没有足够的资金的跨链交易。
关闭:这一功能在链上实施,允许守护者在意识到跨链桥存在的威胁后,达成共识暂时停止跨链桥上的资产流动。目前的实施方案允许通过拟议的实施方案中的链上函数调用来实现。
结语
在未来几个月或几年里,我们相信安全将成为跨链桥之间拉大差距的地方。那些优先考虑安全问题的跨链桥更可能度过危机,不这么做的跨链桥则很可能挺不过去。安全性可能曾经只是竞争优势的一个来源,然而,现在它必须成为每条跨链桥都应优先考虑的首要功能。我们希望所有跨链桥团结起来,共同提升跨链桥安全技术水平。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。