跨域(Cross-Domain) 论文第一部分:搭建舞台

  • maven11
  • 发布于 2023-08-19 23:34
  • 阅读 23

本文深入探讨了区块链生态系统中流动性聚合的重要性以及分散流动性的问题。文章详细分析了应用链和Rollup的增量发展及其面临的挑战,如流动性碎片化、跨Rollup通信问题等。通过讨论IBC(区块链间通信)中的路径解开和数据包转发中间件,展示了如何改进跨链应用的用户体验。整体上,文章为开发者和行业从业者提供了丰富的技术细节和未来发展趋势。

随着区块链生态系统每个月都有新的 rollups 和 app-chains 加入,流动性越来越分散。收益分散,用户分散。因此,有一点已变得显而易见:聚合是并将日益变得更加迫切。许多项目努力改善这些问题,但他们面临着通过更好的基础设施、信任最小化、互操作性和语言表达所能解决的各种挑战。这些挑战包括持续存在的预言机问题、流动性碎片化、与不同虚拟机的兼容性(以及为其构建的能力)、抵押管理、非条件交易以及简化但可自定义的交易机制的需求。

过去几个月,app-chains 和 rollups 的公告数量增加,通常借助现有协议的共享或派生安全机制。在这里,特别需要注意的是 rollup 部分,rollups 的增加与跨域论点相辅相成——尤其是在尚未有内在选择的全球状态、传输层或协议内的桥接/消息系统时。这意味着 rollups 虽然能够利用基础层的流动性并从其推导出部分审查抵抗(依赖于 rollup/智能合约方面的安全性和信任假设),但在跨 rollup 通信方面仍然相当有限。基本上,它们像是以太坊流动性的隔离扩展,更像是运行着与之前其它链相同的通信问题的单一链。除了可能为一组 rollups 缓解部分这些问题的共享排序设置,大多数现有和许多未来的 rollups 将会面临这些通信问题。底层层次的终局、拥堵和吞吐量也是这些限制因素。例如,如果我作为 rollup A 的用户想要进行一个“无信任”的转账到 rollup B(而无需经过一个带来额外风险的受信方桥)。我必须要么等待 ZKP 的概率性终局在某组超多数周期后被验证,或者等待挑战期(在乐观 rollup 的情况下)结束,然后才能将我的资金转移到 rollup B 的桥接合约。这些问题在确定性终局的情况下更容易解决,只要两个 rollups 在共享一个传输层并能验证彼此的状态机——要么通过一个轻节点或完整节点验证区块头或状态证明包含在底层。然而,在前面的例子中,利用底层层次的经济安全性来确保包含(如果所有数据可用)到 rollups 中,可能是一个相对“强”的保证,表明桥接转账可以发生。

这些假设还假定连接链和 rollups 的代币标准是通用的(例如,从链 A 的 银行模块 到链 B 的银行模块的 IBC w/ CW20,或在相同底层结算层上从存款合约向存款合约转移的可替代 ERC-20 代币)。

然而,值得注意的是,在 IBC 当前形式中,代币路径是路径依赖的。这意味着,目前在通往某个终态的不同路径上所采用的代币是不可替代的,并且不能在同一个池中使用。例如,通过 IBC 代币所采取的路径是在其面额中编码的(denoms,详细阅读 这里)。它使用 SHA256 生成固定长度的输出,尽管这意味着 IBC 中的 ICS-20 模块必须保持所有 IBC denom 的映射,因为它无法计算输入,以查找路径和 denom。原因完全是基于安全性(因为具有不同路径的代币有不同的安全保证);然而,这确实使得最终用户和试图进行各种跨域交互的应用程序变得相当不便——因为在一个拥有 DEX 的世界中,代币很可能已相当移动。这些代币将无法存入同一个池中(不同 denom,“相同”代币),而用户(可能对此并不知情)会感到困惑——这不是一个好的用户体验。

路径展开、数据包转发中间件和中继器

即将进行的一项变更被称为路径展开,它将帮助缓解这些问题。路径展开本质上只是通过将它们先发送回原生链再返回最终目的地来解决非原生 denom 问题——尽管这确实给系统带来了一定的固有延迟。但是,在从各种链进行几次跳转以达到代币终态的情况下,它显著降低了跳转次数,直接搭桥到其原生链,然后到达其最终目的地(在之前需要相同路径以实现可替代性的情况下)。

