本文将介绍跨链桥是什么并将跨链桥进行分类与比较,搭配一些著名跨链桥攻击事件进行分析。
Photoby?raffaelebrivio?on?Unsplash
什么是跨链桥
跨链桥是一个在不同链之间负责传递「讯息」的桥,至于是什么样的讯息,接下来会介绍。跨链桥的例子包含Multichain、Celer、LayerZero、Nomad、Hop等等。
链是不知道彼此的存在的
大家熟悉的跨链桥使用场景绝大多数都是将资产例如ETH、BTC进行跨链。但实际上「资产」是没办法跨链的,这是因为每一条链都是各自独立的,它们不会知道彼此的存在、彼此的状态。
至于Solana上的ETH或是ETH上的BTC是怎么来的?那些都是跨链桥铸造出来的,只要这些跨链桥是安全的,这些铸造出来的币就是安全的。
注:其他像是USDT或USDC,有些是Tether和Circle到不同链上去铸造出来的,剩下则一样是由跨链桥所铸造。
传递什么「讯息」?
表面虽然是资产在跨链,但背后实际上就只是「讯息」在跨链而已。这些讯息像是「我在A链上把X资产锁住/烧毁了」或「我在B链上把Y资产解锁/铸造出来了」,讯息的接收方就按照讯息内容来执行相对应的处理。
例如当Alice想透过一个跨链桥把USDT从A链「转移」到B链,实际上背后发生的是:
跨链桥在A链的合约把USDT从Alice身上转过来,并送出一个讯息:「Alice在我这锁住了10USDT」讯息被带至跨链桥在B链的合约,合约从自己身上转10USDT给Alice在B链上的地址
模块化区块链Astria推出开发集群,可通过简单命令部署Rollup:8月17日消息,模块化区块链Astria宣布推出Astria开发集群(development cluster),旨在使部署Rollup像部署智能合约一样简单。开发集群由一个本地Astria共享排序器网络、一个本地Celestia网络、一个配备faucet和区块浏览器的EVM rollup,以及将其连接在一起的粘合服务组成,可通过一个简单的命令将其他rollups部署到这个开发集群中。
此前消息,模块化区块链Astria于今天5月完成550万美元种子轮融资,Maven 11领投。[2023/8/17 18:05:46]
资产跨链实际上背后是单纯的讯息传递,中间省略许多细节
「讯息」的传递是跨链桥的核心,现在最常见的资产跨链只是其中一种用途而已,像Aave的V3版本就是一个运行在多个网路之上的抵押借贷平台。
限制与挑战
但跨链桥并没有像上面那个例子这么简单。跨链桥的一个最根本的限制来自于「链不知道彼此存在」这个事实,因此它需要「相信某个人来传递讯息」。所以跨链桥的主要挑战就在于「要怎么验证一个送来的讯息的有效性」。
注:这里的「相信」讯息传递者并非指完全相信,后面的段落中会介绍到有些桥是不需要相信讯息传递者的。传递者可能是好人也可能是坏人,但对传递者的特质会有一些其他的假设。
安全性
基本上一个跨链桥的安全性取决于:
需要放多少信任在讯息传递者身上?对讯息传递者的行为有没有一些假设?是否假设讯息传递者只能诚实地执行他的工作?如何验证讯息的有效性?接下来将介绍不同跨链桥的分类。
跨链桥的分类
跨链桥基本上可以分成四种:
TrustedRelayersOptimisticVerificationLightclient+TrustlessrelayersHTLC
1.TrustedRelayers
模块化区块链项目Avail推出数据证明桥:金色财经报道,模块化区块链项目Avail已推出“数据证明桥”(data attestation bridge),这是旨在降低以太坊Layer2与Layer3链成本的新产品,有助于保护链下数据安全。“数据证明桥”连接到以太坊,可以被使用以太坊作为基础层的ZK Rollup与Optimistic Rollup。该数据证明桥通过Avail的链下数据可用性层在L2 Rollup数据和L1之间建立连接。[2023/7/7 22:24:05]
顾名思义,TrustedRelayers就是信任讯息传递者。基本上相信讯息传递者后,也不需要再验证讯息有效性了,只要是信任的讯息传递者带来的讯息都相信是有效的。而自然地当有了信任及中心化的假设,架构就会简单许多,而且成本会很低、使用体验会很好。
TrustedRelayers的技术没什么特别之处或亮点,就看这些讯息传递者的组成,可以是单个或多个;每一个讯息传递者背后也可以是多签或是MPC。
这里必须要提到的一点是TrustedRelayers的安全假设是HonestMajority,也就是过半数的讯息传递者必须是诚实的好人。如果超过一半的讯息传递者是坏人或被骇客入侵,则这个跨链桥的就不再安全。
另外要提到的是LayerZero也是属于TrustedRelayers,即便在他们的定义里讯息传递者的角色被分成「Oracle」及「Relayer」,但还是不改变整个桥的安全性仰赖这两个角色不能都是坏人。不过LayerZero相较于其他TrustedRelayers桥的优点是:每个dApp能自己客制化自己需要的安全性。如果你很需要安全性,你可以把「Oracle」及「Relayer」的数量设定的很高。另一个优点是:每个dApp的安全性彼此是独立、不互相影响的。
例子:Multichain、Celer、LayerZero、Wormhole、RoninBridge、XY
2.OptimisticVerification
Celestia 模块化框架产品 Rollkit 推出比特币 Rollup:3月9日消息,Celestia 旗下模块化框架产品 Rollkit 宣布推出比特币主权 Rollup,使用比特币作为数据可用性层。
Rollkit 是由 Celestia 开发的新框架,于 2 月 21 日推出,旨在模块化区块链的不同组件,使开发人员能够部署 Rollup,自定义和选择数据可用性层作为区块链数据的来源,以及处理交易的执行层。[2023/3/9 12:51:01]
和OptimisticRollup的Optimistic一样,都是先乐观地接受传递过来的讯息,但会验证讯息的有效性,如果发现是无效的则发起挑战。优点是绝大多数的时间系统都会是正常运作,讯息都是有效所以不需发起挑战,所以成本非常低,因为不需要在链上去验证讯息。缺点是必须要有一段挑战期,让负责验证的人有足够多时间验证并发起挑战。接下来会以Nomad为例,介绍OptimisticVerification的运作。
Nomad里有三个角色:Updater、Relayer及Watcher。
Updater抵押担保品,并负责为讯息签名做担保,例如「我以我的担保品发誓Alice申请要从链A送XXX讯息到链B」Relayer单纯负责把讯息及Updater的签名送到目标链上Watcher负责监督Updater,并在Updater作恶时反应正常情况
Alice触发链A合约,要求送讯息到链B
Updater对Alice的讯息签名
Celestia宣布旗下模块化rollup框架产品Rollkit已独立运营:金色财经报道,据Celestia官方博客介绍,Celestia旗下模块化rollup框架产品Rollkit(曾称作Rollmint)已独立运营,成为由社区主导的公共项目。据介绍,Rollkit提供了一个模块化节点,用于在数据可用性层之上运行rollup。同时它公开了一个兼容ABCI的客户端接口,可以用作任何兼容ABCI的区块链应用程序的Tendermint的替代品。
通过使用Rollkit的模块化框架,开发者可以定制rollup并插入任意数据可用性和执行层。目前,在Celestia的Mocha测试网上可使用Rollkit构建。[2023/2/22 12:21:14]
Relayer负责将讯息及Updater签名送到链B
等到挑战期结束后,讯息生效,完成讯息跨链。
Updater作恶
Updater对一个凭空捏造的讯息签名,并请Relayer伙伴送到链B
LightClient合约验证Relayer带来的链A的区块资讯及共识
注:虽然Relayer只是跑腿的,但还是需要假设有诚实的Relayer在线,确保正确的区块资讯会被带过来,避免造假的分叉链来破坏安全性。
验证完区块标头档后,剩下就是去验证(1)交易存在于某个区块,或是(2)某个event在某个区块被emit,或是(3)某个地址的storage是某个值。举例:
(1)像是验证BTC上Alice转帐给某个地址,或是在OP_RETURN附上某个讯息
(2)像是验证ETH上的Bridge合约确实emit了CrossChainMessageRequestedevent
模块化区块链网络 Dymension 已上线测试网 Dymension Hub 35-C:2月16日消息,使用 Cosmos 和 Celestia 技术的模块化区块链网络 Dymension 已上线测试网 Dymension Hub 35-C,近 100 个创世验证节点开始运行。此外,Dymension 的核心团队也已部署支持 IBC 的 rollup,使 35-C 成为模块化测试网,RollApp X 会将数据发布至 Celestia Mocha 测试网,并将状态更新发布到 Dymension Hub 35-C 测试网。
此前消息,Dymension 于 2 月 9 日完成 670 万美元种子轮融资,Big Brain Holdings 和 Stratos 领投。[2023/2/16 12:10:35]
(3)像是验证Optimism上的Bridge合约的storage确实存在一笔资料是记录了Alice申请的讯息跨链的请求
接着Alice向LightClient合约利用(1)(2)(3)的方法证明自己发起过跨链请求
验证成功后就能相信来源链真的存在一笔讯息跨链的请求。
例子:CosmosIBC、NearRainbowBridge
注:CosmosIBC是透过运行轻节点,而不是用合约的方式,在不同Cosmos链之间传递讯息。NearRainbowBridge只能在Ethereum、Near、Aurora三条链之间传递。
除了建造复杂与验证成本高之外,这种跨链桥还有一个缺点是:每条链的Finality时间不一样,例如BTC来的资料可能要等六个区块、ETH来的资料可能要等12.8分钟等等,使用体验会差很多。
4.HTLC
HTLC代表的是HashedTimeLockContract。
注:HTLC不一定要用Hash的方式来做commitment,可以用签章来代替
HTLC优点是非常安全,但缺点是使用体验比其他跨链桥差很多,例如:
需要花更多笔交易才能完成跨链使用者必须待在线上直到跨链完成FreeOptionProblem,发起HTLC的人是被动方,对手方可以选择配合或不配合。不过如果对手方是一个有名声要顾的商家就不需要那么担心这个问题不同Router的服务品质会有差异,导致使用体验不一致例子:Connext、CelerV1
以上是四种跨链桥的介绍,接下来会分析每一种跨链桥发生过的攻击事件。
攻击事件分析
1.TrustedRelayers跨链桥的攻击事件
Multichain,2021.07,~8Mloss
在他们的MPC套件库中重用了该是随机产生的随机值,导致私钥可以被还原。相关连结
PolyNetwork,2021.08,~600Mloss
智能合约漏洞导致攻击者能获得存取协议资产的权限。相关?连结
Multichain,2022.01,~3Mloss
智能合约漏洞导致攻击者可以任意转走受害者的wrappedtoken。相关?连结
Qubit,2022.01,~80Mloss
智能合约漏洞以及合约升级过程的疏忽,导致攻击者可以直接把协议里的资产全部提走。相关连结
Wormhole,2022.02,~300Mloss
智能合约漏洞让攻击者可以跳过权限检查,无限铸造出新的代币。相关连结
RoninBridge,2022.03,~600Mloss
多签成员的节点被攻陷。相关连结
HorizonBridge,2022.06,~100Mloss
多签成员的私钥被盗。相关连结
2.OptimisticVerification跨链桥的攻击事件
Nomad,2022.08,~190Mloss
智能合约漏洞及合约升级过程的疏忽,导致任何人都可以伪造跨链讯息来转走资产。相关连结
3.LightClient+TrustlessRelayers跨链桥的攻击事件
NearRainbowBridge,2022.05&2022.08,nofundlost
两次尝试伪造跨链讯息的攻击都被watchdog服务挡下来。相关连结
4.HTLC则没有过攻击事件
其实可以看出来攻击事件都是发生在TrustedRelayers节点安全管理问题及合约出现问题,没有针对OptimisticVerification、LightClient或HTLC跨链桥本身协议成功的攻击事件。
跨链桥的比较
接着是不同种跨链桥技术在「成本」、「使用者体验」及「安全性」三个方面的比较。以下会直接以图片呈现
1.成本
TrustedRelayers:体验最好,Relayer动作多快跨链就有多快,使用者也不需要做什么事OptimisticVerification:需要等待挑战期,以及有可能遇到Updater下线或Watcher恶搞LightClient:需要等待Finality、不同链会有不一样的体验,且支援的链少HTLC:需要多笔交易才能完成、使用者需要保持在线、Router们的服务品质不一致3.安全性
TrustedRelayers:安全性最低、需要大多数多签成员是诚实的假设,或是少部分成员被DoS打下线也会造成服务停摆OptimisticVerification:只需要假设至少有一个Watcher是诚实的,但Updater被DoS打下线还是会造成服务停摆LightClient:非常安全,必须要能攻击那些链的共识才有可能造成伤害HTLC:最安全,必须要攻破hashfunction才有可能造成伤害RollupBridge和跨链桥的不同
RollupBridge指的是Rollup和其L1之间的原生桥,因为L1和Rollup之间可以直接传递讯息,且讯息的有效性是被零知识证明或诈欺证明所保障的,所以比L1与L1之间的跨链桥还要安全许多。
不过Rollup原生桥会有一些延迟:ZKRollup要等待零知识证明产生并上链、OptimisticRollup要等待挑战期结束。
注:延迟主要是发生在Rollup->L1的讯息,L1->Rollup的讯息都非常快速
如果不想等待则可以使用第三方提供的服务:你用原生桥的方式转钱给第三方,第三方在L1先把钱垫付给你,他再慢慢等钱从原生桥过来。更多关于RollupBridge的介绍可以参考imToken的系列文:
RollupBridge介绍:MakerDAIBridge
使用跨链与提供流动性的安全性需求是不同的
如果你只是单纯使用跨链服务,例如把钱从链A转到链B,则你不需要担心太多,即便桥被骇,只要桥还有残存流动性或后来有新注入的流动性,你的跨链请求就一定会被完成。
但如果你是想要提供流动性给跨链桥来赚跨链手续费的话,就要谨慎选择跨链桥了。如果被盗的金额太大,项目方赔不出来,那你就一定会赔钱。可以选择有额外安全机制的跨链桥,例如Celer和XY都有对跨链转帐订一个上限。
其实就和使用AMM一样,提供流动性一定会承受比单纯swap更大的风险。
最近的新技术或发展
ZKLightClientBridge
前面有提到LightClient跨链桥虽然安全,但成本很高,好消息是零知识证明可以有效降低这个成本。但要注意的是零知识证明只能提高效率,并不能提高安全性。而且零知识证明更为复杂,要等到ZKLightClient支援足够多的链还要很长一段时间。
有两个新项目在实作ZKLightClient
SuccinctLabszkBridge跨链的世界还是个尚未开发的MEV宝地
跨链交易比单链转帐创造出更多的MEV机会如果跨链交易再搭配去DEX做swap的话那MEV机会又更多想了解更多资讯可以参考Nomad创办人在ETHAmsterdam的MEVDay的演讲及投影片。他推断跨链DEX做不起来,因为价格会因为更多的MEV机会影响而导致没有竞争力,要用跨链DEX还不如单纯先把资产跨链再自己去DEXswap。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。