![]()
桥接器使用锁定铸造、销毁铸造或流动性池机制在区块链之间转移资产,但它们的信任假设使它们成为加密货币中最容易被利用的类别。
![]()
要点
跨链桥利用锁定铸造、销毁铸造和流动性池等机制,在无法直接通信的区块链之间转移价值。
自 2021 年以来,桥接漏洞已造成超过 40 亿美元的损失,使桥接成为智能合约中最常被攻击的类别。
Ronin(6.24 亿美元)、Wormhole(3.26 亿美元)和 Nomad(1.9 亿美元)这三起黑客攻击分别利用了不同的信任假设,从被泄露的验证器密钥到错误的消息验证。
轻客户端桥接和零知识证明验证提供了更强大的安全保障,但运营成本更高,部署速度更慢。
用户在转移大量资金之前,应评估桥接器的验证机制、审计历史以及相对于其安全预算的总锁定价值。
介绍
区块链之间互不通信。以太坊无法读取 Solana 的状态。Arbitrum 也无法验证 Avalanche 上的交易。每条链都维护着自己的账本、共识机制和最终性规则。这种隔离是安全设计的必然结果,但也带来了一个实际问题:用户在一个链上持有资产,却想在另一个链上使用这些资产。
桥接技术正是为了解决这个问题而存在的。桥接系统允许用户在链A上存入资产,并在链B上接收相应的资产。这个概念听起来很简单,但实际操作中却造成了数十亿美元的损失。
核心难点在于验证。当用户声称已在以太坊上存入 100 个 ETH,并请求在 Arbitrum 上获得 100 个 ETH 时,必须有人或某种机制来验证这笔存款是否真实发生。所选择的验证机制决定了桥接的安全模型、速度、成本和攻击面。正如Coinbase 对桥接攻击事件的分析所指出的,桥接安全漏洞始终源于桥接所宣称的信任假设与其实际执行的信任假设之间的差距。
本指南涵盖了主要桥接架构的工作原理、每次最大漏洞利用成功的原因,以及在将资金委托给桥接之前需要检查哪些内容。
锁扣式铸币机:最初的桥接机制
最早也是最常见的桥接设计是锁扣式。该机制分三步运作:
- 锁定。
用户将代币发送到源链上的智能合约。这些代币将被锁定(持有)在该合约中,不会被销毁或转移。
- 验证。
一组验证器、中继器或预言机观察源链上的存款,并证明其在目标链上的有效性。
- 铸造。
目标链上的智能合约会铸造一个被锁定代币的合成版本。用户会收到“包装 ETH”或“桥接 USDC”,它们代表着对被锁定原始代币的索取权。
要恢复原状,流程相反:用户在目标链上销毁合成代币,验证者证明销毁成功,原始代币在源链上解锁。
锁定铸币机制的安全性完全取决于验证步骤。如果攻击者能够说服目标链相信发生了实际并未发生的存款,他们就可以铸造没有资金支持的代币。这正是最大规模的桥接攻击事件中所发生的情况。
算术难题。锁币桥必须保持锁定的原始代币与铸造的合成代币之间 1:1 的比例。如果 10,000 个 ETH 锁定在以太坊上,那么目标链上应该正好存在 10,000 个桥接的 ETH。任何差异都意味着部分桥接代币没有实际的资产支持。当漏洞利用导致合成代币没有资产支持时,最后赎回的用户会发现金库空空如也。这会引发挤兑:一旦漏洞利用的消息传播开来,所有持有封装代币的用户都会争相赎回,因为他们知道只有最先到达的用户才能获得真正的资产。
销毁和铸造:原生跨链代币
销毁和铸造技术通过销毁原代币并创建新代币来消除包装代币问题。
- 销毁。
代币将在源链上永久销毁。
- 已验证。
销毁事件已在目标链上得到验证。
- 发行。
新代币在目标链上原生发行。
这种模型仅适用于发行方控制多条链上铸造的代币。Circle 的 USDC 跨链转移协议 (CCTP) 是目前规模最大的实现。当用户通过 CCTP 将 USDC 从以太坊桥接到 Avalanche 时,以太坊上的 USDC 会被销毁,并在 Avalanche 上铸造原生 USDC。该模型不涉及包装代币、流动性碎片化或无担保合成代币。
其局限性在于,销毁并重新铸造代币需要代币发行方在每个支持的链上部署和运营基础设施。它并非通用机制。除非开发者构建跨链铸造基础设施,否则任何 ERC-20 代币都无法使用销毁并重新铸造代币。CCTP 目前支持十几个链,但每次集成都需要 Circle 的直接参与。
流动性池桥梁:加速资本流动
第三种模型通过在每条链上使用预先注资的流动性池,避免了封装和销毁。
机制:
- 充值。
用户将代币存入源链上的资金池。
- 提现。
用户(或代表其行事的转发者)从目标链上的资金池中提取等值的代币。
- 再平衡。
该协议会定期对跨链资金池进行再平衡,以维持充足的流动性。
Stargate(基于 LayerZero 构建)和 Across Protocol 都采用了这种模型的变体。其优势在于速度:由于代币已存在于目标链上,因此无需铸币延迟。用户可以立即收到真正的原生代币。
权衡之处在于资本效率。流动性必须预先部署在每条支持的链上,而且只有在桥接器被积极使用时,这些资本才能获得回报。在交易量低迷时期,流动性提供者的资本闲置,收益甚微。所有支持链的总资本需求可能高达数亿美元,这不仅构成准入门槛,而且如果单一流动性提供者占据主导地位,还会造成集中风险。
罗宁桥遭黑客攻击:泄露的密钥造成6.24亿美元损失
2022 年 3 月 23 日,攻击者从 Ronin 桥上窃取了价值 6.24 亿美元的 ETH 和 USDC,该桥连接以太坊和游戏 Axie Infinity 使用的 Ronin 侧链。
Ronin 的桥接器采用多重签名验证方案。九个验证节点负责验证桥接交易,任意五个验证节点均可授权提款。其安全假设是,要攻破九个独立验证节点中的五个是不切实际的。
之前的假设是错误的。Axie Infinity背后的公司Sky Mavis控制着九个验证节点中的四个。第五个验证节点在交易量高峰期授予Sky Mavis临时授权,允许其代表自己进行签名,并且从未撤销该授权。
攻击者(后被FBI认定为朝鲜的拉撒路组织)入侵了Sky Mavis的系统,并获取了所有五个验证者的私钥。他们利用九个签名中的五个,授权了两笔欺诈性提现:173,600个ETH和2550万USDC。
这个漏洞六天后才被发现。直到一名用户尝试提取 5000 个 ETH 时,才发现桥接资金不足。
教训是:多重签名安全性的强度取决于签名者的独立性。当单个组织控制了大部分密钥时,多重签名就变成了一个单点故障,而且需要额外的步骤。
虫洞黑客事件:通过绕过验证程序窃取 3.26 亿美元
2022年2月2日,一名攻击者利用Wormhole桥漏洞,在未向以太坊存入任何ETH的情况下,在Solana上铸造了12万枚wETH(封装的ETH)。此次攻击造成的损失约为3.26亿美元。
Wormhole 的跨链桥依赖于 19 个守护者来验证跨链消息。这些守护者会观察以太坊上的存款,生成一份签名证明(称为 VAA,即已验证操作批准),然后 Solana 端的合约会在铸造代币前验证这些签名。
漏洞存在于 Solana 端的签名验证中。Wormhole 的 Solana 合约使用了一条已弃用的系统指令(verify_signatures),该指令无法正确验证传递给它的账户。攻击者伪造了一个守护者集合,提交了一个包含该伪造集合签名的伪造 VAA,合约将其视为有效。
实际上,攻击者告诉 Solana 合约“这些守护者批准了这个铸币厂”,而该合约并没有检查这些守护者是否真实存在。
为 Wormhole 提供支持的 Jump Crypto 从其自身储备中拨回了被盗的 12 万枚 ETH。整个恢复过程在 24 小时内完成,这种前所未有的快速响应避免了持有 wETH 的 Solana DeFi 协议遭受连锁损失。
教训是:桥接验证代码是一个高价值的攻击面。签名验证方式中的一个逻辑错误就可能导致无限量的未经授权铸币。
Nomad 黑客事件:一次错误更新导致 1.9 亿美元损失
2022年8月1日,Nomad大桥被盗刷了约1.9亿美元。与Ronin和Wormhole不同,Nomad并非由一个组织精心策划的黑客攻击,而是在最初的漏洞被公开后,被数百名模仿者各自为战地盗刷。
Nomad 采用了一种乐观验证模型。跨链消息提交后,除非在 30 分钟内受到质疑,否则均被视为有效。一次例行合约升级引入了一个漏洞:合约初始化时使用的可信根为0x000 bytes32 值。
在 Nomad 的验证逻辑中,每条消息都会与可信根进行比对。由于0x00Solidity 中未初始化存储的默认值为空,因此每条消息都会自动通过验证。任何用户都可以提交任何消息,合约都会将其视为已验证。
第一个攻击者证明任意消息都能被接受后,其他人复制了交易,更改了接收地址,然后重放了该交易。随后,包括一些白帽黑客在内的众多投机攻击者联手攻击了这座桥梁,最终导致其资金被耗尽。这些白帽黑客后来追回了约3600万美元的资金。
教训是:桥合约中的初始化错误可能会造成灾难性后果。一个配置错误的参数就让 Nomad 的安全模型从“乐观验证加欺诈证明”变成了“完全不进行验证”。
Harmony Horizon 黑客事件:五重签名交易中的二重签名者窃取 1 亿美元
2022年6月,Harmony Horizon金桥因攻击者窃取了其多重签名机制中五个验证者中两个验证者的私钥而损失了1亿美元。Harmony金桥仅需五个签名者中的两个即可批准交易,对于一个持有1亿美元资产的金桥来说,这个门槛异常低。
这次攻击再次印证了 Ronin 的教训:多重签名桥接的安全性取决于其中最弱的签名者集合。当阈值相对于签名者数量较低时,单个基础设施的入侵就足以造成安全威胁。在攻击发生之前,安全研究人员就曾公开批评 Harmony 的五分之二阈值。
教训是:阈值选择与验证者数量同等重要。即使使用相同的底层机制,五/九多重签名与二/五多重签名提供的安全性也截然不同。
累积损失和攻击模式
智能合约安全领域中,桥接合约遭受的损失规模前所未有。过去十年间,加密货币黑客攻击造成的损失总额高达 170 亿美元,其中桥接合约漏洞造成的损失约占 30 亿美元,使其成为智能合约中最常遭受攻击的类型。
攻击模式可分为三类:
关键信息泄露。攻击者获取了足够的验证器或签名器密钥来伪造桥接消息。Ronin 和 Harmony 都采用了这种攻击模式。漏洞不在于代码,而在于签名器基础设施的运行安全性。
验证绕过。攻击者发现验证逻辑中的一个漏洞,该漏洞允许伪造的消息通过。Wormhole 漏洞就采用了这种模式。该漏洞是桥接合约中最关键函数中的一个代码级错误。
初始化或升级错误。攻击者利用部署或升级过程中引入的配置错误。Nomad 就属于这种情况。该漏洞属于程序性漏洞:团队在例行操作中犯了错误。
每种攻击模式都需要不同的防御措施。密钥泄露可通过增加签名者多样性和使用硬件安全模块来缓解。验证绕过可通过审计和形式化验证来缓解。初始化错误可通过升级程序来缓解,该程序包括在分叉网络上强制运行测试。
第四种新兴模式值得一提:治理攻击。攻击者如果积累了足够的治理代币来控制桥的升级机制,就可以修改桥合约来窃取资金。这种攻击速度较慢,也更容易被发现,但它针对的是那些治理权集中或升级时间锁定过短的桥。桥团队越来越多地使用多天(48 至 72 小时)的合约升级时间锁定,以便用户在恶意更改生效前有时间提取资金。
基于意图的传统桥梁替代方案
一种更新的方法完全绕过了桥接合约,转而使用基于意图的跨链转账。Across Protocol 和 UniswapX 的跨链模式允许用户表达桥接意图:“我在以太坊上有 1000 个 USDC,想在 Arbitrum 上兑换 1000 个 USDC。” 解算者(称为中继者)会立即从其在目标链上的库存发送代币,然后在稍后申请报销。
这种模型减少了信任面。用户无需将代币存入持有资金池的桥接合约。求解器承担赔偿风险,结算合约确保用户收到承诺的收益。攻击者无法攻击大量锁定的资产池。
权衡之处在于对求解器的依赖性:如果没有求解器愿意以可接受的价格满足意图,则转账不会执行。对于高流量路由(例如以太坊到 Arbitrum、以太坊到 Base),求解器之间的竞争非常激烈。对于低流量路由,求解器可能不活跃。
轻客户端桥接和零知识验证
上述漏洞利用方式存在一个共同的弱点:它们依赖外部验证者或多重签名来证明另一条链上发生了某些事件。如果这些验证者遭到破坏,桥接就会失效。
轻客户端桥接器采用了不同的方法。它不信任验证者集合,而是让目标链运行一个轻客户端,直接验证源链的共识。
例如,一个连接以太坊的轻客户端桥接器会跟踪以太坊的验证者集,并在链上验证区块头和状态证明。当用户声称已在以太坊上存入代币时,桥接合约会将默克尔证明与它已经验证过的以太坊区块头进行比对。
这种方法最大限度地减少了信任需求:桥接器信任源链的共识,而不是外部委员会的共识。但这种方法成本很高。验证以太坊在另一条链上的共识需要大量的计算,这会导致高昂的 gas 费用。
零知识证明为解决成本问题提供了一种方案。零知识证明无需验证链上每个验证者的签名,而是可以将验证过程压缩成一个简洁的单一证明。目标链只需验证一个证明,而无需验证数百个签名。
Succinct Labs、Polymer 和 Lagrange 等项目正在构建零知识证明桥。这些桥仍在不断完善,但它们代表了跨链通信最强大的安全模型:信任数学,而非委员会。早期实现表明,随着零知识证明系统效率的提高,验证成本正在下降,一些桥已经在主网上运行,证明时间低于 30 秒。
本文仅供信息分享,非商业用途,版权归原作者所有。如有侵权请联系删除。内容不构成投资建议。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.