同时,通过 数据包转发中间件来解决这个问题。它是为 IBC 构建的中间件模块。这意味着一个链可以利用这个模块首先通过源链路由来自不同链的进入 IBC 数据包,以便获得相同的 denomination,从而确保所有代币都是可替代的。随着链的数量按月增加,这尤其是一个问题,这意味着必须为每个对方链运行越来越多的档案节点和中继器。转发中间件还帮助并与多跳 IBC 交易结合(例如,通过多个链跳跃以达到同类类型代币的目的地)。基本上,通过在同一链路由,我们可以维持相同的 denomination。它还意味着现在可能涉及的多个链变为一个单一的交易,而不是用户从接口 A 跳转到 B,再到 C 等等。

它也模拟了传统上如何通过互联网路由数据包以达到目的地,这种情况下通过将原生源链作为路由器,将其余连接粘合在一起(从而从源链路径派生安全性)。数据包转发中间件充当网络的出入口(在传统意义上连接到本地网络的路由器接口)。

如果目标与同一路由器直接相连,数据包将直接转发给该目标。如果目标网络不直接连接,则数据包将被转发到下一个跳跃路由器。

今天,你如果去 Osmosis,可以清楚地看到这个当前运作的良好示例是,如果你想要通过 axlUSDC(在 Osmosis 上)抵达 dYdX,你将需要从 Osmosis 转账到 Axelar,然后转账到 dYdX(除非所有流向 Osmosis)。但是,通过数据包转发中间件,你现在可以在一个交易中做到这一点。这由 ICS-20 代币转账中的新 memo 字段提供支持,后者为转账添加额外信息(denom、代号、动作等)。这为中间件设计提供了支持,因为它现在可以正确路由数据包:

来源: IBC-Go

当然,这增加了对已经投入使用的 IBC 中继器 的额外压力,所以中继器的激励和费用是一个重要话题(而不仅限于 Cosmos 生态系统,而是更广泛的模块化和跨域世界)。目前,中继器依赖于来自对其验证节点的委托的补偿(中继器主要由验证提供商运行)。ICS-29 是一种帮助解决这个问题的方式。但是,激励带来的同时也承载着审查抵抗的重要性,避免利润追求者违反协议以提取租金。这意味着中继必须通过激励来遵守某些规则,例如;

1. 数据包的及时传递

2. 传递确认

3. 超时,如果在交付之前数据包已过期,无需重新启动通道

4. 暴露中继器地址给 IBC 模块,以便可以给予激励。

包中继可能涉及三项费用,分配给正向和反向中继器(接收和确认);

  1. 收费

  2. 确认费用

  3. 超时费用(在未交付包超时的情况下)

一般而言,中继器激励的实现使得更多的市场参与者能够参与跨域消息传递。然而,另一种看法是,应用较少的路线可能需要补贴(或可能关闭),因为你正在为流行路线的激励创建一个市场。然而,你也可以认为这是用户基础以费用的形式表达他们的偏好——一种意图的形式。

这将 hopefully 增加去中心化和审查抵抗,同时提供一个更有效的跨链消息传递市场。这是关于当前中继处理方式所需的重大变更(虽然很出色,但对于现有市场参与者而言并不高效,且对大多数人来说,也不可持续),以便 IBC 能够在现有规模之外扩展。此外,它还为中继器市场带来了透明性。然而,激励和收入的存在意味着,它可能会导致速度最快、最有效(以及地理位置最佳)的中继器从费用中获得最多的价值。一些潜在解决方案的想法已被提出,例如通过对一小部分中继器进行投票,以便在特定时间间隔内选择,为特定频道,给更多中继器机会参与。如果你对与 IBC 相关的中继器激励感兴趣,请查看此 链接

当前活跃的大型 IBC 中继器列表可以在此查看:

来源: iobscan

如果你是一个活跃的跨域用户,可能已经很清楚,整体上(除了少数新应用程序),用户体验还不尽如人意。这里的诸多新发展可以说将帮助我们更接近日益无缝体验的目标,这是许多人正在努力实现的。


回头望去,看着一年前我们针对模块化的重点文章 模块世界,有趣的是看到模块化论点已经发展到何种程度。最初的文章包含了一个图表,展示了我们对模块化生态系统最终会是什么样子的设想。可以说,我们已经远远超出了这个设想。

