作者:0xmiddle, 极客Web3
编辑: Faust ,极客 Web3
导语:在Web3生态中,跨链桥是一个非常重要的部分,它是打破链间孤岛、实现万链互联的关键设施。在过去,人们对跨链技术的探索和实践非常活跃,相关的跨链桥产品已经达到上百个,有的致力于构建一个统一的互操作层,有的则试图打通多链资产流通,愿景不尽相同,在技术方案上也各有取舍。
本文希望探讨的是:跨链桥的未来是怎样的?什么样的跨链协议更有前景?什么样的跨链应用更有可能获得大规模采用?开发者应该采用什么方式来构建跨链应用?下文中,作者将对跨链桥的发展趋势展开探讨,并先抛出三个核心论点:
安全、高性能的新一代跨链桥会成为主流
全链应用会成为新的 dApp 范式
USDC 等资产发行方的官方桥会取代流动性互换桥
正文:跨链技术可以理解为是扩容的延伸,当一条链不足以承载所有交易请求时,那就让多链来承载,用跨链桥将他们连接起来。要理解跨链桥,首先要理清跨链桥要解决什么问题,以此分为不同的层次。
简单来看,跨链桥可以分出 协议层 和 应用层。协议层负责为跨链消息传递提供一个安全、有序的平台,而应用层则基于该平台构建 dApp 以面向用户,满足不同场景下的各类需求。
跨链桥在协议层的演化
协议层的核心是跨链消息传递的安全机制,也就是对跨链消息的验证方式。根据验证方式的不同,以及Vitalik等人的想法,业内曾将跨链桥划分为三种:基于哈希时间锁的原子交换、见证人验证 和 轻客户端验证。后来,Connext 创始人 Arjun Bhuptani 将跨链桥归纳为本地验证、外部验证和原生验证三种范式。
其中,本地验证仅适用于资产跨链,不能支持任意消息跨链,且用户体验并不友好(需要用户操作两次才能完成一笔交易)。一些最早采用此方案的跨链桥已经改弦更张,放弃了该路线。原生验证最安全,但成本太高,一方面是用户付出的 Gas 成本太高,甚至在某些情况下完全不具备经济可行性。另一方面,开发者的 coding 成本太高,为了接入不同的区块链,需要分别开发对应的轻客户端验证程序,工程量极大,采用范围也极其有限。
最后,大多数跨链桥还是采用外部验证方案,用户的Gas成本和开发实现成本都相对较低,且支持任意消息跨链。但外部验证最被诟病的就是安全性,无论是今年暴雷的 Multichian ,还是此前被黑客盗取密钥的 RoninBridge(Axie Infinity官方桥) 和HorizenBridge(Harmony Chain官方桥),都在告诉我们, 单纯的外部验证方案无法成为跨链桥的终局! 跨链桥的安全隐患阻碍了跨链 dAPP 的发展,应用层在设计相应业务时变得十分谨慎,一来要尽可能避免与跨链互操作有关的环节,二来知名应用会倾向于自建跨链桥(AAVE、Maker、Compound 等头部 DeFi 项目都是如此)。可以想象,在一座治安很糟糕的城市,人们会选择尽量不出行,富人出行时则会自带保镖。 但让人欣慰的是,新一代更安全的跨链桥正在快速成长起来,它们当中有 LayerZero、Chainlink CCIP 这样的双安全层桥;有将 ZK 技术和轻客户端结合的ZK桥(代表项目:Polyhedra、MAP Protocol、Way Network);有将经济博弈机制用于保护跨链安全的乐观验证桥(代表项目:Nomad、cBridge );还有将 ZK 和 TEE 技术结合的桥(代表项目:Bool Network)。 【想了解他们的具体机制,可以参考作者此前的文章 《 Multichain 倒下了,拿什么拯救跨链桥?》 】 总之, 新一代跨链桥基础设施在不牺牲性能的基础上,实现了更高的安全性,为应用层在跨链互操作相关设计上提供了坚实保障。跨链交互在应用层的范式变迁
最初,所有 dApp 几乎都部署在以太坊上,因为没的选。但随着应用层生态的繁荣,以太坊不堪重负,这给了其他公链发展的机会,先后出现了各种 ETH Killer,以及侧链、 Layer2。 从 dApp 的角度看,以太坊就像上海这样的超大城市,人口众多但资源紧张、寸土寸金,如果我的业务场景对吞吐量要求较高,但对互操作性要求不高,那就可以部署在一条不太拥挤的侧链上。比如一家印刷厂或种植园就没必要开在上海,而可以在郊区选址。dYdX出走以太坊的故事,想必大家都很熟悉了。 同时,一个 dApp 可以在多链上部署,搞“连锁经营”,服务不同链上的用户,扩大规模和收入。例如,首个吸血鬼攻击的成功案例—— Sushiswap 就丧心病狂的在 28条链上做了部署,我们能想到名字的公链上,基本都有 Sushiswap。 但这种多链的应用生态给用户带来了很差的体验: 为了与不同链上的应用交互,还要理解不同链的区别,在多个链上注册地址,在每条链上都充值 gas 费,最后再把资产在不同链转来转去——天呐,太累了! 更要命的是, 很多 DeFi 协议都涉及到流动性的使用,你部署在多链上就得在多链上引导流动性,这会让流动性分散在不同链上,深度不共享, 用户在交易时,会产生更大的price impact。 对此,有人对以太坊 L2 的发展表示担忧,认为 L2 可能会分解掉以太坊的流动性,使其丧失竞争优势。也有研究者提出了 SLAMM 这样的统一流动性解决方案,但这个方案制造的问题比解决的问题还多,十分蹩脚,这里就不展开叙述了,感兴趣的朋友可以去找相关资料看看。 真正核心的问题是:怎样才能把各个链上的资源和生态都聚合到一起,让用户不必感知“链”的存在? 比如我有 1 个ETH,能否想在哪用就哪用,把自动兑换并支付不同链的Gas 这些环节隐藏掉?我想使用某个应用程序,能否在哪条链都可以用,而不用把资产跨过去?同时,项目方也不用再站队选链,不用在多链上重复部署,而可以部署在最适合的链上,然后不同链上的人都可以来用? 应用层需要一种新的范式,把“链”这一层隐藏掉。 有人模仿“账户抽象”的概念,创造了一个新词汇叫“链抽象”,就是这个意思。 我们来看一个 LSD 项目是怎么做的? For example,Bifrost 自称是 全链 LSD 的开拓者,采用不同于其他 LSD 产品的架构设计。 Bifrost 有一条自己的链 Bifrost Parachain,该链是 Polkadot 的平行链。 Bifrost 的流动性质押模块仅部署在 Bifrost Parachain 上,其 LSD 资产—— vToken 的流动性也全在 Bifrost Parachain 上,但其他链可以通过远程调用的方式使用 Bifrost Parachain 上的流动性质押模块和流动性。 如此一来:- 用户可以在其他链铸造 vToken ;
- 用户可以在其他链赎回 vToken ;
- 用户可以在其他链兑换 vToken ,但背后触及的是 Bifrost 链的流动性;
- 用户可以在其他链为 Bifrost Parachain 上的 v Token / Token 池子提供流动性,并获得 LP Token ;
- 用户可以在其他链销毁 LP Token ,以赎回流动性。