以太坊 Dencun 升级与潜在机会

news2024/10/3 22:20:26

撰文:Biteye 核心贡献者 Fishery Isla

文章来源Techub News专栏作者,搜Tehub News下载查看更多Web3资讯。

以太坊网络升级 Dencun 测试网版本在 2024 年 1 月 17 日上线了 Goerli 测试网,1 月 30 日成功上线了 Sepolia 测试网,Dencun 升级离我们越来越近。

再经历一次 2 月 7 日的 Holesky 测试网升级之后,就会是主网升级,目前坎昆升级主网上线已经正式确定在 3 月 13 日。

每次以太坊升级几乎都会伴有一波主题行情,追溯以太坊的上一次还是 2023 年 4 月 12 日的上海升级,POS 相关的项目都受到了市场的追捧。

如果按照先前经验,本次 Dencun 升级也会有提前布局的机会。

而由于 Dencun 升级背后涉及的技术内容比较晦涩,并不能像 Shanghai 升级那样用一句话 “以太坊从 PoW 转向 PoS” 一言以蔽,难以抓住布局的重点。

因此,本文将用通俗易懂的语言去解释 Dencun 升级的技术细节,为读者梳理本次升级与数据可用性 DA 和 Layer 2 等赛道之间的脉络。

01EIP 4484

EIP-4844 是本次 Dencun 升级中最重要的提案,标志着以太坊在以去中心化方式扩展的道路上迈出了切实而重要的一步。

通俗来讲,目前以太坊二层需要将二层发生的交易提交到以太坊主网的 calldata 之中,供节点验证二层网络出块的有效性。

这样做带来的问题是,虽然交易数据已经被尽可能的压缩,但二层庞大的交易量再乘以以太坊主网高昂储存成本基数,对于二层节点和二层用户来讲依旧是一笔不小得开销。光是价格因素,就会让二层失去大量用户,流向侧链。

而 EIP 4484 建立了一个更为便宜的新型的储存区域 BLOB(Binary Large Object ,二进制大型对象),并用一种可以指向 BLOB 存储空间的名为 "BLOB-Carrying Transaction" 的新交易类型来替代升级之前需要存入 calldata 的交易数据,帮助以太坊生态二层实现节约 Gas 成本。

BLOB 存储便宜的原因

众所周知便宜是要付出代价的,BLOB 数据比类似大小的普通以太坊 Calldata 成本更低的原因是,以太坊执行层(EL, EVM)实际上无法访问 BLOB 数据本身。

相反,EL 只能访问 BLOB 数据的引用,而 BLOB 本身的数据只能由以太坊的共识层(CL,又称信标节点)下载和存储,存储起来耗费的内存与计算量远小于普通以太坊 Calldata 。

而且 BLOB 还有一个特性,只能存储有限的一段时间(通常为约 18 天),并不会像以太坊账本大小那样无限膨胀。


BLOB 的存储有效期

与区块链永久的账本相反,BLOB 是暂时的存储,其可用时间为 4096 个纪元,即大约 18 天。

过期后,大多数共识客户端将无法检索 BLOB 中的特定数据。但是,它之前存在的证据将以 KZG 承诺的形式保留在主网上,并且永久存储在以太坊主网上。

为什么选择 18 天?这是在衡量储存成本和有效性之间的折衷方案。

首先要考虑此次升级最直观的受益对象 Optimistic Rollups(如:Arbitrum 和 Optimism,),因为根据 Optimistic Rollups 的设定,有 7 天的故障证明(Fruad Proof)的时间窗口。

而 blob 中所存储的交易数据,正是 Optimistic Rollups 发起挑战的时候所需要的资料。

因此,Blob 的有效期必须要保证 Optimistic Rollups 故障证明可以访问,为了简单起见,以太坊社区选择了 2 的 12 次幂(4096 个纪元由 2^12 推导而来,一个纪元大概 6.4 分钟)。

BLOB-Carrying Transaction 与 BLOB

理解这两者之间的关系,对于理解 BLOB 在数据可用性(DA)方面的作用十分重要。

前者是 EIP-4484 提案的整体,是一种新型交易,而后者可以理解成一种针对 layer 2 临时存储交易的位置。

两者关系可以理解为,前者中的大部分数据(layer2 交易数据)存储在后者之中。而剩下的数据也就是 BLOB 数据的承诺(Commitment)则会存在主网的 calldata 之中。也就是说,承诺是可以被 EVM 读取的。

可以将 Commitment 想象为将 BLOB 中的所有交易构建成一个 Merkle 树,然后只有 Merkle 根也就是 Commitment 可以被合约访问。