这是更新的版本,也展示了以太坊生态系统的演变,以及自那时以来冒出的众多 rollup SDK 和即服务供应商。


RaaS、SDK 和跨链应用

尽管模块化和跨域论点愈加明晰,但许多问题仍然悬而未决。对于许多 rollup 服务提供商的盈利能力仍然没有明确答案,特别是对于 SDK 的盈利能力。某些问题的出现是,硬件和 DevOps 的成本可能会超过来自不那么繁重和少用的 rollup 的利润。如果开发人员(们)没有为带宽、硬件成本和开销而付费,服务提供商可能很快会面临问题。否则,你就不得不通过发放代币来获得激励,如果为了保持项目运转必须出售这些代币,则会导致安全预算下降和代币持有者不满。关于安全预算的更深入讨论,请参见我们的模块化 MEV 专栏—— 第一部分第二部分

然而,在提供者自身堆栈中运行关键基础设施的情况下,这些 rollups 看到大量用户时——显然有很多价值可以被捕捉。这个可捕捉的价值也可能会看到已经在其他生态系统中运行验证者和节点的知名基础设施提供商希望分一杯羹。他们可能会通过在这些堆栈中运行排序者、中继器等来实现——这可能有助于去中心化部分硬件,更重要的是提供活力和审查抵抗,而不是依赖单一团队来负责所有。除此之外,要吸引那些作为基础设施提供者或服务提供者极具价值的应用程序 onboard,显然在很大程度上是一场业务发展竞赛。尽管如此,我们曾看到去中心化和技术的胜出。然而,在这种情况下,客户可能不会那么关心底层基础设施,只要他们感到得到了充分的服务。这一切意味着,我们可能会看到大量新的 rollups,既有单一的,也有(专用应用)L3s。

切割出特定的细分市场或针对特定部门,可能也是 RaaS 提供商获得显著牵引力的一种方式。SDK 在如何盈利方面不那么明确,尽管它们在构建同类生态系统方面非常流行——正如我们之前所见。然而,如果不在这些堆栈中运行关键基础设施,盈利的获取可能会很困难。这就是为什么 MEV 软件难以获利的原因,除非你在使用该软件的协议的基础架构关键部件上运行,可以实现盈利。出售软件在这一新生阶段几乎难以扩展,并且也限制了研究、测试和实验的能力。这方面的一个很好的例子是,在 Nvidia 的 CUDA(机器学习软件开发框架)垄断和 TensorFlow 失去对 PyTorch(前 Meta)和 OpenAI 的 Triton 的市场时的损失;开源软件的颠覆性特征(并不局限于特定的底层基础设施或硬件)及其比闭源软件更快速迭代和获得网络效应的能力是一个关键的区别因素。一般的可用性和灵活性(或偏好表达,轻轻一推)往往远超过排外性。如果你正在开发特定领域的语言(DSL),出于很多原因,你可能会选择开源,让其可供研究、使用和优化;这无疑会增加成功的机会。然而,盈利就会越来越困难,除非你要么拥有运行该语言的堆栈,要么运行关键基础设施的部分。如果你有兴趣阅读整个故事,我强烈推荐这篇 文章(谢谢,MJ!)。

为了吸引第一批 rollup 客户,RaaS 提供商很有可能还需承受初始成本或甚至“支付”以吸引我们视为“杀手应用”的应用程序,例如那些可以吸引大量用户或流动性的应用。这对资金实力较小的提供商而言,可能是一个令人望而却步的任务。在你看到大量提供商已经出现之后,这种“竞价底线”变得愈加明显,确实有可能抢占所有他们希望吸引的应用程序,竞争变得非常激烈。此外,对于一些提供商而言,DevOps 和硬件的成本可能会超过不太流行的应用(具体应用与通用应用之间)的利润率,最近,由 Chorus One 团队发布了一篇不错的帖子,讨论这方面的问题。

