Layer Zero(零层协议):去信任的全链互操作性协议

摘要

区块链的广泛使用为开发人员提供了各种平台,可以在这些平台上根据应用程序的功能和对吞吐量的需求,安全性及成本的要求来运行他们的智能合约。然而,这种自由的后果是严重的分裂。每个链都是孤立的,迫使用户孤立他们的流动性,并限制了在围墙生态系统之间移动流动性和状态的选择。本文介绍了第一个去信任的全链互操作性协议LayerZero,它提供了一个功能强大的基础层的通信原语,可以在其上构建一组不同的跨链应用程序。使用这个新的原语,开发人员可以实现无缝的跨链应用程序,如跨链DEX或多链收益聚合器,而不必依赖受信任的托管人或中转交易。简而言之,LayerZero是第一个在所有链上实现直接交易的去信任系统。允许交易在链之间自由流动,为用户提供了整合分散的流动性的机会,同时也充分利用了单独链上的应用程序。通过Layer Zero,我们提供未来全链生态系统的基础网络结构。

1.引言

区块链概念的核心三大支柱是去中心化、透明度和不可变性。没有单一的实体控制区块链,区块链上的行动是可核查和不可逆转的。这些支柱创造了一个基础,一个实体可以在不信任任何其他实体的情况下采取行动。这种信任担保就是为什么加密货币比法定货币更具吸引力的原因之一。

图1:LayerZero允许跨链交易

如果所有的用户和所有的应用程序在一个统一的区块链中共存,那么本文将无意义。(图1:LayerZero允许跨链交易)然而,区块链的实用性已经导致了多样化应用的激增,且具有独特的复杂性和需求。对多种功能的需求抛弃了专业链的增长。这些链条中的每一个都在其自身的生态系统中促进了应用的巨大增长,但是这些生态系统之间的隔离已经成为采用的一个关键限制。用户和开发者被迫在不同的链条之间分配时间、资源和流动性。纯粹数量的一层区块链(在编写本文[1]时多达109个)的一个自然结果是,需要扩展上述三个支柱,以同时包含跨多个链的交互。链之间需求交互的一个例子是代币的转移,我们将在本节稍后讨论。

在区块链术语中,工作单位是一个交易,不可变且不可撤销。交易,整理成区块,构成块链系统的安全基础。然而,交易始终是一个单链概念;如下所述,跨链交互传统上需要在正常区块链密码系统之外的第三方机制。相比之下,本文描述了第一个使本地跨链交易成为可能的消息协议:LayerZero。

为了说明LayerZero提供的强大的通信原语,我们来看看代币从一个链转移到另一个链的例子。目前,要在两个链的代币之间进行转换,用户必须使用要么采用集中式交易所,要么采用跨链去中心化交易所(DEX)(也称为跨链桥),两者都需要妥协。在中心化交易的情况下,例如:Binance.com[3],用户必须信任跟踪存款和资金提取的交易所。这种信任关系与区块链共识的根本去信任背道而驰,缺乏链上自动化系统的安全性。使用DEX,例如AnySwap[2]或THOR-Chain[23],通过在链上传输来缓解信任问题,但现有的DEX实现涉及将用户代币转换为协议特定代币,该代币通过其中间共识层实现交易共识。这个中间共识层,虽然通常以安全的方式实现,但确实需要用户信任一个侧链来促进代币传输。正如我们在本文中所展示的,这种额外的开销是不必要的。尽管用户需求量很大,但没有一种解决方案既有效率又直接,同时仍然保留了我们使用区块链的最核心原因:去信任。退一步说,LayerZero的直接跨链交易为开发者提供了构建这种交易的工具。

需要注意的是,LayerZero和上面描述的交换变更操作在实现堆栈的两个不同层次上。LayerZero是一个通信原语,它支持不同的全链应用程序,而交换是应用程序的一个例子,它将从在LayerZero之上的重新实现中受益。第2部分概述了区块链技术的前景,并进一步探讨了交换的例子。

为了正确解释LayerZero的能力及其在区块链生态系统中的作用,我们首先提出了正式的跨链交易所需的基本通信原语,我们称之为valid delivery有效交付(Section3)。然后,我们描述了LayerZero如何以一种去信任的方式提供这个原语,从而保持区块链的安全承诺。LayerZero是第一个去信任的全链互操作层,支持1层和2层链之间的直接消息传递(图1)。

