Cover photo

零许可、抗审查、不可变

LayerZero V2 发布视频翻译稿
视频来源:

https://x.com/LayerZero_Labs/status/1735317463032893946?s=20

我们非常关心零许可、抗审查以及合约的不可更改性。这些原则曾广受欢迎,但现在似乎已不再那么受到追捧。正如互联网协议连接所有计算机使它们能够相互通信一样,LayerZero 也是一种独特的协议。它为不同的区块链提供了一种交换或传输状态数据的机制。这不是一种信息传递标准,也不是一条区块链,它是一个支持跨链通信的协议。

LayerZero 所有的设计决策植根于我们的核心设计原则,即这种基础架构必须具备不可变性,能有效抗审查,并且无需任何形式的授权许可。

这意味着任何人都可以与 LayerZero 进行交互,这包括任何智能合约、任何用户,毫无限制。协议有着永久存在的状态。即使现在所有参与方停止维护这个基础架构,新的参与者也可以加入。它被设计为永久性的,任何人都可以运行它。

V1 的工作方式是两条链上都有智能合约库,我们称这些为Endpoint(端点)。它们是一组完全不可变的智能合约,任何应用程序都可以无需许可地与之交互。验证库是一种只能添加的版本,这样就可以随着新技术的推出不断加入新的验证技术。我们最初的理念是,我们推出时所用的验证方法在未来五到十年内可能不会成为标准或普遍接受的方法,因为技术总是在不断进步和演变。

目前,当应用程序想要向另一个链发送消息时,它们会与这些端点进行交互。一条消息只是任意一个字节数据包,类似于互联网上的数据包。应用程序通过发送字节数据来请求特定操作,并且想要在另一条链上触发合约执行特定操作,使用字节数组进行任意合约调用。这些交易首先在源链上进行。系统具备链下基础设施,即Oracle(预言机)和Relayer(中继器)。Oracle和Relayer是完全无需许可的。任何人都可以运行这些组件,这意味着应用程序可以运行自己的所有基础设施。他们可以拥有自己的基础设施,而无需依赖任何外部资源。这些组件监控链 A 上的活动,捕获数据包,对数据包本身进行哈希处理,然后将交易记录到链 B 上。在链 B 上验证这些交易后,交易在目标链上执行,以完成预定操作。

同样,这可以是任何东西——可以跨链任意转移资金,可以转移状态。它可以是你想要在任何这些链上进行的任何类型的变更或调用。一个Oracle可以是任意数量的节点。它可以是某个特定链的完整验证器集,可以是一千个节点,也可以是单个节点。LayerZero 协议可以完全不知道这个拓扑是什么样子,任何人都可以参与并运行该基础设施。在过去一年半的时间里,市场发生了大的变化。起初,这些可能是由个人或少数节点子集开始的,现在则发展成了像Polyhedra 的 zkLightClient 这样聚合了 300,000 个 ETH 签名的东西,而还在继续发展。同样,LayerZero 作为一种协议是完全中立的。

Relayer 本身是我们期望许多团体运行并且想要运行的东西。 Relayer 所做的事情实际上相当复杂。这里涉及 50 多个区块链,以及 n 平方路径上的Gas(燃气)抽象化。你正在处理以亿来计算的 RPC 调用、数千万个数据包,这些数据包实际上是在向区块链提交和插入交易,同时还需要管理这些链上的RPC基础设施和Gas资产。我们发现,人们运行这些系统非常困难。因此,在当前的结构中,我们看到有很多人运行和操作Oracle。 Oracle 的操作相对简单——它监听状态事件并将它们写入另一个链。目前只有非常少的团体在运行Relayer,当我们回顾我们的原则以及构建网络的方式时,这对于我们来说在任何情况来看都是不可接受的。

再次强调,不可变、零许可、抗审查。它的建立是为了让任何人都可以做到这一点。实际上,我们发现这对任何人来说都太难了,或者对人们来说也太难了。因此,当我们转向我将要描述的 V2 模型时,我们已经完全移除了该障碍。活性和安全性的分离,是我们在协议历史上所做的最重要的迭代之一,并且更加朝着成为我们一直设想的纯粹基础设施的方向发展。