如此做可以巧妙的实现:虽然 EVM 无法得知 BLOB 的具体内容,但 EVM 合约可以通过知晓 Commitment 进而可以验证交易数据的真实性的目的。

02BLOB 与 Layer2 的关系

Rollup 技术通过将数据上传到以太坊主网来实现数据可用性(DA),但这并不是为了让 L1 的智能合约直接读取或验证这些上传的数据。

上传交易数据到 L1 的目的,仅仅是为了让所有参与者都可以查看这些数据。

在 Dencun 升级以前,如上文所述,Op-rollup 会将交易数据作为 Calldata 发布到以太坊。所以任何人都可以使用这些交易信息来复现状态,验证二层网络的正确性。

不难看出,Rollup 交易数据需要便宜 + 公开透明,Calldata 并不是为二层专门存放交易数据的好地方,而 BLOB-Carrying Transaction 才正是为 Rollup 量身定制的。

读到这里,可能大家心里有个疑问,这种交易数据看起来并不重要,它有什么用?

其实,交易数据只有在少数情况才会用到:

对于 Optimistic Rollup,基于信任假设,有一定可能会出现不诚信问题,此时 Rollup 上传的交易记录才派上用场,用户可以利用这个数据发起交易挑战( Fraud proof);

对于 ZK Rollup,零知识证明已经证明状态更新是正确的,上传数据只是为让用户自己计算出完整状态,在二层节点无法正确运转时启用逃生舱机制(Escape Hatch,需要完整的 L2 状态树,最后一节会讲到)。

这意味着,交易数据被合约实际使用的场景非常有限。即使在 Optimistic Rollup 的交易挑战中也只需要当场提交证明交易数据 “存在过” 的证据(状态),而不需要那一笔交易详情事先就储存在主网。

所以如果我们把交易数据放在 BLOB 元素中,虽然合约无法访问,但主网合约可以存储这个 BLOB 的 Commitment。

将来如果挑战机制需要某一笔交易,我们只需提供该笔交易的数据,只要能对应上。这就能说服合约,并将交易数据提供给挑战机制使用。

这样既利用了交易数据的公开透明性,也规避了把所有数据提前录入合约的巨大 gas 成本。

通过仅记录 Commitment,达成交易数据可验证性的同时又极大优化了成本。这是 Rollup 技术上传交易数据的一个巧妙且高效的解决方案。

需要说明的是,在 Dencun 实际操作之中,并没有采用同 Celestia 类似的 Merkle 树的方式产生 Commitment,而是采用巧妙 KZG (Kate-Zaverucha-Goldberg,多项式承诺 )算法。

相比 Merkle 树证明,生成过程 KZG Proof 的过程相对复杂, 但其验证的体积更小,验证步骤也更简单,但缺点是需要进行可信任设置(ceremony.ethereum.org 现如今已经结束)且不具防量子计算攻击能力(Dencun 使用了 Version Hash 的方法,如果需要可以更换其他验证方法)。

对于现在大热的 DA 项目 Celestia ,其采用的正是 Merkle 树变体,相比 KZG,有一定程度要依赖节点的诚信,而却有助于降低节点之间计算资源的门槛要求,维持网络的去中心化特征。

03Dencun 的机会

Eip4844 为二层降本增效的同时,却也引出了安全隐患,这也带来新机会。

要想理解原因,我们需要聊回上文提到的逃生舱机制 或者 强制取款机制。

在 Layer 2 节点失能时,这种机制可以保证用户资金安全回到主网。激活这个机制的前提是用户需要获得 Layer 2 完整的状态树。

按照正常情况,用户只要找一个 Layer2 全节点索要数据,生成 merkle Proof ,再提交给主网的合约,以证明自己提款的正当性。

但不要忘了用户想要启动逃生舱机制退出 L2 恰恰是因为 L2 节点作恶,节点都作恶了,那大概率就不会从节点哪里获取到想要的数据。

这就是 Vitalik 常提到的数据扣留攻击。

EIP-4844 之前,主网上记录了永久的 Layer2 记录,在没有 Layer2 节点可以提供完整的链下状态时,用户可以自己部署一个全节点。

这个全节点可以通过与以太坊主网获取 Layer 2 排序器在主网上发布的所有历史数据,用户就可以构造出所需的 Merkle 证明,将证明提交给主网上的合约,就能安全地完成 L2 资产撤离。

而 EIP-4844 之后,Layer 2 数据只存在以太坊全节点的 BLOB 中,18 天之前的历史数据将被自动删除。

因此,上一段中的通过同步主网获取整棵状态树的方法不再可行,想要获取 Layer 2 的完整状态树,只能通过第三方为爱发电的储存了以太坊 BLOB 全部数据(本该 18 天自动删除)的主网节点,或 Layer 2 原生节点(很少)。