在未来的一年中,很可能会出现应用特定 rollups 和通用智能合约链的 Cambrian 爆发,但其“获取流动性更简便”——就像我们在 Cosmos 生态系统中看到的更多“碎片化”的应用特定链一样。尽管 IBC 及其标准多么出色,依然从用户体验的角度来看颇为碎片化——不过有许多项目在这里努力寻找解决方案,例如 Squid、Catalyst、Socket、Li.Fi、Connext 等等。如之前所述,跨链生态系统本身也在努力开发协议内的功能,以解决许多当前面临的用户体验问题。一些应用开始看起来像真正的本地跨链应用,不再需要在操作之间进行同步,并允许异步访问。以下是 Catalyst 架构的示例:

在 Catalyst 中,流动性单位作为市场制造商(池)的中介,促进资产匹配。在这里,交易中介被重新定义为交易成本(单位),而不是资产本身。为了简化实现并启用跨链交换,单位可以被抽象为数值,使现有消息中继器能够促进该过程。

为了利用现有的跨链消息传递层并简化跨链交换,可以设计一个功能。在资产池中,每个资产都链接到一个递减的、非负的边际价格函数:描述当某一变量(可变的 未知数字,通常是字母,你可能还记得这个在数学课上)变化时,资产价格是如何变化的。递减意味着随着变量的增长,资产的价格趋向于下降。非负,则意味着价格要么为零,要么为正。交易成本以单位形式表示,从该价格函数的积分(可视为一个面积)中计算得出。该积分表示价格函数曲线下的面积,给出我们交易该资产的总价值或成本的度量。基于此,你可以计算价格相对于该变量的变化。

通过将单位作为各种链上的池之间的中介,可以仅根据一条链的本地状态计算交换,消除对状态同步的需求。因此,你可以确保流动性可以在每个链上异步访问,无论与涉及的链的交互的时间或顺序如何,均可确保流动性可用。

一些可能利用各种本地跨链应用的应用程序,被称为(或描述为)区块链的“前端”,例如近年来的 DoraFortyTwoZapper。这些应用旨在提供一个单一前端,与各种协议、应用和中间件交互,但通过单一的用户体验。这类产品很可能会随着跨域交互的增加而看到用户的增加。意图在这里也将扮演一个重要角色,一会儿在系列中会进一步探讨。

尽管上述问题存在,但看到如此多来自新老应用及基础设施项目的新公告,令人耳目一新,构建出新的激动人心的用例,以模块化的方式推进。从应用特定的 rollups、app-chains、通用 L3s、主权流动卷、RaaS、SDK 和解释器应有尽有。

许多提及的项目在为整个模块化生态系统提供服务的意义上也很有趣,因为它们提供了各种定制选项和解决方案。你想用 Celestia 进行 DA 和以太坊进行结算的 rollup?随便啦。你想要一个以太坊 rollup?随便啦。你想要在 Celestia 上的主权 rollup?随便啦。你想要在一个主权结算层上的 rollup?随便啦。这展示了模块化的独特卖点,只要你能构建出来,就一切皆有可能。随便构建。


EIP-4844 (Proto-Danksharding)

如前所述,持续困扰 rollup 或跨域世界的一个问题仍然是可扩展性。这是由于 rollup 对底层层上配额的需求。以太坊社区在 rollup 开发的前沿,因此也正在开发专门针对 rollup 开发者和用户的解决方案。最显著的努力是 EIP-4844,其重点在于降低(并增加) rollup 可以发布到以太坊的交易数据的成本。这表明最大的加密生态系统,以太坊正在朝着一个模块化、跨域的世界迈进。无数开发者每天都在努力工作,以确保 EIP-4844 及时推出。然而,仍然存在需要解决的问题,以及需要考虑的权衡和中心化问题。因此,我们认为有必要覆盖 EIP-4844,既有其对以太坊作为去中心化坚定支柱的正面影响,也有其负面影响。以 rollup 为中心的发展路线图进一步阐明了向模块化的跨域世界的转变,如下所示:

来源: Vitalik Buterin

你还可以查看 Vitalik 2020 年的帖子,展示了在以太坊的核心基础设施中如何包容 rollup 的发展。

EIP-4844(或 proto-danksharding)是以太坊协议即将进行的变更,旨在为 rollup 发布其调用数据(现在为 blob_gas)创建一个单独的 gas 市场和 gas 类型,请求将其交易数据链上发送到以太坊。我们也将这些数据称为“blob”,它将在共识层节点之间进行传播,并持续稍长于 rollup 达到“终局”的时期。