图2:LayerZero通过要求两个独立的实体(Oracle和Relayer)确认交易,从而确保了跨链通信的有效性。

链A和链B之间的跨链交易,由A上的交易tA、A和B之间的通信协议及消息m组成。当且仅当tA已提交且有效时,有效交付认为m已传送。支撑LayerZero的关键思想是,如果两个独立的实体证实了交易的有效性(在本例中为tA),那么链b可以确定tA是有效的。图2在一个高层次上说明了这一点。假设两个实体没有共谋,如果(1)一个实体可以为链A上包含tA的区块生成块头,(2)另一个实体可以独立生成该区块上tA的证明(交易证明),以及(3)块头和交易证明实际上是一致的,那么通信协议可以在保证tA在链A上稳定提交的前提下将m传递给链B上的客户端。第4部分中描述的LayerZero通信协议保证收件人链上的交易将与发件人链上的有效、提交的交易配对,而不涉及任何中间链。我们通过组合两个独立的实体来实现这一点:一个提供块头的Oracle[7],以及一个提供与上述交易相关联的证明的Relayer。

LayerZero的接口是一个轻量级的链式客户端,我们称之为LayerZero端点。每个(支持的)链上都存在一个LayerZero端点,任何具有LayerZero端点的链都可以进行跨链交易,涉及具有LayerZero端点的任何其他链。本质上,这创建了一个完全连接的网络,每个节点都可以直接连接到其他另一个节点。通过少量的样板代码,任何区块链都得到了支持。第5部分通过一个案例研究演示了这个过程,该案例研究了如何在以太坊区块链上实现LayerZero。

与网络上任何其他链直接进行跨链交易的能力,为以前不可行的一类大规模应用提供了机会,例如跨链去中心化交易所、多链收益聚合器和跨链贷款。第6节详细研究了几个这样的应用。通过LayerZero,用户可以在链条之间自由移动流动性,允许单个流动性池参与跨越不同链条和生态系统的多个去中心化(DeFi)应用程序,而无需通过第三方系统或中间代币。

2.背景

为了奠定LayerZero的基础,我们回顾了相关的现有系统,以说明为什么它们不能满足新兴应用程序的需求。讨论最终深入解释了在LayerZero之上建立跨链交易所的优势。

2.1相关工作

这一部分建立了对跨链交互空间中重要参与者的理解,为什么他们达不到去信任的有效交付的理想,以及LayerZero是如何缩小差距的。

Ethereum(以太坊)[8]是最受欢迎的平台,用于通过智能合约构建的去中心化式金融应用程序。以太坊使用图灵完备编程语言扩展了其底层区块链,该语言使得去中心化式应用程序库能够通过对开发人员友好的摘要利用底层链强大的安全属性。然而,底层区块链的低交易率(大约每秒15-45个交易)已被证明是一个严重的可伸缩性瓶颈,限制了构建为直接在以太坊区块链上运行的应用程序的流行。由于其编程模型和流行程度,许多跨链通信技术围绕着第三方链与以太坊的接口。LayerZero提供了在无需中间人的情况下直接向以太坊和从以太坊传输状态的能力,允许用户和应用程序利用以太坊链的稳定性和可信度,而无需面对下面描述的解决方案的成本和瓶颈。

以太坊Ethereum2.0[22]是一组提升以太坊的可伸缩性、安全性和可持续性方面的升级。以太坊2.0引入了分配负载的分片链,而不是将所有交易集中在超载的以太坊主链上。从工作证明(PoW)过渡到利益证明(PoS)既消除了51%攻击的可能性,又降低了每笔交易的能量。这些进步在很大程度上与LayerZero的发展是不谋而合的的,肯定会促进以太坊的流行,为方便和廉价的跨链通信创造更多需求。

Polygon[17],前身为Matic网络,是一个二层网络,解决以太坊吞吐量和主权挑战。尽管是区块链开发最流行的平台,但以太网受到低吞吐量的困扰[10],使其不适合某些应用。Polygon提供了应用程序特定的,与以太坊兼容的侧链,将独立链的可伸缩性和独立性与以太坊的社区和安全性结合起来。专门的或吞吐量密集型的应用程序运行在侧链上,并定期整合回主要的以太网链。相比之下,LayerZero是一个底层平台,可以实现直接的跨链通信,可以用来促进传输回以太网主要链而不需要复杂的Polygon协议。