由此 4844 上线后,用户通过完全可信的方式获取 Layer 2 完整状态树将会变得十分困难。

用户没有稳定途径获取 Layer 2 状态树,就没法在极端条件下进行强制提款操作。因此,4844 一定程度上造成了 Layer 2 的安全短板 / 缺失。

要补足这块的安全缺失,我们需要拥有有正向经济循环的无需信任储存方案。这里的储存,主要是指以一种无需信任的方式保留以太坊中的数据,和过去的储存赛道不太一样,因为还存在 “无需信任” 这个关键字。


Ethstorage 就可以解决无需信任这个问题,得到了两轮以太坊基金会的资助。

可以说这个概念真正的可以迎合 / 弥补 Dencun 升级的赛道,非常值得关注。

首先,Ethstorage 最直观意义在于,能够以完全去中心化的方式延长 DA BLOB 的可用时间,补上了 4844 后 Layer 2 的安全最短板。

此外,大多数现有的 L2 解决方案主要侧重于扩展以太坊的计算能力,即增加 TPS。然而,在以太坊主网上安全存储大量数据的需求激增,特别是由于 NFT 和 DeFi 等 dApp 的流行。

例如,链上 NFT 的存储需求非常明显,因为用户不仅拥有 NFT 合约的令牌,还拥有链上图像。Ethstorage 可以解决将这些图像存储在第三方会带来额外的信任问题。

最后,Ethstorage 还能解决去中心化 dApp 的前端的需求。目前现有的解决方案主要是由中心化服务器(带 DNS)进行托管,这种设置使网站容易受到审查和其他问题的影响,如 DNS 劫持、网站黑客攻击或服务器崩溃,龙卷风现金等事件就是证明。

现在 Ethstorage 还在初期网测试阶段,看好这一赛道的前景的用户可以体验一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1457526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMQ—RocketMQ消息重复消费问题

RocketMQ—RocketMQ消息重复消费问题 重复消费问题的描述 什么情况下会发生重复消费的问题: 生产者多次投递消息:如果生产者发送消息时,连接有延迟,MQ还没收到消息,生产者又发送了一次消息; 消费者方扩容…

两步为软件设置开机自启动(Windows)

两步为软件设置开机自启动(Windows) 有些软件本身没有开机自启动的设置,以下是两种解决的方式,在这里主要介绍第二种(更简单更推荐) 第一种方法: 使用任务计划程序 第二种方法: …

gRPC 备查

简介 HTTP/2 HTTP/2 的三个概念 架构 使用流程 gRPC 的接口类型 1.单一RPC 2.服务器流式RPC 3.客户端式流式RPC 4.双向流式RPC

vue3-动画技巧

Vue 提供了 <Transition> 和 <TransitionGroup> 组件来处理元素进入、离开和列表顺序变化的过渡效果。但除此之外&#xff0c;还有许多其他制作网页动画的方式在 Vue 应用中也适用。这里我们会探讨一些额外的技巧。 基于 CSS class 的动画 对于那些不是正在进入或…

kali虚拟机桥接模式快速设置

第一步&#xff1a;配置 IP、掩码、网关 vim /etc/network/interfaces第二步&#xff1a;配置 DNS&#xff1a; vi /etc/resolv.conf第三步&#xff1a;重启网卡 service networking restart如果还不行建议重启一下虚拟机

c# #if 与 Conditional属性宏的区别

