浅析不同跨链项目以及它们的使用场景
Captain Hiro我想在我对个别跨链项目的设计进行深入研究之前,对各种类型跨链项目的架构情况做一个广泛的概述会很有用。
每个人都喜欢Synapse/IBC,大家也都听说过Multichain/Hop,但它们有什么不同,为什么了解这些很重要?
区块链在可通用性、去信任性和可扩展性之间存在着一个互操作性的三难问题。现在经常有这样的说法:去中心化对用户来说并不重要,这么说也没啥错,但当涉及到不同区块链间的通信时,确保恶意方不能轻易窃取用户的资金是至关重要的,特别是随着加密货币的发展,避免类似事情的发生早已成为了开发者关注的焦点。
我之前听过一个很好的观点,在像加密货币这样的新领域,协议和验证者自然而然有一个良好的关系,因为这个领域现在看还很小,但随着时间的推移,随着领域不断的增长,恶意方作恶的机会也会相应增加。
就像我之前提到的,在区块链甚至是rollup间的通信是很容易实现的,因为它都是由底层区块链保证的。
之前一篇文章提到了跨链项目主要有三种类型,我很同意他的观点。
第一种类型的跨链项目,如Synapse,Multichain,Thorchain等,这些都依赖于MPC(多方安全计算),这意味着Synapse有它们自己用于验证区块链之间交易的验证器。当然,所有这类跨链项目之间都有细微的差别,如Thorchain使用本地资产,但它们的架构大致上是相同的。这种模式使得为用户在链间快速搭建桥的架构变得容易。然而,它带着一个很大的信任假设。传统的区块链是去信任的,因为它们有相同的安全模型,而对于这类跨链项目来说,除了两个区块链在彼此之间传递交易外,你还要信任MPC的验证器组,也就是Thorchain/Synapse。当然,有一些方法可以提它们的高安全性,比如Thorchain要求验证者绑定两倍所验证的Rune数量,但它仍然存在着一定的风险。这涉及到了智能合约的风险,正如我们最近看到的Multichain/Wormhole等协议所的安全隐患那样。
相当于第一类跨链项目,Cosmos和IBC在架构搭建上有一个不同的模式。与其说不同的区块链间存在一个中介,不如说是区块链本身验证了来自另一个区块链的交易。与其相信外部验证者的安全模式,不如是去信任的,因为链本身就是验证者。
这类跨链项目的缺点是,它确实需要自定义配置。与IBC一样,它只能与快速达成最终共识的链和为实现这一目标而设置的自定义轻客户端一起工作。考虑到Tendermint、Snowball、PoW、Nightshade等许多种不同的共识模型,你可以想象使用这类跨链项目需要很多额外的工作。
还有第三类,我并没有真正考虑好,但本质上你可以有一个系统,链上的交易是由对手方验证的。因此,它的主要假设是,只要两个独立的链上的验证者不串通在一起,那么该系统就是去信任的,如L2(第二层网络)之间的Hop/Connext。这样做的缺点是很难在此基础上进行跨链智能合约的调用。
在这三个类别之外,还有一些类别的跨链项目正在尝试不同的模式。
比如L0(Layer Zero)试图成为一个桥,而不是成为一个链的基础设施,所以它更多的是即插即用,所以每个人都不必做它们自己的定制架构。L0的前提是你选择你的安全属性,所以你可以选择你想使用的预言机(oracle)/中继器(relayer),这样你就可以作为应用来选择你想创建的安全权衡。
你可以想象这对像IBC这样的项目有多大的帮助,因为尽管它的设计具有去信任的性质,但似乎它最大的障碍是在各种链上创建基于共识模型的自定义轻客户端。
Nomad正试图实现跨链通信,它通过模仿一种优化的设计,这种设计具有低gas费,使用欺诈证明的加密技术,同时也考虑到模式的几个小时延迟的折衷。因此,你并不依赖于外部验证器,而是由一个链外观察者在必要时标记欺诈交易,同时允许通信通过。
现在针对这些项目有一个有趣的争论,即应该应用多少或者它们是否关心模块化的安全功能。但是,你可以想象在像L0这样的模块化架构中,类似于ZKR的volition/validium,不同的应用可能会选择为不同的应用进行不同的安全折衷。比如说,如果你开发了一个想使用简易桥的应用,它不需要传输大量的价值,只是在其他链上调用合约,那么像Synapse这样的MPC会很好用。而如果你是一个大企业,你想投入资源,因为你要在链之间转移大量的价值,那么像IBC这样的架构会吸引你。就像我之前提到的,我想更深入地研究特定的架构,如IBC/Nomad和其他更深入的架构,但我认为这篇文章将有助于概述我对它们的理解。
你可以在下面找到我使用的所有资源的相关信息:
https://docs.connext.network/Integration/SystemOverview/connextvsxyz
https://medium.com/connext/the-interoperability-trilemma-657c2cf69f17?
https://docs.cosmos.network/master/ibc/overview.html#?
https://layerzero.network?
https://docs.nomad.xyz?