它将通过大幅增加 rollup 可以发布的交易数据量,来为 rollup(及其用户)带来更低的费用。这意味着降低访问以太坊流动性的 cost (获取 rollup blockspace 的成本),并使新的令人兴奋的用例成为可能。这很可能导致 rollup 用户以及可能在这个时候迁移(或扩展)到 rollup 的应用数量增加。

除此之外,其构造方式使其具备面向未来的特质(这在以太坊进行的大量升级中至关重要)。blobs 存储在信标节点(共识层)中,而不是执行层。

例如,blob 存储在 Prysm/Lighthouse 中而不是 Geth/Besu 中。这种分离使执行层能够并行关注其他举措,而将未来的 danksharding 工作专门交给共识节点进行修改。这是一种独特的模块化方法,允许在多年中进行微调,这非常酷。

流行的共识/执行客户端概述。未列出的还有 Reth 和计划中的 Elixir(DSL)构建的节点。来源: ClientDiversity

如果你关注过去几个月的 信任仪式,这也与 EIP-4844 以及数据 blobs 相关。你也许甚至参与了该 仪式(如果你能通过排队的话 ;))。该仪式旨在为 KZG 承诺提供信任设置(稍后我们将介绍这些内容)。信任设置的目的是生成一个可以在每次执行 KZG 承诺时利用的数据集。生成此数据集涉及使用某些秘密信息。“信任”方面源于某人或某群体负责生成这些秘密,并利用这些秘密创建数据集,公布数据集,然后确保这些秘密被遗忘。

信任设置的目的在于建立对生成的数据集的信任基础(这至关重要)。截至目前,已经涉及到 113299 人的捐赠以构建递归秘密,这意味着没有一个参与者掌握了所有妨碍安全的秘密信息。参与这一信任设置的贡献者数量使其成为历史上规模最大的一次。

这种分布式的方法意味着,即使一些参与者被证明是恶意或遭到破坏,也能确保协议保持安全。因为你可以说,无法将全部 113K 的参与者都激发为恶意,再加上他们可能已经忘记了自己的秘密,甚至将其完全随机化(某些很棒的贡献,Anoma 也在其 Namada 的信任设置中做过类似尝试)。

Kate-Zaverucha-Goldberg (KZG) 承诺是一种允许对子数据和特定点证明值进行简洁承诺的方式。它是一种证明数据 blobs 值的出色方式,因为证明者不能更改他们所处理的多项式。他们每个多项式只能提供一个有效的证明,该证明将由验证者接受(如不真实则不被接受)。尽管承诺的计算需要一些时间,但可以批量验证以加速验证(并且更便宜)。使用 KZG 而不是简单的哈希的原因是为了面向未来,并保持证明大小不变。它还适应最终的数据恢复部分 DAS(用于 danksharding)。正如 Avail 所使用的,Celestia 则使用了欺诈证明模型。

如前所述,以太坊的共识层节点需要验证新 blob 数据形式的 sidecar(请阅读 Prysm 如何计划适应这 )。在区块链的意义上,sidecar 是除了正常的验证节点软件额外运行的一段软件(例如 MEV-Boost)。这个 sidecar 批量验证已签署的 blobs 并将其存储(不是在正常的块体中,而是与常规块分开)。这些 blobs 相对较大(每个 blob 的目标大约为 125kb)。该数据无法访问 EVM 执行,只能被 EVM 视为可读,而不是执行。

对于 rollups,blob 交易的适配并没有太大变化。它们不再将 L2 块数据放入交易的 calldata,而是将数据放入共识层的 blob 中。可用性的保证保持不变,但代之以来源于以太坊的共识层,而不是 EVM 自身。对于乐观 rollups,在欺诈的情况下(需申请欺诈证明),证明提交还将需要完整的欺诈 blob 内容将作为 calldata 提交。之后将使用 blob 验证函数验证数据与提交的上一个哈希并对该数据执行欺诈证明验证(IVG 或相似的),与今天的做法保持一致。这一过程发生在执行层的一侧,以哈希(而不是 KZG)确保未来的安全性,作为对共识层 blobs 的引用。执行层中的 blob 版本哈希与共识层中的 blob KZG 之间可以进行相互引用。

对于 ZK (有效性) rollups,此过程稍有不同。Scroll 有一篇 优秀的帖子 关于 EIP-4844 之后的变更,但我们会努力在这里为你概述一下:

