ConsenSys:区块链桥安全指南
今天,我们深入研究底层桥的安全性并涵盖以下内容:
1. 当用户使用桥时会发生什么
2. 我们所说的安全性是什么意思
3. 我们会看到哪些类别的桥
4. 桥的安全性比较
5. 可扩展性——你可以搭桥的地方
在本指南中,我们将以Alice作为示例:
Alice在Arbitrum上有0.5ETH,并希望在Polygon PoS上使用这些代币。为此,Alice必须使用桥。对她来说,大多数桥看起来都一样。她将她的MetaMask连接到UI桥。然后她选择了Arbitrum作为源链,PolygonPoS作为目标链,以及她想要桥接的代币。设置好所需金额后,她可以提交一笔交易,等待在Polygon PoS的钱包中收到她的代币。Alice想要她的代币能在一定程度上快速而安全地转移。当然,Alice不想在此转移过程中损失她的代币。
1.用户在桥接代币时应该知道什么
在后台,区块链桥是协议——一组规则及其执行。规则定义了保护和释放用户在桥上持有资产的责任。有些协议比其他协议更安全。
桥将扩展解决方案与以太坊Layer-1联系起来,并连接不同的区块链。桥负责在(Layer-1)区块链上持有资产,而类似的资产则在另一个(和外部)服务端上释放。它规定了谁拥有资金的托管权,以及在解锁资产之前必须满足的条件。简而言之,只要像以太坊这样的Layer-1区块链连接到任何其他系统时,就会涉及到桥。从这个意义上说,桥是任何扩展解决方案的基础。此外,桥的安全性决定了链下系统使用的安全性。想象一下,通过一个高度脆弱的桥连接两个安全系统会是什么样。
在任何情况下,从源区块链[Arbitrum for Alice]的角度来看,桥是一个智能合约,在某些情况下是一个多重签名钱包,它持有用户的资金,并规定了如何提取这些资金的条件。桥的另一边[Polygon PoS for Alice],在目标系统或区块链上,是另一个为用户创建或解锁相同资金金额的智能合约。这样,用户就可以在其他系统上使用这些资金。
区块链桥不能真的在区块链之间移动代币。事实上,区块链桥由两个持有代币的智能合约和一组定义谁可以访问这些代币的规则组成。在不同区块链上的这两个智能合约之间,有一个带有加密签名的信息流。这些信息是目标链上的智能合约创建或发行新代币的指令,从而触发交易接收者的支付。因此,桥必须确保这些信息的有效性。
在任何情况下,桥都需要能中继信息的外部方。这些外部方观察每条链上的智能合约,创建或获取信息并将其转发到其他链上。
桥的技术挑战在于区块链的本质。区块链被设计成一致且可验证。所以事实上,区块链只能知道和信任区块链本身产生的信息。任何外部信息——以及桥接代币的概念——都很难独立验证,因为区块链无法了解外部世界或其他区块链。大多数桥使用高明的手段来确保转发的消息是有效的,如果是这样,Alice可以收到她的代币。
重要的是,如果桥通过铸造将新的和不安全的代币引入目标链,那么这些资产就取决于桥的安全性,而不仅仅是链本身的安全性。这可能会危害链的安全性。
2.我们所说的安全是什么意思?
安全就是没有风险。在我们的用例中,我们将风险理解为桥转发无效信息的风险。这包括不转发有效消息,比如有效的提款请求。用经济术语来说,如果桥没有受到经济攻击,破坏桥所的资金少于破坏其连接的底层区块链所需的资金,那么它就是安全的。
换句话说,从Alice的角度来看,桥的安全性被定义为这个愉快的用例的可能性——在目标链上收到承诺她的代币。这种可能性越大,我们就认为桥越安全。这就和这个用例会不愉快的不可能性一样——在安全的桥中,Alice不太可能发生不好的事情。
我们比较了不同桥的设计,看它们如何防止这种不良后果。下面是Alice尝试桥接她的代币时可能发生的情况:
1. Alice可能会被审查——她的有效信息可能会被审查。 她的交易可能会被拒绝,因为桥运营商将她的账户列入禁止名单。在那种情况下,她无法桥接,在最坏的情况下,她无法撤回她的代币。
2. Alice在目标链上收到的代币可能比约定的要少或根本没有——她的有效信息可能被篡改。因此,在我们的示例中,可以向Alice承诺在Polygon PoS上获得0.495wETH,但她只能得到0.1或根本没有。在这种情况下,桥没有中继有效信息,而是在此过程中更改了信息。
公平地说,当涉及到桥的安全性时,还有许多需要考虑的因素,超出了这篇博文的范围。更多信息,请参见此处。
在构建桥时,需要考虑每一层的风险:
桥连接的区块链和共识层的安全性和最终性。
桥应该能够处理链重组和不同形式的最终性。
智能合约本身就承担着非常具体的风险——我们可以想到的可升级性或黑客可以利用的漏洞。
链下基础设施需要在最先进的网络安全设计中进行维护和设计。
但如前所述,这些考虑超出了本博文中的协议设计分析。
因此,现在我们可以分解桥的安全性问题,即不同的桥设计如何防止Alice的这两种不良后果。因为现在有超过100个桥,我们可以看一下桥的类别,这些类别因其协议设计而不同。
3.我们能看到了哪些类别的桥?
1、Rollup可以看作是高度安全的桥。信息和结果状态的有效性可以在Layer-1上证明。他们在Layer-1执行一个轻客户端,检查来自Layer-2的State Root的有效性。这样一来,Rollup在所有桥中的信任假设是最少的。只有在有数学或加密经济证明正确的情况下,桥才会释放资金。这个证明发生在Layer-1上,这样一来,这些桥就继承了Layer-1区块链的安全性。
示例:StarkGate、Arbitrum 桥、Optimism桥
2、然后,我们有了乐观桥(Optimistic bridges)。这些桥乐观地假设一条中继消息或一捆中继消息是正确的,直到证明有消息是错的。然而,目标链无法检查信息的实际有效性,但它们相信至少有一个诚实的观察者——他可以检查有效性并证明源链上的欺诈行为。有人发送一条消息,观察者可以检查其有效性并在有欺诈行为时介入。因为总是有可能会有一个诚实的观察者,他在暗中观察桥,以防止任何欺诈行为,所以攻击者永远无法确保成功,从而使任何攻击都是不划算的。然而,乐观桥的安全性确实需要依赖一组无需许可的观察者。如果这组观察者被许可,理论上,所有观察者都可能被贿赂而串通起来。
例子:Nomad/Connext,Across,NEAR 彩虹桥
接下来的两个类别信任一组验证器——如果验证器声明其有效性,则桥必须信任他们。这组验证器可以与源链的所有验证器一样大,也可以与项目团队能够自行组装的任何东西一样小。
3、下一个类别包括执行 “共识”轻客户端的桥。共识检查轻客户端不如Rollup安全,因为它们无法验证区块是否正确——它们相信源区块链的矿工/验证者已就某种状态达成一致。基本上,它们只检查一个区块是否正确签名,和在PoW的机制下检查难度。这意味着轻客户端桥假定源链的一组验证器没有串通。如果矿工/验证者受到威胁,桥可以接受无效区块。但是,如果桥接受了这个区块,则可以使用Merkle证明来查看源链上发生了一些事情。
示例:Cosmos IBC
4、最后,我们有一些桥,它们依赖于一组外部验证器来证明信息的有效性。它可能是多重签名、具有PoS共识的动态验证器集、MPC(模型预测控制)机制、英特尔SGX安全盒、预言机等等。它最终都是同一类别。这些系统的安全性依赖于经济激励。他们中的大多数都要求验证者质押一定数量的代币,如果他们有任何欺诈行为,这些代币就会被削减。按照设计,一旦验证者可以从桥中窃取的金额大于质押金额,就无法保证他们会诚实行事。有些桥只使用两方——中继者和预言机——负责中继和验证消息。在这种情况下,如果系统是无需许可的,则无法保证这两方不会串通一气。
例子:Multichain、Celer cBridgev2、Layer0、Axelar、Wormhole、Polygon PoS
4.桥如何确保安全(相对而言):
我们现在可以比较不同桥的设计将如何防止对Alice造成不良后果。
5.可扩展性:你的桥可以连接哪里?
那么为什么Alice不只使用Rollup来桥接她的代币呢?
虽然原生桥和轻客户端桥对于它们所构建的特定领域来说是最安全的(例如:Arbitrum桥是Arbitrum和以太坊之间最安全的网桥,IBC是Cosmos最安全的通信协议),但它们在设计上有一个很大的限制:它们只对它们所定制的特定连接起作用。
IBC只适用于Cosmos生态系统、Arbitrum只适用于以太坊、XCM只适用于Polkadot等。
相反,验证者桥和乐观桥具有连接任何智能合约链的灵活性。
如果Alice想在Arbitrum和Polygon之间搭桥,她将需要通过这两个系统中的任何一个。
结语
希望这可以帮助你理解为什么你的加密货币需要一个安全途径。
提醒:
区块链桥在一侧锁定代币,在另一侧释放代币
安全问题始终是如何以安全的方式说服对方,将正确的代币数量释放给正确的人?
Rollup可以验证每笔交易
乐观桥至少可以证明源链上的欺诈行为
轻客户端桥和验证器依赖于更大或更小的可信任的验证器集。
在进一步了解桥的安全性后,现在,你的Web3旅行由你做主!
Scan QR code with WeChat