Polkadot[26]是一个开放的跨链生态系统潜在的早期例子。在Polkadot中,许多特定于领域的平行链(“parachains”)通过一个公共中继链进行连接,该中继链使代币和数据能够在它们之间流动。然而,跨链通信总是穿过这个中继链,从而产生额外的成本。LayerZero提供了与Polkadot相同的底层通信平台,没有涉及链上中间商所必需的额外交易。

THORChain[23]是一种DEX,它使用成对的流动性池在第三方链之间传输代币。每个流动性池将特定的第三方货币与称为RUNE的THORChain本地代币绑定,后者充当公共交换媒介。如果没有这种共同的媒介,所有成对的货币都需要一个流动性池,这意味着流动性池的数量将按照货币数量的平方来增加。不幸的是,虽然RUNE解决了这个可扩展性的问题,但是在交易过程中的冗长开销使得一个简单的操作变得相当复杂。这在THORChain交易算法的复杂性中表现得很明显。LayerZero提供了直接的跨链通信,而没有THORChain固有的可扩展性瓶颈,繁琐的中间货币,或重量级协议。

AnySwap[2]是一种类似于THORChain的DEX,它面向简单的成对代币交换。AnySwap依赖于一个基于Fusion分布式控制权限管理的中间代币--ANY。和THORChain一样,使用ANY中间代币会带来不必要的开销、延迟和额外的传输费用。

Cosmos[5]是一种区块链网络技术,允许在支持的链之间发送任意消息。Cosmos包括一个建立在Tendermint BFT[21]上的区块跨链通信(IBC[14])协议,以促进建立在Cosmos Hub上的链之间的消息传递。Cosmos与LayerZero在两个关键方面有所不同:(1)IBC运行一个完整的链上轻节点,(2)IBC只提供快速终结链之间的直接通信[24]。IBC的这些局限性,加上使用中间链来促进共识,使得它类似于Anyswap、THORChain或Polkadot,而不是像LayerZero这样的通用通信层。Cosmos也提供了与Anyswap或THORChain具有相似属性的DEX,称为引力桥[12]。与Cosmos和IBC相比,LayerZero提供了去信任的全链消息传递,并且可以扩展到任何链上运行,包括那些提供概率终结性的链,如以太坊和比特币。

图3.LayerZero是跨链应用程序的构建块。这个图形显示了集中式交易所、分散式交易所和使用LayerZero作为底层通信原语构建的跨链桥梁之间的架构差异。

Chainlink[7,4]是一个构建和连接到分散的oracle预言机网络(DONs)的框架。虽然智能合约是防篡改的,但其在链上的性质阻碍了对其更广泛应用至关重要的基本连接:智能合约不能获取执行合同所必需的脱链数据,如股票价格、物联网设备测量以及安全脱链计算的输出。DON将智能合约的防篡改属性扩展到合同所依赖的数据源和外部资源,而无需信任任何中心实体。在DON中,用户的智能合约向Chainlink接口智能合约发出链上请求,该合约向许多独立的预言机节点发送事件。每个预言机节点查询多个数据源以获取所请求的信息,聚合数据以过滤错误或恶意数据源,并对数据执行可选的信任最小化计算。预言机节点响应Chainlink接口智能合约,该智能合约执行第二级聚合来过滤错误或恶意的预言机。这种双层过滤保证了对最终数据的信任,而不需要信任任何单独的预言机或数据源。因此,Chainlink提供了一个有力的信息检索网络和一个安全的离链计算解决方案,已经在业界得到了广泛的应用。通过利用Chainlink DON框架,LayerZero协议获得了确保不同链之间去信任的消息传递的能力。

2.2实践中的LayerZero

开发者可以使用LayerZero来构建复杂的跨链应用程序,而不需要牺牲去信任或引入复杂的中间链/智能合约。图3说明了LayerZero在构建交易所时的功能。

一个集中的交易所,如左图所示,要求用户将他们的代币存放在一个中央可信的第三者,然后脱链跟踪存款,并根据用户的要求在其他链上授予硬币。对这种权威的信任与我们使用区块链的初衷背道而驰,后者导致了分布式交易的出现。