在 Scroll 的情况下,它们向以太坊发布 3 个独立的承诺;

  1. L2 上执行的交易列表(区块)——这 以数据 blob 的形式发布

  2. 状态根

  3. 有效状态根的证明

以数据 blob 形式发布已执行交易列表确保数据可用性(数据可用性),因此验证合约能够访问其承诺(或哈希)。状态根是由列表生成的,因为它导致状态根的变化。发布的有效性证明也包含其自己的 KZG 承诺,证明它代表已执行交易的正确列表,并且计算是正确地在链下完成的。两个独立的承诺相互校验,以证明它们代表相同的内容——称为 等值证明。另一种证明数据 blob 正确性的方法是使用指向正确数据的证明以及数据的证明。但对所有 blobs 这么做是需要大量的资源。

客户端此前需要(最近在 2023 年平均)下载每个块约 0.1MB 的区块数据。而随着 rollup 吸引力的增加(以及发送更多的 calldata),这一数据量显然会增加。通过 EIP-4844,平均区块大小将增加到约 1MB(相当可观的增加),以允许 blobs 下载和传播,尽管请注意,这些大多数是临时数据,最终将被修剪(稍后我们会进入)。

来源: Etherscan

对于 blob(blob_gas)而言,一个独特的特点是,它不与本地以太坊交易的 gas 使用相竞争,而是创建自己的 gas 市场。因此,正常 gas 的供需不会影响 blobs。还需要对区块构建方面进行一些更改(主要是在 MEV-Boost 之外)以兼容 EIP-4844。区块构建者需要能够接受 KZG 并将其放入共识层的区块中,置于 sidecar 中(然而,并非所有客户端都要求构建逻辑)。

即将发表的数据量将大幅增加到目前正在发表的数据量,这也意味着,EIP-4844 必须配合 EIP-4444 和共识层的数据修剪。

如果考虑到每个槽中大约 3 或 6*128kb 的数据量增长(3-4 倍),那么现有的节点链同步所需的总存储容量(和档案节点)将变得相当可观。因此,数据修剪是必要的,以确保以太坊保持去中心化,并且大多数人可以运行一个节点(如果他们想的话)。EIP-4444 提出的方案是,客户可以修剪(即“删除”)“旧”数据。确切的时间还没有确定,但大概在一个月左右。请注意,这是针对执行客户端的。对于共识层,由于 rollups 当前的工作方式,共识客户端可以在一段时间过去后删除 blob 数据——这段时间应该当然会超过乐观 rollups 的挑战期(可能 18 天)。在 EIP-4844 上线的同时便需要立即对数据 blob 进行删除;否则,数据存储将迅速成为问题,并会显著增加硬件成本/DevOps 和网络的去中心化。未来,状态过期也需要以太坊进行其他更改,例如 danksharding 等。因此,早期将这一点纳入协议并为未来做好准备无疑是个好主意(Celestia 也在探索类似的 修剪)。

然而,这带来的一个担忧是,档案节点的中心化可能会增加,因为运行这些节点的成本(档案节点目前已经存储超过 10 TB 的数据)将由于投放数据量急剧增加而变得越来越困难。档案节点和索引器仍然需要为利用以太坊及其 rollups 的各种应用程序提供服务。其中一个担忧是,利用 rollup 数据的应用数量可能小于使用基础以太坊数据的人数,但存储需要的数据量却增加了十倍。这可能导致一种情况,对于大多数人来说,为 rollup 应用程序开发者提供访问旧 rollup 交易数据的 API 服务的成本可能无法覆盖该服务的运行成本。这可能导致一种情况,只有大型 RPC 和 API 公司(以及 rollups 本身)才提供这样的服务,使得链的整个历史数据(超越区块头)极为集中。相同的顾虑也适用于索引器,因为由于现在大幅增加的数据量,可能被迫仅运行快速节点软件(导致索引患者多样性下降)。档案和索引器中心化是一个确实需要关注的问题,以及在 EIP-4844 后的变化。一个有趣的论文探讨了用于 rollups 的可证明可获取性的信息分发与存储解决方案, 作者为 Kamilla NazirkhanovaJoachim NeuDavid Tse 来源: Information Dispersal with Provable Retrievability for RollupsKamilla NazirkhanovaJoachim NeuDavid Tse

