热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LayerZero:一种实现“全链互操作性”的协议

来源|LayerZeroOff
来源 | LayerZero Official
作者 | Ryan Zarick


对于跨链桥接和通信,基本上每一种现有的方案都是这两大类的其中一种:第一种是由一条形成共识的中间链在不同链之间验证和转发消息;第二种是在链上运行一个轻节点。我们来讨论一下。

中间链 (Middle Chain)


中间链接收、验证和转发各条链之间的消息。在这种模式下,中间链具有对所有消息的完全签名权,这种设计会使得其成为一个单点故障。在共识被破坏的情况下,所有链上的流动性都会立即被盗。现在的中间链仅与数亿美元的资产绑定,而需要保证数百亿美元资产的安全。随着这些链变得越来越去中心化,当这个巨大的蜜罐被利用时,问题就严重了。

链上轻节点 (On-Chain Light Node)



链上轻节点接收并验证对立链的区块头。包含消息的交易证明被转发并在链上对照区块头进行验证。这是在链之间传送消息最安全的方式。不幸的是,这也是最昂贵的。在以太坊上运行一个链上轻节点,每条对立链每天都要花费成千上万的美元。

超轻节点 (Ultra Light Node)


链上轻节点极其安全,但同时也极其昂贵。中间链不贵,但没那么安全。


接下来介绍的是超轻节点 (Ultra Light Node, ULN),具有轻节点的安全性和中间链的低成本。超轻节点通过执行与链上轻节点相同的验证来实现;但不是按顺序保留所有区块头,而是由去中心化预言机按需分发区块头。

LayerZero


LayerZero 是一个用户应用 User Application (UA) 结构的链上端点,这个端点运行着一个超轻节点 (ULN)。LayerZero 依靠两方在链上端点之间传输消息:预言机 (Oracle) 和中继器 (Relayer)。当一个 UA 从 A 链向 B 链发送消息时,消息会通过 A 链上的端点传输。然后端点会通知 UA 指定的 Oracle 和 Relayer 该消息和它的目标链。Oracle 会将区块头转发给 B 链的端点,然后 Relayer 提交交易证明。该证明在目标链上被验证,消息被转发到目标地址。


安全属性


在拆分 Oracle 和 Relayer 之间的责任时,LayerZero 利用已建立的预言机 (Chainlink 和 Band) 的安全特性,通过开放中继系统增加了一层安全性。虽然这乍一眼看起来只是一个小小的区别,但它的影响是相当深刻的。首先,这意味着这种新网络在最坏的情况下安全性也只是下降到和预言机一样安全。如果你使用 Chainlink 作为你的预言机,那么系统中的任意作恶行为仍然是以首先能够击败 Chainlink DON 为前提的 (这可不是一件容易的事)。即便 Oracle 的共识被破坏,也需要 Relayer 的积极串通。比如,在最极端的情况下,Oracle A 的共识被破坏,Relayer A 也串通了,所有这些风险只由那些接收来自 Oracle A 和 Relayer A 的消息的用户应用承担。所有使用 Relayer B-Z 的用户应用 (运行他们自己的 Relayer),或者所有使用 Oracle B-Z 的用户应用仍然完全不受影响。在风险模型方面,这与之前描述的中间链系统相比是一个巨大的改变。


用例


就目前的生态来看,跨链消息传递就是桥接的同义词。但是使用 LayerZero 可以做的事情远不止桥接资产那么简单。LayerZero 可以实现跨链状态共享、桥接、借贷、swap、治理等等更多功能。

状态共享

SushiSwap 存在于 12 条不同的链上,每个实例都运行在一个孤立的生态系统中。如果它们想要与 SushiSwap 在以太坊的主要实例同步状态,他们就必须编写使用 Wormhole、Rainbow 桥接、Polygon Network 桥接和 Avalanche 桥接的代码。最终的结果就是会有 11 套代码,也就是有 11 个独立接口和 11 种不同的安全属性。由于桥接和 L1/L2 的生态系统正不断变化,这会让系统越来越难以管理。


使用 LayerZero 的话,SushiSwap 将只需要有单个接口和代码库用于所有的跨链对。他们只需要执行 “发送” “接收” 功能。“发送” 包括为目标链形成一条消息,而 ”接收“ 只是解释该消息。

统一流动性的桥接

现在的桥接都争相吸引流动性提供者 (Liquidity Providers, LPs),在桥接和它们的独立成对资金池之间分散分布流动性。LP 必须选择连接到某条链的单个资金池,而不是拥有一个为所有连接的链提供流动性的资金池。LayerZero 这样解决桥接问题:通过在来源链确保最终确定性,在所有链之间统一流动性。这意味着,当用户从 A 链转移资产到 B 链时,用户会被保证资产在 B 链上,然后 LP 则从所有进入 B 链的交易中收取手续费,而不用管来源链是什么。


Swaps

可以对现有的 AMM 进行封装来执行跨链 swap (不需要修改任何现有的代码即可将某种资产转换成另一种资产)。用户只需在来源链进行一笔交易,就能够将以太坊上的 ETH 转成 Solana 上的 SOL。

借贷

现在,如果某个用户在 A 链上存有资产,但是想在 B 链上进行流动性挖矿,那么 ta 必须在 A 链上抵押借贷 -> 桥接资产 (产生手续费) -> swap (产生手续费) -> 在目标链上进行流动性挖矿 -> swap 回原来的资产 (产生手续费) -> 桥接回原来的链 (产生手续费) -> 偿还贷款 -> 提出抵押资产。使用 LayerZero,你可以在 A 链上抵押资产,然后直接在目标链上借款、进行流动性挖矿、偿还贷款、然后 A 链的抵押资产就解锁了。省去了桥接和 swap 的四笔手续费。



点击“阅读原文”获取文章内部链接!
原文链接:https://medium.com/layerzero-official/layerzero-an-omnichain-interoperability-protocol-b43d2ae975b6


ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ETH中文站。若需长期转载,请联系eth@ecn.co进行授权。

推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • OCI连接MySQL_PLSQL Developer连接远程数据库OCI客户端安装方法
    本文介绍了使用OCI客户端连接MySQL和PLSQL Developer连接远程数据库的安装方法,避免了在本地安装Oracle数据库或类似的开发套件的麻烦,同时解决了PLSQL Dev连接远程Oracle时的配置问题。 ... [详细]
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
author-avatar
花开不美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有