中心图在一个高层次上展示了典型的分散式交换是如何工作的——通过使用一个智能的合约管理的共识协议来促进B链上硬币的自动铸造,DEXs能够克服集中的、可信的离链中间商的必要性。然而,一个关键的限制是,DEXs涉及一个中间代币和中间链,并且只在B链上铸造一个中间代币或者包装代币,而不是用户想要的实际代币。然后,用户必须在一个额外的交易中将中间代币(例如RUNE)或包装代币(例如ANY)交换为所需的代币。这个中间/包装代币、第二个交易以及中间链对于理想的单个无缝交易来说都是不必要的开销。图3的右侧显示了构建在LayerZero上的交易所的样子,链A能够启动单个跨链交易,促进链B上的本地交易,并通知链B上的应用程序可以安全地向用户授予代币。在这个应用程序中,LayerZero实现了一个干净的、最小的、不包含任何中间代币的单交易交换。实际的交换协议由跨链交易两端的智能合约处理,LayerZero在两者之间传递消息。这提供了很大的灵活性,并遵循端到端原则[18],大多数高级交换逻辑由源链和目的链上的智能合约处理。

3.有效交付

在这一部分中,我们描述了去信任跨链通信的基本特性。为了正式描述在不同链上验证交易的问题,我们定义了有效交付的概念。有效传递是一种通信原语,它通过提供以下保证来实现跨链代币传递:

1.通过网络发送的每条消息m都与发送端链上的一个交易t相耦合。

2.当且仅当相关联的交易t是有效的并且已经在发送端链上提交时,消息m才被传递给接收方。

集中式交换机保证有效的交付,因为客户和交易所之间的协议是客户将其代币从一个链转移到交易所,而交易所将在收到代币后发出一些余额(非加密货币)。这种非加密货币余额随后可以从任何可用的链条中撤出,这种便利是由于每个受支持链条上的交易所保持了广泛的流动性池而成为可能的。交易所在交易中充当中间人的角色,用户必须相信他们能够维护他们的交易。然而,恶意或破坏的交换可以从客户端获取代币,发出余额,然后拒绝允许从另一个链中提取余额,实际上是从用户那里窃取代币。即使用户愿意信任加密货币交易所,近年来也出现了许多成功的黑客攻击或破坏加密货币交易所的尝试[15],因此为用户提供一个不需要任何可信中间人的解决方案会更好。在更高的层次上,加密货币的核心工作之一是它们独立于像银行这样的中央实体,因此依赖于一个中央交易所违背了它们的目的。

使用集中式交易所的另一种选择是分散式交易所,如THORChain[23]或AnySwap[2]。所有现有的DEX都使用一个中介代币,例如THORChain中的RUNE,AnySwap中的ANY,作为交易t。因为这些中介代币由每个DEX的各自协议控制,所以DEX能够保证有效的传递,因为恶意用户不可能伪造中介代币。现有的DEX解决方案并不理想,因为它们涉及两个中间交易——一个是将发送方的代币转换为中间代币,另一个是将中间代币转换为接收方链上所需的“真实”代币。除此之外,用户还需要完全信任中间协商一致层,该层确认源链上的交易并传达创建目的链的代币。虽然现有的交换确实能够实现跨链代币传输,但它们的代价是不必要的复杂性和成本。这种做法的缺点很明显,因为跨链应用还没有被广泛采用。跨链交易问题的理想解决方案是使用跨链的单一交换交易,而不涉及任何可信的中间实体——换句话说就是去信任的有效交付。在我们的工作中,我们实现了一个通用的消息传递协议,它提供了任意用户数据的去信任的有效传递,而不仅仅是代币。分布式交换或其他DeFi应用程序将使用我们的消息传递原语来实现跨链交易,基础层消息传递协议提供的灵活程度使得高级应用程序能够实现以前不可能实现的广泛功能性。

4.设计

LayerZero的核心是一个通信协议,提供去信任的有效传输。我们的协议是建立在第4.1节介绍的一系列组件之上的。我们在第4.2节中讨论了传输协议的通信流程,在第4.3节中描述了LayerZero如何能够在不涉及可信中介服务的情况下实现有效的传输,并在第4.4节中介绍了我们新的基于低成本智能合约的轻节点客户端设计。

4.1 LayerZero的组成

LayerZeroEndpoints是LayerZero的面向用户界面。在LayerZero网络中的每个链都有一个LayerZero端点,作为一系列链上的智能合约实现。端点的目的是允许用户使用LayerZero协议后端发送消息,保证有效的传递。