本质上,这是一个使用线性擦除纠错代码和具有随机抽样的向量承诺(“数据可用性”抽样)的存储和通信协议,以确保以最小信任和可扩展的方式对rollup数据进行可证明的数据检索。然而,这里需要注意的是历史存储具有较低的信任模型,因为你只需要一部分数据存储者是诚实的。如果你需要了解数据可用性和数据可检索性之间的区别,那么大伟 Alex Beckett 的这篇文章 非常合适。

还有一个有趣的方面是 Verkle trees 可能在缓解以太坊及其他许多项目面临的状态膨胀问题中的作用。我们以前在 Beyond IBC 和我们的 区块链承诺文章 中讨论过 Verkle trees,基本上,Verkle trees 允许的一个特性是无状态性(在不同程度上)。无状态性是允许节点忽视它们不感兴趣的状态的概念(阅读更多)。一个例子可能是节点可以忽视超过一年的未更新状态。然而,这种状态在未来可以通过多项式承诺恢复。

这将大大减少节点的资源需求。Verkle Trees 是其关键组成部分,因为它们使更小的证明大小成为可能,从而使无状态性(无论是弱的还是完全的)变得可行。这些优势的实现得益于父节点是向量承诺的变种,而非哈希函数。然而,这会以计算效率为代价,正如我们先前的文章所提到的那样。

另一个重要的是,共识层节点现在需要传播增加的块大小数据在旁路中,这将对 p2p 网络造成额外的压力。有不同的想法来最好地解决这个问题,即减少硬件需求较多的节点不下载整个数据,如果你想保持更新,我推荐阅读 Eth R&D discord

目前,每个以太坊槽(12秒)中的 blob 目标数量为 3,最大为 6(之前为 2/4)。如果区块中有超过 3 个 blob,则 blob_gas 成本将增加。如果少于目标 blob,则将减少。为了使计算更有效,这取决于之前的头部和来自那些的多余 blob_gas - 避免必须下载该 blob 中的所有交易。空的 blob 被“禁止”,因为它们仍需被传播以避免打破协议,并避免 DDoS。blob 的定价动态类似于 EIP1599。最大 blob 的价格上涨 12.5%。0 个 blob 下跌 12.5%。

另一个担忧是带宽或硬件有限的质押者(可能是家庭质押者,“去中心化”的“堡垒”)将面临问题。上传和下载的要求可能使一些人无法有效参与共识,如果他们不能快速上传/下载(或存储该数据)。

在费用市场方面,我们现在拥有两个独立的以太坊区块费用市场 - 一般正常的Gas费用与区块汽油限制以及 blob 交易(及其限制)。区块构建者现在必须避免触及这两个限制。区块构建通常正朝着“超级构建者”发展,这些构建者高度专业化,能够运行非常复杂的计算,因此在这一点上没有太多变化。尽管如此,区块构建者的专业化带来的显著增加仍然来自 MEV。再次推荐 Toni WahrstätterMevboost.pics 以深入了解以太坊中的 MEV(和 MEV-Boost)。

一些“较小”的 rollups 可能无法填满单个 blob,这可能意味着可能的“blob 空间”被浪费。跨 rollups 聚合 blobs 是困难的,因为它现在变成了一个预言机问题(除非将权力交给以太坊验证者进行聚合)。有一点可以肯定的是,这将增加许多复杂性。然而,尽管如此,结果显而易见 - 可以说,这将是以太坊 rollup 中心未来的积极力量。增加的复杂性可能会在进行中得到解决,也强调验证者集可能会通过不同方式随时间降低 - 这是我们需要在众多事情中实现单一槽最终性。最终,这将使以太坊作为一个结算层更加高效,并为跨域 rollup 活动提供更好的体验。

尽管 EIP-4844 可能会对以太坊上 rollup 的 DA 最终性效率产生影响,但目前来看,它不太可能对验证桥的感知最终性产生任何实际影响。以太坊区块空间仍然高度竞争,因此非常有价值。验证有效性证明仍然很昂贵,玩互动欺诈证明游戏或发布大型欺诈证明和回滚仍然在链上成本高昂。如果你对 rollup 最终性感兴趣,我推荐观看阅读 我关于 Rollup 最终性语义的演讲。

