引言
区块链之间无法相互通信。以太坊无法读取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使用了此模型的变体。其优势在于速度:由于代币已存在于目标链上,因此没有铸造延迟。用户立即收到真实的原生代币。
代价是资本效率。流动性必须预先部署在每条支持的链上,并且该资本仅在桥接被积极使用时才能获得回报。在低交易量期间,流动性提供者赚取的收益很少,而他们的资本则闲置。所有支持链上的总资本需求可能达到数亿美元,这造成了进入壁垒,并且如果单一流动性提供者占主导地位,则存在集中风险。
Ronin桥攻击:密钥泄露导致6.24亿美元损失
2022年3月23日,攻击者从Ronin桥中盗取了6.24亿美元的ETH和USDC,该桥连接以太坊与游戏Axie Infinity使用的Ronin侧链。
Ronin的桥使用了多重签名验证方案。九个验证器节点验证桥交易,其中任意五个即可授权提款。安全假设是,攻破九个独立验证器中的五个将是不切实际的。
这个假设是错误的。Axie Infinity背后的公司Sky Mavis控制了九个验证器节点中的四个。第五个验证器曾授予Sky Mavis在高交易量期间代表其签名的临时权限,但从未撤销该权限。
攻击者(后来被FBI认定为朝鲜的Lazarus集团)入侵了Sky Mavis的系统,并获得了所有五个验证器的私钥。凭借五分之九的签名,他们授权了两笔欺诈性提款:173,600 ETH和2550万USDC。
该漏洞在六天后才被发现。直到有用户试图提取5,000 ETH并发现桥中没有足够的资金时,才暴露出来。
教训。多重签名安全性的强度取决于签名者的独立性。当单个组织控制大多数密钥时,多重签名就成了一个带有额外步骤的单点故障。
Wormhole攻击:验证绕过导致3.26亿美元损失
2022年2月2日,一名攻击者利用Wormhole桥在Solana上铸造了120,000 wETH(包装ETH),而无需在以太坊上存入任何ETH。该漏洞利用价值约3.26亿美元。
Wormhole的桥依赖一组19个守护者来验证跨链消息。守护者会观察以太坊上的存款,生成签名的证明(称为VAA,已验证操作批准),而Solana侧的合约会在铸造前验证签名。
漏洞出在Solana侧的签名验证中。Wormhole的Solana合约使用了一个已弃用的系统指令(verify_signatures),该指令未能正确验证传递给它的账户。攻击者构造了一个伪造的守护者集合,提交了一个带有该伪造集合签名的伪造VAA,合约将其视为有效。
实际上,攻击者告诉Solana合约“这些守护者批准了这次铸造”,而合约没有检查守护者是否真实。
支持Wormhole的Jump Crypto从其自有储备中替换了被盗的120,000 ETH。全额恢复在24小时内完成,这一前所未有的响应防止了持有wETH的Solana DeFi协议遭受连锁损失。
教训。桥验证代码是高价值攻击面。签名验证方式中的单个逻辑错误可能导致无限未经授权的铸造。
Nomad 黑客事件:一次错误更新导致 1.9 亿美元被盗
2022 年 8 月 1 日,Nomad 跨链桥被抽走了约 1.9 亿美元。与 Ronin 和 Wormhole 不同,Nomad 并非遭到某个复杂组织的攻击。在初始漏洞公开后,它被数百个模仿者逐个抽干。
Nomad 采用了乐观验证模型。跨链消息被提交后,如果在 30 分钟内无人质疑,则被视为有效。一次常规的合约升级引入了一个 bug:合约被初始化时,信任根被设置为 0x00,即 bytes32 的零值。
在 Nomad 的验证逻辑中,每条消息都会与信任根进行比对。由于 0x00 是 Solidity 中未初始化存储的默认值,因此每条消息都自动通过了验证。任何用户都可以提交任意消息,合约都会将其视为已证明。
当第一个攻击者演示了任意消息都能被接受后,其他人复制了该交易,更改了收款地址,然后重放。该跨链桥被一群机会主义攻击者抽干,其中包括白帽黑客,他们后来归还了约 3600 万美元的追回资金。
教训。跨链桥合约中的初始化 bug 可能是灾难性的。一个配置错误的参数就将 Nomad 的安全模型从“带欺诈证明的乐观验证”变成了“完全没有验证”。
Harmony Horizon 黑客事件:2/5 多签导致 1 亿美元被盗
2022 年 6 月,Harmony Horizon 跨链桥损失了 1 亿美元,原因是攻击者入侵了该跨链桥多签中五分之二验证者的私钥。Harmony 的跨链桥仅需五名签名者中的两人批准交易,对于一个持有 1 亿美元的跨链桥来说,这个门槛异常低。
这次攻击强化了 Ronin 事件的教训:多签跨链桥的安全性取决于其最薄弱的签名者集合。当门槛相对于签名者数量较低时,单一基础设施的入侵就足以造成破坏。在攻击发生之前,安全研究人员曾公开批评 Harmony 的 2/5 门槛。
教训。门槛的选择与验证者数量同样重要。5/9 多签与 2/5 多签提供的安全性截然不同,尽管两者使用相同的底层机制。
累计损失与攻击模式
跨链桥损失的规模在智能合约安全领域是前所未有的。跨链桥漏洞占过去十年总计 170 亿美元加密货币黑客攻击中的约 30 亿美元,使跨链桥成为智能合约中被攻击最多的类别。
攻击模式可分为三类:
密钥泄露。攻击者获取足够的验证者或签名者密钥,以伪造跨链消息。Ronin 和 Harmony 属于此类。漏洞不在于代码,而在于签名者基础设施的操作安全性。
验证绕过。攻击者在验证逻辑中发现 bug,使得伪造消息能够通过。Wormhole 属于此类。漏洞是跨链桥合约最关键功能中的代码级错误。
初始化或升级错误。攻击者利用部署或升级过程中引入的错误配置。Nomad 属于此类。漏洞是程序性的:团队在常规操作中犯了错误。
每种模式需要不同的防御措施。密钥泄露可通过增加签名者多样性并使用硬件安全模块来缓解。验证绕过可通过审计和形式化验证来缓解。初始化错误可通过升级流程来缓解,包括在分叉网络上进行强制测试运行。
第四种新兴模式值得一提:治理攻击。攻击者积累足够的治理代币以控制跨链桥的升级机制,从而修改跨链桥合约以抽走资金。这种攻击比其他攻击更慢、更明显,但它针对的是治理集中或升级时间锁过短的跨链桥。跨链桥团队越来越多地在合约升级上使用多日时间锁(48 至 72 小时),以便用户在恶意变更生效前有时间提取资金。
基于意图的传统桥接替代方案
一种较新的方法通过使用基于意图的跨链转账完全绕开了桥接合约。Across Protocol 和 UniswapX 的跨链模式让用户表达桥接意图:“我在以太坊上有 1,000 USDC,想要在 Arbitrum 上有 1,000 USDC。”求解器(称为中继器)立即从自己在目标链上的库存中发送代币,然后稍后申请报销。
这种模式减少了信任面。用户永远不会将代币存入持有池化资金的桥接合约中。求解器承担报销风险,结算合约确保用户收到承诺的输出。没有大量锁定资产可供攻击者攻击。
权衡是依赖求解器:如果没有求解器愿意以可接受的价格满足意图,转账就不会执行。对于高流量路线(以太坊到 Arbitrum,以太坊到 Base),求解器竞争激烈。对于低流量路线,求解器可能不活跃。
轻客户端桥接和零知识验证
上述漏洞有一个共同弱点:它们依赖外部验证者或多重签名来证明另一条链上发生了某事。如果这些证明者被攻破,桥接就会失败。
轻客户端桥接采取了不同的方法。目标链不是信任验证者集合,而是运行一个轻客户端,直接验证源链的共识。
例如,一个到以太坊的轻客户端桥接会跟踪以太坊的验证者集合,并在链上验证区块头和状态证明。当用户声称在以太坊上存入代币时,桥接合约会根据已经验证的以太坊区块头验证 Merkle 证明。
这种方法最小化信任:桥接信任源链的共识,而不是外部委员会。但成本高昂。在另一条链上验证以太坊的共识需要大量计算,这转化为高 gas 成本。
零知识证明为成本问题提供了解决方案。ZK 证明不是链上验证每个验证者签名,而是将验证压缩成一个简洁的证明。目标链验证一个证明,而不是数百个签名。
像 Succinct Labs、Polymer 和 Lagrange 这样的项目正在构建 ZK 验证的桥接。这些仍在成熟中,但它们代表了跨链通信的最强安全模型:信任数学,而不是委员会。早期实现显示,随着 ZK 证明系统变得更高效,验证成本在下降,一些桥接已经在主网上运行,证明时间不到 30 秒。
本文不涵盖的内容
本指南解释了桥接机制和最大的漏洞。它不涵盖:
- 特定代币的桥接策略或针对给定资产使用哪个桥接
- 桥接聚合器的详细比较(Li.Fi、Socket、Bungee)
- 桥接池流动性提供的经济学
- 跨链消息协议超出其桥接功能的部分(LayerZero、Axelar、Chainlink CCIP 作为通用消息层)
使用桥接前的实用检查
检查验证机制。多重签名桥接是最弱的模型。轻客户端和 ZK 验证的桥接是最强的。乐观桥接介于两者之间。知道你在信任什么。
查看验证者或守护者集合。对于多重签名桥接,检查有多少签名者,谁操作它们,以及它们是否真正独立。如果大多数签名者属于同一组织或地理管辖区,多重签名提供的安全性有限。
审查审计历史。桥接合约是高价值目标。寻找来自信誉良好的公司的多次独立审计。没有经过审计或只经过一次审计的桥接需要格外谨慎。注意审计范围:代币合约的审计不涵盖验证逻辑。
考虑总锁定价值与安全预算。持有 5 亿美元且采用五分之九多重签名的桥接与持有 500 万美元的桥接呈现的风险状况截然不同。攻击者瞄准潜在回报值得付出努力的桥接。理性的攻击者会计算攻破足够密钥的成本是否低于可以提取的价值。
先小额测试。在桥接大额价值之前,先发送一笔小额测试交易。验证接收地址、代币和金额是否正确。桥接交易通常是不可逆的。
对于rollup,优先使用原生桥。 对于以太坊L2 rollup(Arbitrum、Optimism、Base),规范桥直接从以太坊的共识中继承安全性。第三方桥可能更快,但引入了额外的信任假设。对于安全性比速度更重要的大额转账,请使用规范桥。
什么是跨链桥?
跨链桥是一种在两个无法原生通信的区块链之间转移资产或数据的系统。该桥在一条链上锁定、销毁或汇集代币,并在另一条链上发行相应的代币,使用验证机制确保转账的合法性。
为什么桥经常被黑客攻击?
桥是高价值目标,因为它们持有大量锁定的资产池。它们还在两种不同安全模型之间的边界引入了复杂的信任假设。验证机制中的漏洞(密钥泄露、签名检查错误、初始化错误)可能允许攻击者在单笔交易中耗尽整个池。
锁定-铸造和销毁-铸造有什么区别?
锁定-铸造在源链上持有原始代币,并在目标链上铸造合成(包装)版本。销毁-铸造销毁原始代币,并在目标链上铸造新的原生代币。销毁-铸造产生原生代币而不是合成代币,但要求代币发行方控制两条链上的铸造。
包装代币安全吗?
包装代币的安全性取决于发行它们的桥。如果桥被利用并且支持资产被耗尽,包装代币将失去支持并失去其锚定。持有包装代币的用户承担桥的安全风险,而不仅仅是基础资产的风险。
跨链需要多长时间?
这因机制而异。流动性池桥和基于意图的桥(Across)可以在几秒钟内完成。具有多重签名验证的锁定-铸造桥通常需要10到30分钟。具有欺诈证明窗口的乐观桥从乐观rollup到以太坊的提款可能需要7天,尽管快速桥可以提前提供流动性以减少此时间。
什么是轻客户端桥?
轻客户端桥直接在目标链上验证源链的共识,而不是依赖外部验证器集。它检查区块头和状态证明,信任源链自身的安全性。这比多重签名或乐观验证更信任最小化,但运行成本更高。
使用桥会亏钱吗?
是的。如果您在存入后但在提取前桥被利用,您的锁定代币可能会被盗。如果您持有包装代币并且桥被黑客攻击,您的包装代币可能会变得一文不值。此外,不正确的目标地址或不支持的代币类型可能导致永久损失。
我应该使用哪个桥?
没有哪个桥适合所有情况。对于USDC,Circle的CCTP是最安全的选择,因为它使用销毁-铸造且没有包装代币。对于一般的ERC-20转账,比较可用桥的验证机制。优先选择具有轻客户端或ZK验证、多个独立审计以及安全运营记录的桥。像Li.Fi这样的桥聚合器可以帮助比较路线。
*免责声明:本文仅供参考,不构成财务、投资或法律建议。加密货币涉及重大风险,您应在做出任何决定前进行自己的研究。信息截至2026年8月准确。*