LayerZero端点分为四个模块:Communicator(通信器)、Validator(验证器)、Network(网络)和Libraries(库)。Communicator、Validator和Network模块组成了端点的核心功能(图4),而LayerZero支持的每个新链都作为附加库添加。这个设计允许我们在不修改三个核心模块的情况下添加对新链的支持。我们在第4.4节中解释了每个模块的功能。

预言机是一个第三方服务,它提供一种独立于其他LayerZero组件的机制,从一个链读取块头并将其发送到另一个链。理论上,这个预言机可以是提供这种机制的任何第三方服务,但实际上我们希望使用Chainlink[7,4],它是目前去中心化Oracle网络的行业领导者。

图4:单个零层跨链事务中的通信流。

**Relayer(中继器)**是一个脱链服务,其功能类似于预言机,但是它不是获取块头,而是获取指定交易的证明。

为了确保有效的传递,唯一的要求是,对于使用LayerZero协议发送的任何给定消息,预言机和r中继器必须相互独立。协议本身并不需要任何特定的中继器实现,理论上,LayerZero的用户甚至可以实现他们自己的中继器服务。这种设计允许用户确保中继器不会与预言机串通,这种独立性允许我们实现去信任的验证交付,如第4.3节所示。实际上,LayerZero提供了中继服务,而预言机则由Chainlink的去中心化式甲骨文网络和相关的共识机制处理。

4.2 LayerZero协议

图4说明了单个LayerZero消息的有效传递所涉及的步骤。图中的每个圈起来的数字代表了协议的一个步骤,并且对应于本节中的一个段落。这一部分介绍了Chain A(链A)上的用户应用程序通过LayerZero向Chain B(链B)上的用户应用程序发送单条消息的例子。在第5节中,我们描述了在两个以太虚拟机之间发送消息的情况下,如何实现各种组件和协议步骤。

**步骤1:**Chain A(App A)上的用户应用程序可以作为交易T的一部分执行一系列操作。我们通过交易标识符t唯一地标识交易T,这个标识符的格式可能会根据Chain A的类型而变化。交易T中包含的一个步骤是通过LayerZero传输消息,并以T为条件进行有效传递。为了说明的目的,并且不失一般性,我们假设在这个设想的应用程序A(App A)正在使用我们的参考中继器。App A向LayerZero Communicator发送一个包含以下信息的请求:

t:T的唯一交易标识符。

dst:指向chain B上智能合约的全局标识符。

payload(有效载荷):App A希望发送给App B的任何数据。

relayer_args(中继器参数):在App A希望引用中继器的情况下描述支付信息的争论。

**步骤2:**Communicator构造一个LayerZero包,其中包含dst和payload,称为数据包Packet(dst,payload),并将它连同t和relayer_args(中继器参数)一起发送到Validator。

**步骤3:**Validator将t和dst发送到Network。这一步通知Network chain A上当前块的块头需要发送到chain B。

**步骤4:**Validator将Packet(dst,payload)、t和relayer_args转发给Relayer,通知Relayer, T的交易证明需要预取并最终发送给chain B。这与步骤3同时发生。

**步骤5:**Network向Oracle发送当前交易的dst和块ID(cur_blk_id)。这样就不需要修改Oracle来获取chain A上当前块的块头,然后发送给chain B。在同一区块中发生多个LayerZero交易的情况下,第5步只执行一次。

**步骤6:**Oracle从chain A中读取块头(blk_hdr)。

**步骤7:**中继器Relayer从chain A读取与交易T(proof(t))相关的交易证明,并且存储以防脱链。步骤6和步骤7彼此异步发生。

**步骤8:**预言机确认对应于blk_hdr的块稳定地提交到chain A上,然后将blk_hdr发送到chain B上的Network。确定这种情况何时发生的机制因链而异,但通常需要等待一定数量的区块确认。

**步骤9:**网络将块Hash值,指定为blk_hdr_hash,发送到Validator。

**步骤10:**Validator将blk_hdr_hashHash值转发到中继器Relayer。

**步骤11:**在收到blk_hdr_hash之后,Relayer发送与当前块匹配的任何Packet(dst,payload),t,proof(t)元组的列表。在多个用户同时在同一端点之间发送消息的情况下,可能在同一块中有多个packets和相关的交易证明。

**步骤12:**Validator将接收到的交易证明与Network存储的块头一起使用,以验证关联的交易t是否有效并已提交。如果区块头和交易证明不匹配,那么消息将被丢弃。如果它们匹配,那么Packet(dst,payload)被发送到Communicator。