关于 EIP-4844 仍然有一些问题正在被解决,例如:

  • 档案节点/索引器规范(索引器可能必须运行 reth 以便及时获取状态差异?)

  • 处理状态膨胀

  • 不同客户端的网络稳定性和 blob gossiping

  • 随着 rollup 的增加,费用市场

  • 去中心化排序网络为 blobs 竞争费用(blob 拍卖?)

  • 跨 rollup 的异步离线通信,关于何时发布 blob,因为每个块的限制,或待处理的 mempool?

如果你想了解进展和准备情况概述,我们推荐查看 这里 的清单。

费率市场分析可以在 这里 找到。blob 交易池的确切规范尚待确定,但这里有一些很好的考虑文献 这里

EIP-4844 可能会随 Cancun 升级 到来。 blob 测试网浏览器可以在 这里 找到。


正如我们之前提到的,今天 rollup 的运作方式仍然存在显著的去中心化担忧和信任问题。两个问题是多重签名和智能合约风险。

如果我们放弃智能合约,而是信任社会共识和系统中的节点呢?不过,请记住,适当的激励和机制设计仍然是非常重要的。

与其让智能合约作为轻节点运行,你可以在底层层上运行轻节点并利用命名空间默克尔树(Namespace Merkle Trees,NMT),我们之前在 区块链承诺中的数据结构 文章中稍微提及过。我们认为这需要更仔细地审视,以确切说明它为何重要。

命名空间默克尔树(NMT)是一种数据结构,用于组织和验证区块链上的大规模数据集合(专为 Celestia 设计)。NMT 的一个关键好处是能够将数据组织为层次结构,在其中你可以有效地验证应用程序请求的单个或分离的数据片段。作为用户,你只需检索对应的叶节点及其父节点,而不是整个数据集。每种链(“rollup”)在使用 NMT 的 DA 层之上具有其命名空间,其数据被做成默克尔化并进行排序。最终结果是一个短的默克尔根,每个 rollup 都有自己的子树(命名空间),可以从中提取和监控数据。这对于每个块潜在空间更多的区块链尤其相关(同时通过 DAS 确保轻客户端成为第一公民),因为它允许你在不检索整个块的情况下提取数据。

NMT 中的节点按命名空间 ID 排序,并且哈希函数被修改,以便树中的每个节点都包含其子节点的所有范围的命名空间。如果应用程序或 rollup 请求特定命名空间的数据,则 DA 层将根据其唯一的命名空间 ID 和树中的提供节点,提供与该应用程序相关的特定数据集。这使我们能够检查所提供的数据是否在 DA 层区块中可用,因此得名数据可用性(DA)。NMT 可以被视为一种有效允许链上特定应用程序可验证查询的方法。如果你对 NMT 的背景感兴趣,我们强烈推荐这篇 文章

rollup 节点可以嵌入一种分叉选择规则,允许与 rollup 相关的每 N 个块的状态与 DA 层上的命名空间相关的事务 – 启用强制包含(强制收件箱)。以太坊 rollup 智能合约的工作方式本质上与轻客户端相同,在这种情况下,可验证来自 NMT 的数据是轻节点。


无论选择哪种道路,很明显许多生态系统都在尝试以不同方式解决类似的问题 - 但大多数都指向跨域。有一些试图在单一网络内解决所有问题的方法,这也是一种有效的方式 - 但在某些方面会限制你。

尽管区块链世界正在慢慢向跨域转型;仍然有许多问题待解决。这些问题中有些较易解决,有些通过共享 DA 缓解,其他则需要简洁的全球状态基础层。在跨域论文的第二部分中,我们旨在讨论一些将有助于创造更小信任世界的创新,以及一些将帮助缓解我们时代许多用户体验问题的创新。

我们有意深入探讨。

第二部分将涵盖;状态/存储证明、虚拟机扩展、意图、最佳跨域交易等更多内容。


感谢 Mathijs van Esch (Maven11),Pim Swart (Maven11),Dougie De Luca (Figment Cap),Jim Parillo (Figment Cap),Dmitriy (1kx),William (Volt)和 Walt 的审阅或讨论,促进了这篇文章的发布。作者可以在:0xrainandcoffee 找到


  • 原文链接: maven11.substack.com/p/t...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
maven11
maven11
江湖只有他的大名,没有他的介绍。