测试代码 using System; using System.Diagnostics;namespace ConsoleApp1 {public class TestClass{[Conditional("Debug1")]public static void Func1(){Console.WriteLine("Conditional 宏");}public static void Func2(){ #if Debug2Console.WriteLin…

Rabbitmq入门与应用(六)-rabbitmq的消息确认机制

rabbitmq的消息确认机制 确认消息是否发送给交换机 配置 server:port: 11111 spring:rabbitmq:port: 5672host: 192.168.201.81username: adminpassword: 123publisher-confirm-type: correlated编码RabbitTemplate.ConfirmCallback ConfirmCallback 是一个回调接口&#xf…

Leetcode3011. 判断一个数组是否可以变为有序

Every day a Leetcode 题目来源&#xff1a;3011. 判断一个数组是否可以变为有序 解法1&#xff1a;分组循环 排序 适用场景&#xff1a;按照题目要求&#xff0c;数组会被分割成若干组&#xff0c;每一组的判断/处理逻辑是相同的。 核心思想&#xff1a; 外层循环负责遍…

2024年TIOBE编程语言排行榜

1. 2024年TIOBE编程语言排行榜&#xff0c;我为C打Call&#xff0c;你呢&#xff1f; https://www.tiobe.com/tiobe-index/

大模型量化技术原理-LLM.int8()、GPTQ

近年来&#xff0c;随着Transformer、MOE架构的提出&#xff0c;使得深度学习模型轻松突破上万亿规模参数&#xff0c;从而导致模型变得越来越大&#xff0c;因此&#xff0c;我们需要一些大模型压缩技术来降低模型部署的成本&#xff0c;并提升模型的推理性能。 模型压缩主要分…

【Java中23种设计模式-单例模式2--懒汉式2线程安全】

加油&#xff0c;新时代打工人&#xff01; 简单粗暴&#xff0c;学习Java设计模式。 23种设计模式定义介绍 Java中23种设计模式-单例模式 Java中23种设计模式-单例模式2–懒汉式线程不安全 package mode;/*** author wenhao* date 2024/02/19 09:38* description 单例模式…

三防平板丨三防工业平板电脑丨三防平板电脑有哪些优势?

三防平板电脑通常使用特殊材料和制造工艺来达到防水、防尘、防摔的目的&#xff0c;这样可以在极端条件下使用&#xff0c;并保证设备的稳定性和可靠性。因此&#xff0c;三防平板电脑适用于各种恶劣环境&#xff0c;如户外野营、物流、工业制造等应用场景。那么相比于普通消费…

Python Selenium 爬虫淘宝案例

爬虫专栏&#xff1a;http://t.csdnimg.cn/WfCSx 前言 在前一章中&#xff0c;我们已经成功尝试分析 Ajax 来抓取相关数据&#xff0c;但是并不是所有页面都可以通过分析 Ajax 来完成抓取。比如&#xff0c;淘宝&#xff0c;它的整个页面数据确实也是通过 Ajax 获取的&#x…

Radware Alteon负载均衡-基于域名的七层负载均衡

Radware Alteon作为一款高性能的负载均衡器&#xff0c;其基于域名的七层负载均衡功能为众多企业提供了灵活、高效的解决方案。 该案例实现如下需求&#xff1a;客户端访问服务器&#xff0c;当访问域名为www.iisstart.com时&#xff0c;默认访问Server1&#xff0c;当配置七层…

数据结构-最短路径(Dijkstra算法与Floyd算法)

介绍 对于网图来说&#xff0c;最短路径是指两顶点之间经过的边上权值之和最少的路径&#xff0c;其路径上第一个点记为源点&#xff0c;最后一个为终点。 计算最短路径有两个经典算法&#xff0c;即迪杰斯特拉&#xff08;Dijkstra&#xff09;算法与弗洛伊德&#xff08;Fl…

蓝桥杯嵌入式STM32G431RBT6知识点(主观题部分)

目录 1 前置准备 1.1 Keil 1.1.1 编译器版本及微库 1.1.2 添加官方提供的LCD及I2C文件 1.2 CubeMX 1.2.1 时钟树 1.2.2 其他 1.2.3 明确CubeMX路径&#xff0c;放置芯片包 2 GPIO 2.1 实验1&#xff1a;LED1-LED8循环亮灭 ​编辑 2.2 实验2&#xff1a…

C#使用MiniExcel导入导出数据到Excel/CSV文件

MiniExcel简介 简单、高效避免OOM的.NET处理Excel查、写、填充数据工具。 目前主流框架大多需要将数据全载入到内存方便操作&#xff0c;但这会导致内存消耗问题&#xff0c;MiniExcel 尝试以 Stream 角度写底层算法逻辑&#xff0c;能让原本1000多MB占用降低到几MB&#xff…

提取游戏音频文件.bnk

提取游戏音频文件.bnk 什么是.bnk准备Wwise-Unpacker工具使用Wwise-Unpacker工具总结 什么是.bnk .bnk其实是一种对音频的加密方式&#xff0c;一个.bnk文件中通常包含了多个语音文件&#xff0c;一般可以使用Wwise-Unpacker来解码.bnk格式文件 准备Wwise-Unpacker工具 Wwis…

视频基础学习一——色立体、三原色以及像素

文章目录 前言一、什么是颜色1.色立体特征2.色立体模型 二、三原色和色立体1.三原色(RGB)2.RGB颜色叠加 三、像素和三原色总结 前言 本文的目的是为了梳理音视频基础相关的知识&#xff0c;有很多做流媒体、音视频相关的研发对于音视频的根本原理是不清楚的。博主也是查阅了相…

Linux 内存top命令详解

通过top命令可以监控当前机器的内存实时使用情况&#xff0c;该命令的参数解释如下&#xff1a; 第一行 15:30:14 —— 当前系统时间 up 1167 days, 5:02 —— 系统已经运行的时长&#xff0c;格式为时:分 1 users ——当前有1个用户登录系统 load average: 0.00, 0.01, 0.05…