**步骤13:**通信器将Packet(dst,payload)发送给App B。

4.3实现去信任的有效交付

**去信任:**LayerZero设计的核心思想是用户不需要信任LayerZero的组件。代替需要信任这一个很强的条件,我们只需要在预言机和中继器之间较弱的独立性条件。这种独立性而不是信任的要求是允许LayerZero高效和轻量级的一个方面。只要预言机和中继器之间没有恶意的勾结,LayerZero就能保证有效的传输。

**有效传递:**通过第4.2节所示的LayerZero协议,Communicator将消息m传递给用户应用程序,当且仅当与m关联的交易t的交易证明可以在步骤12中验证时。这个验证步骤将成功,当且仅当块头和交易证明匹配,这只会发生在以下两个场景:

1.预言机提供的块头和中继器提供的交易证明都是有效的。

2.预言机提供的块头和中继器提供的交易证明都无效,但仍然匹配。

场景2只有在Oracle和Relayer层串通的情况下才会发生,因为从统计学上来说,在不知道特定块头的情况下,发送一个可以针对块头进行验证的交易证明是不可能的,反之亦然。然而,LayerZero的设计消除了串谋的可能性,如第1节所述。因此,如果一条消息被发送到接收端的用户应用程序,它就保证满足有效发送的属性。

正如第3节所概述的那样,能够保证去信任的有效传递(即在不信任中间实体或代币的情况下进行有效传递)的通信协议是实现跨链交易的理想解决方案。LayerZero是第一个也是唯一一个证明这一特性的系统。这一事实将推动用户采用LayerZero作为跨链通信的首选方法。

4.4LayerZero层端点

LayerZero端点目前实现为LayerZero网络中包含的每个链上的一系列智能合约。LayerZero端点的核心功能封装在三个模块中:the Communication, Validation,and Network(通信、验证和网络)。这些模块的工作方式类似于网络堆栈,在发送端向堆栈发送消息——从Communicator到Validator到Network——然后在接收端向上发送消息。

除了核心模块之外,LayerZero端点还可以通过Libraries进行扩展,Libraries是一种辅助的智能合约,用于定义应该如何处理特定链的通信。LayerZero网络中的每个链都有一个相关的Library,每个端点包含每个Library的一个副本。这种模块化的设计使得LayerZero网络能够快速、方便地扩展,以便根据需要包含新的链。此外,两个链之间的通信只要求它们各自的Library在两端都存在,使得LayerZero成为一个完全连接的网络,能够协调任何一对节点之间的交易。

4.5 LayerZero Endpoint(端点)成本可伸缩性

正如许多读者可能会指出的那样,在一层链上运行智能合约可能成本过高,特别是随着存储数据量的增加。为了使LayerZero端点实用化,我们有必要设计最轻量级的客户端。以前通过跨链状态机复制(SMR)进行去信任的跨链验证的工作,如Golden Gate[11],在流行的Layer1一层链(如以太坊)上运行,每天可能要花费数百万美元。

图5:EVM端点的LayerZero数据包布局。

为了解决这个问题,我们着手设计尽可能轻量级的客户端。我们的主要观察结果是,在客户端中复制和存储块头是不必要的。相反,我们将获取必要的跨链报头和交易证明的任务委托给离链实体:预言机和中继器。这导致LayerZero节点非常轻量,即使在以太坊这样昂贵的[20]链上也很划算。

5.案例研究:EVM上的LayerZero

在本节中,我们将简要描述如何在以太坊虚拟机器Ethereum Virtual Machines(EVMs)上实现对LayerZero运行支持的细节[13]。为了简洁起见,我们重点讨论了系统的各个方面,它们的实现可能因链而异,并强调了我们的实现如何处理以太网链的具体需求。正如第4.1节中提到的,LayerZero的当前版本依赖于Chainlink来提供预言机服务,并希望用户使用我们提供的中继器服务。

LayerZero Packets数据包:LayerZero数据包的格式会根据源和目标链的不同而有所不同。我们在图5中说明了EVM端点[19]的LayerZero数据包的精确布局。每个字段的功能如下:

**发送端链交易稳定性:**为了确保消息交易在源链上的稳定性,我们依赖于去中心化的Oracle网络的固有属性——在听到一些块确认后Oracle只会通知目的地的一个特定块头的链,在以太坊的情况下是15。准确地说,LayerZero协议的步骤8(第4.2节)只有在Oracle听到chain A上的15个块确认之后才会执行。