因此,现在当你转为使用V2 时,V2 具有相同的结构,每个链上仍然有端点,你仍然拥有任何应用程序都可以无需许可地与之交互的不可变的智能合约库。现在,当你转移到安全层或验证层时,你就实现了安全性和活性的解耦,这是由V1到V2 最大的变化之一。现在的安全性是 X,Y,N的结构,这意味着你可以定义任何验证器集,比如说有 15 个验证器正在运行,这些 DVN,就是去中心化验证器网络。

我想要15个中的任意9个,这就是我的阈值。15 人中有 9 人必须在我的消息上签名才能发送我的消息。然后你可以定义具体内容。比如你可以说,指定我自己必须是其中的一个签名者。是的,我想要具备否决权,以确保这些DVN 网络不能串谋对付我。如果你追求最高级别的安全性,你可能会设置这样的结构,作为你自己遇到问题时的保障,并在运行过程中赋予你对任何事项的否决权。因此,安全性现在已经转向这种完全无需许可的 X,Y,N的结构。当然你也可以在V1中使用 Oracle 来做到这一点,但这很困难,也很复杂。现在它位于在底层协议本身的内在特性中,非常容易实现。并且你可以运行任何第三方验证网络,这指的是当今存在的任何验证网络。因此,任何验证器集、任何外部消息传递协议、L2 的原生桥,所有这些都可以用作验证器。

现在来谈谈执行。在之前的版本中,中继器有双重角色,同时负责安全和执行。所以他们提供了部分状态并执行交易。这导致了一个问题,如果他们不提供安全部分,那么消息本身实际上还未被验证为有效,消息无法在目标链上就得不到完全验证。在现在的机制中,一旦你的消息经过你的安全方、即验证器的签名确认,任何人便可以完全无需许可地执行该消息。这意味着最终用户可以直接在链上执行消息。应用程序可以执行并执行用户收到的每条消息。或者,你可以让这些第三方执行器来完成这项非常复杂的任务,管理所有这些链上的 Gas,并为该用户提供 Gas抽象化的体验。

比如说,你在以太坊上,你要去 Polygon,你在源链上的钱包里有 ETH,但在目标链上你的钱包里没有 Matic。你该如何执行该交易的另一部分?你希望用户体验是这样的吗——在这里执行交易,等待若干分钟让它完成,然后在目的链钱包中某种方式获取Matic,再在那边执行交易。对大多数用户来说,这种体验很糟糕,而大多数人希望这一过程被简化。这会大大改善用户体验,也会使开发者的体验更佳。

但你不希望并且不能允许的是系统的活性受到影响。你不希望在治理投票中出现这样的情况:一些对某个可执行操作有利的投票正在进行,然后它们可能会宣称,看,我们已经达到了法定人数。目前这对我们有利,为了确保这种状态保持不变,我们可能会经历几个小时的系统停机。可能还有一些团体本可以投反对票的,但由于活性问题,这些票可能就不被计入了。这样的问题现在解决了吗?

这种审查形式不应该存在于协议中。对于零许可执行,这意味着一旦负责安全的验证器签核,最终用户就可以自己执行它。你可以在未经许可的情况下确保你的投票已在链上计算。你可以确保你的交易得到执行。所有这些操作现在都掌握在任何能够在链上执行这些东西的人手中。

在V1,每条消息都必须按照接收的顺序进行传递。因此,如果涉及到投票,你肯定不希望能够审查选票。任何治理都应该执行严格的随机数(Nonce顺序)。这意味着完全执行,原因是安全性和执行性,或者说安全性和活性,是紧密相连的。现在在 V2 中,通过安全性和活性的解耦,每条消息都必须按照顺序通过验证,并且保留你想要的所有抗审查属性,但你不需要按照接收顺序执行处理,除非应用程序严格执行这一点。

