原标题:LayerZero-AnOmnichainInteroperabilityProtocol
原作者:RyanZarick,LayerZeroOfficial
编译:ETH中文站
对于跨链桥接和通信,基本上每一种现有的方案都是这两大类的其中一种:第一种是由一条形成共识的中间链在不同链之间验证和转发消息;第二种是在链上运行一个轻节点。我们来讨论一下。
中间链(MiddleChain)
中间链接收、验证和转发各条链之间的消息。在这种模式下,中间链具有对所有消息的完全签名权,这种设计会使得其成为一个单点故障。在共识被破坏的情况下,所有链上的流动性都会立即被盗。现在的中间链仅与数亿美元的资产绑定,而需要保证数百亿美元资产的安全。随着这些链变得越来越去中心化,当这个巨大的蜜罐被利用时,问题就严重了。
链上轻节点(On-ChainLightNode)
链上轻节点接收并验证对立链的区块头。包含消息的交易证明被转发并在链上对照区块头进行验证。这是在链之间传送消息最安全的方式。不幸的是,这也是最昂贵的。在以太坊上运行一个链上轻节点,每条对立链每天都要花费成千上万的美元。
超轻节点(UltraLightNode)
链上轻节点极其安全,但同时也极其昂贵。中间链不贵,但没那么安全。
接下来介绍的是超轻节点(UltraLightNode,ULN),具有轻节点的安全性和中间链的低成本。超轻节点通过执行与链上轻节点相同的验证来实现;但不是按顺序保留所有区块头,而是由去中心化预言机按需分发区块头。
LayerZero
LayerZero是一个用户应用UserApplication(UA)结构的链上端点,这个端点运行着一个超轻节点(ULN)。LayerZero依靠两方在链上端点之间传输消息:预言机(Oracle)和中继器(Relayer)。当一个UA从A链向B链发送消息时,消息会通过A链上的端点传输。然后端点会通知UA指定的Oracle和Relayer该消息和它的目标链。Oracle会将区块头转发给B链的端点,然后Relayer提交交易证明。该证明在目标链上被验证,消息被转发到目标地址。
安全属性
在拆分Oracle和Relayer之间的责任时,LayerZero利用已建立的预言机(Chainlink和Band)的安全特性,通过开放中继系统增加了一层安全性。虽然这乍一眼看起来只是一个小小的区别,但它的影响是相当深刻的。首先,这意味着这种新网络在最坏的情况下安全性也只是下降到和预言机一样安全。如果你使用Chainlink作为你的预言机,那么系统中的任意作恶行为仍然是以首先能够击败ChainlinkDON为前提的(这可不是一件容易的事)。即便Oracle的共识被破坏,也需要Relayer的积极串通。比如,在最极端的情况下,OracleA的共识被破坏,RelayerA也串通了,所有这些风险只由那些接收来自OracleA和RelayerA的消息的用户应用承担。所有使用RelayerB-Z的用户应用(运行他们自己的Relayer),或者所有使用OracleB-Z的用户应用仍然完全不受影响。在风险模型方面,这与之前描述的中间链系统相比是一个巨大的改变。
用例
就目前的生态来看,跨链消息传递就是桥接的同义词。但是使用LayerZero可以做的事情远不止桥接资产那么简单。LayerZero可以实现跨链状态共享、桥接、借贷、swap、治理等等更多功能。
状态共享
SushiSwap存在于12条不同的链上,每个实例都运行在一个孤立的生态系统中。如果它们想要与SushiSwap在以太坊的主要实例同步状态,他们就必须编写使用Wormhole、Rainbow桥接、PolygonNetwork桥接和Avalanche桥接的代码。最终的结果就是会有11套代码,也就是有11个独立接口和11种不同的安全属性。由于桥接和L1/L2的生态系统正不断变化,这会让系统越来越难以管理。
使用LayerZero的话,SushiSwap将只需要有单个接口和代码库用于所有的跨链对。他们只需要执行「发送」和「接收」功能。「发送」包括为目标链形成一条消息,而「接收」只是解释该消息。
统一流动性的桥接
现在的桥接都争相吸引流动性提供者(LiquidityProviders,LPs),在桥接和它们的独立成对资金池之间分散分布流动性。LP必须选择连接到某条链的单个资金池,而不是拥有一个为所有连接的链提供流动性的资金池。LayerZero这样解决桥接问题:通过在来源链确保最终确定性,在所有链之间统一流动性。这意味着,当用户从A链转移资产到B链时,用户会被保证资产在B链上,然后LP则从所有进入B链的交易中收取手续费,而不用管来源链是什么。
Swaps
可以对现有的AMM进行封装来执行跨链swap(不需要修改任何现有的代码即可将某种资产转换成另一种资产)。用户只需在来源链进行一笔交易,就能够将以太坊上的ETH转成Solana上的SOL。
借贷
现在,如果某个用户在A链上存有资产,但是想在B链上进行流动性挖矿,那么ta必须在A链上抵押借贷->桥接资产(产生手续费)->swap(产生手续费)->在目标链上进行流动性挖矿->swap回原来的资产(产生手续费)->桥接回原来的链(产生手续费)->偿还贷款->提出抵押资产。使用LayerZero,你可以在A链上抵押资产,然后直接在目标链上借款、进行流动性挖矿、偿还贷款、然后A链的抵押资产就解锁了。省去了桥接和swap的四笔手续费。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。