**LayerZero端点:**我们将LayerZero端点实现为一系列智能合约,由4.4节中描述的四个主要模块组成。对于大多数现有的区块链,包括以太坊区块链,我们能够将Communicator、Validator和Network分别作为单独的智能合约实现。然而,这种设计并不排除在具有不同需求的(未来)链上实现LayerZero端点。

在这个案例研究中,LayerZero端点的Library库组件是为以太坊区块链提供支持的关键。我们实现了一个Library来处理图5所示的EVM特定LayerZero数据包的构造,并处理EVM智能合约地址信息的编码和解码。

Library的另一个责任是处理验证交易证明所涉及的实际计算。我们的EVM Library为EVM块上的交易处理Merkle-Patricia Tree验证[16],我们基于Golden Gate的开源实现[11]。

6. LayerZero上的应用程序

**跨链去中心化交换:**正如第2.2节中简要描述的那样,LayerZero使得跨链DEX(跨链桥)成为可能,它专门处理本地资产。与现有的发行代币或通过中间副链的DEX设计相反,可以构建一个使用LayerZero在链之间发送消息的DEX,这样两个链上都存在流动性池,用户只需将其本地资产存放在一个池中,然后从另一个池中提取本地资产。LayerZero的消息传递原语功能强大,足以支持直接连接(1:1定价)、自动市场制定(ab=k定价)和任何其他派生(例如与Curve DAO定价相似的派生[25])。LayerZero提供的有效交付的保证使得广泛的去中心化交换应用成为可能。

**多链产量聚合器:**目前的产量聚合器通常在单链生态系统的范围内运作,项目如Yearn Finance[27]使用单链策略使产量聚合能够。这些单链产量聚合系统的一个关键弱点是,它们不能利用当前生态系统以外的任何产量机会,可能会错过许多最佳产量。一个使用LayerZero进行跨链交易的收益聚合器将允许利用所有生态系统的最佳机会,增加获得高产机会的机会,使用户能够利用市场效率低下的优势。严格来说,多链收益汇总机制比单链收益汇总机制更好,因为在最坏的情况下,该战略将降格为只利用一个链上的机会,而在最好的情况下,它将有更多的机会可供选择。

**多链借贷:**如今,用户没有简单的方法来利用他们不持有资产的链条上的机会。例如,假设一个在ETH整合资产的用户想要利用Polygon上的机会[17]。他们的选择是:(1)将整个资产基础转移到另一个链条,并将其转换为所需的货币,或者(2)在以太坊上出借他们的资产,借入所需的资产,然后将该资产连接到目标链条。LayerZero启用了一个借出协议,该协议允许用户在以太坊上保持他们的整个资产基础,将其借出,然后在Polygon上直接在MATIC中借入。这消除了中间成本,如跨链桥和swap费用。

这三个例子仅仅代表了LayerZero支持的许多可能性中的一小部分。通过利用LayerZero,开发人员将能够编写他们的应用程序,而不用担心链内和链内交易之间的语义不同,用户将能够在链之间自由地移动流动性。我们期待着社区在去信任的跨链交易的力量下开发出创造性的新应用程序。

7.结论

本文介绍了第一个不涉及任何中间交易的去信任的全链互操作平台LayerZero的设计与实现。我们展示了通过利用两个独立的、去信任的脱链实体预言机和中继器,LayerZero能够在不需要昂贵的跨链状态机复制或中间代币的情况下实现有效的交付。我们协议的设计方式不排除任意中继服务的使用,这确保了中继器和预言机之间不存在共谋。LayerZero协议支持的链之间的本地交易,而新颖的LayerZero端点设计可以很容易地扩展到支持任何链。除此之外,我们的端点设计足够轻量级,可以在昂贵的一层链链上运行,比如以太坊,而不会产生高昂的成本。我们提出了一个案例研究,如何在LayerZero中实现支持基于的EVM的链,使用参考中继器Relayer实现结合Chainlink的去中心化预言机网络,使跨链交易通过LayerZero。

LayerZero是连接各种不相交的区块链生态系统的骨干,允许流动性、数据和思想在链条和社区之间无摩擦地流动。

Layer Zero(零层协议):去信任的全链互操作性协议

扫一扫手机访问

Layer Zero(零层协议):去信任的全链互操作性协议

发表评论