因此,如果你考虑使用跨链桥来转移资金或 NFT的时候,你并不关心你是处于哪个位置,不管是第 1 位、第 15 位还是第 37 位,你真正关心的是你的物品和资金是否顺利到达另一端的网络。再次强调,你可以随时自己去执行这些操作。它允许执行器一次性将尽可能多的交易发送到链上,从而提高吞吐量,基本上是使目标链的吞吐量实现最大化。

如果你需要严格的执行和严格的验证,这可能适用于金融应用。你不会希望执行层能够阻止你的交易,并优先处理他们更偏好的其他人的交易,或者确保他们先于你购买你正排队等待购买的资产。在一些这样的应用程序中,你需要严格执行,但对于大多数应用程序来说你不需要,而这是 V2 中释放的巨大吞吐量。

在讨论LayerZero V2的时候,最显著的转变之一是从垂直可组合性转变为水平可组合性。垂直组合性在讨论应用程序如何在目标链上堆叠并以原子状态连接这些交易时,会导致多种问题。如果在组合中的最终应用程序失败,那么在其之前的所有步骤也会随之失败。任何一个环节出现问题,整个组合就会进入一种瘫痪状态。举个例子,如果我在以太坊上封装Uniswap,但我的封装应用失败了,而导致Uniswap应用也陷入失败或陷入冻结状态,这是毫无意义的。这并不是我们希望应用程序能够互相组合的方式。

水平可组合性使得该组合中的每个应用程序都具有完成状态,并且仅由下一个应用程序在链中进行打包和组合。这种方式不仅改善了开发人员体验,还拓宽了应用程序之产互相组合的可能性,这是应用程序在 LayerZero上运作方式的重大转变。

在讨论这些技术的开发时,我们不禁思考,这些技术是否会在未来5年、10年甚至20年后被金融领域采用。任何存在腐败可能性的系统,最终都可能遭受腐败。无论是去中心化金融(DeFi)协议中的验证器,还是传统金融界的参与者,只要存在腐败的空间,就总会有人去尝试。这种腐败最终将转化为一种负担,由消费者和网络使用者来承担。

如果你计划扩展到其他网络或执行其他操作,你需要的是一套具有相同安全保证的统一语义。使用 LayerZero,你可以保留所有的安全属性和常用的底层验证方法,同时去往其他网络时保持统一的语义。作为应用程序或开发人员,你不希望进入 15 个不同的链并必须编写 15 个不同的接口,每个接口都有自己的安全层,每个接口都有自己的一组风险,并且每个接口都有完全不同的安全模型。通过在协议中内置统一的语义,你可以将这些不同的元素统一起来,你可以保留安全属性,并且可以完全扩展到任何区块链。

现在大多数人可能不会深入思考这些问题,人们很容易就会倾向于构建一个能够正常动作的系统。目前加密货币的状况非常糟糕,体验也很糟糕,只要拥有一些有效的东西就已经是向前迈出了一大步。问题在于,人们为了实现诸如跨链发送代币、转移NFT等功能,会做出极端的妥协,比如采用任何看似有效的系统。如果我们使用这种方法构建轨道,如果我们现在不考虑这些事情,并且深入思考这些系统以最具对抗性的方式工作的方式,我们未来将面临这样一个局面:用户最终被金融轨道所操纵。

我们最初加入这个去中心化平台时,共同反对并试图远离被泛权力机构特权影响的世界,希望实现用户掌握主权。如今,我们需要认真思考:底层系统是否真正拥有这些特性?在数据包层面,是否存在真正的抗审查能力?是否任何人都能运行基础设施并参与其中?如果合约可以改变,你现在拥有的权利,未来可能不再存在,或无法保证。不可变性的存在是关键——无论协议的其他部分现在如何,如果它不是永久不变的,那么这些特性都可能被改变。只要这些合约允许升级或变更,整个协议和这些核心信念就会面临风险。人们已经偏离了最初的、远大的目标。

如果你选择在 LayerZero 上构建,这意味着你选择信任自己,而非依赖他人。