编辑
2024-09-25
EIP协议
00
请注意,本文编写于 130 天前,最后修改于 130 天前,其中某些信息可能已经过时。

目录

1. 什么事EIP4844
2. 解决问题
3. 如何使用blobs 验证rollup交易
4. 技术细节
4.1 数据存储格式blob
4.2 blob 交易
4.3 blob 交易的签名
4.4 blob gas 设计
参考链接

image.png

1. 什么事EIP4844

EIP4844以太坊改进方案引入一种新类型的交易到以太坊区块链中,允许区块链Rollup 以更低的成本结算其交易。 这些新交易接收成为“blobs”的大块交易,这些数据会在段时间后会被删除。 Blob 交易,由EIP-4844引入,即“Proto-danksharding”,为以太坊添加了一种新的数据结构 在大约 20-90 天后从链上删除

2. 解决问题

Layer2 将数据上传到Layer1后的删除问题。

以太坊只需要验证批次是否有效一次,然后就不在需要这些数据。

3. 如何使用blobs 验证rollup交易

  1. roll-up (zkSync) 压缩他们的交易列表
  2. 将压缩后的列表作为blob提交到Ethereum l1,并附带证明
  3. L1验证交易批次
  4. blob 最终从L1中删除

4. 技术细节

4.1 数据存储格式blob

新引入的数据存储格式 blob 本质是一个字节向量(ByteVector[n]),n = FIELD_ELEMENTS_PER_BLOB * BYTES_PER_FIELD_ELEMENT。

  • FIELD_ELEMENTS_PER_BLOB:新增常量,表示每个 blob 中的字段数,为固定值 4096 。
  • BYTES_PER_FIELD_ELEMENT:新增常量,表示每一个 blob 字段的存储字节数,为固定值 32 。 一个 blob 的可用容量为 4096 * 32 个字节,约为 0.128 MB 。

blob 可用容量4096*32 个字节约为0.128MB;

另新增常量 MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS:为固定值 4096 ,定义了节点必须存储 blob 数据的最少时段数(4096 * 32 * 12 / 3600 / 24 = ~18.2 天),期间数据依然可以被网络中的节点访问和验证;逾期后,节点有权删除 blob 中的侧车数据。这个常量保证网络中任何节点都能够获取所需的历史数据,从而维护网络的完整性和连续性。

存储最短时间 18.2 Day 注:侧车数据(sidecars),泛指与 blob 交易相关联的数据但不直接存储在区块链上的附加信息(包括但不限于 blob 数据本身、KZG承诺、KZG proof、版本化哈希等)。

blob 数据的组成部分:

用户数据:这是 blob 的核心内容,即要在以太坊上存储和传输的实际数据集。对于不同的应用,这些数据可能包括但不限于交易详情、状态变更信息或任何需要在区块链上存储的大量数据。

数据承诺与证明:为了确保数据的完整性和可验证性,blob 通常会包含一个数据承诺以及用于验证承诺的证明,使得任何人都可以验证 blob 中数据的正确性和完整性,而无需访问整个数据集。

4.2 blob 交易

4.3 blob 交易的签名

4.4 blob gas 设计

引入 blob gas 作为一种新型 gas。它独立于普通 gas 并遵循自己的目标规则(类似于 EIP-1559)。

单个 blob 的 gas 容量由新增常量 GAS_PER_BLOB 定义,值为 2 ** 17,即 131072 单位 gas。 目标 blob gas 消耗量由新增常量 TARGET_BLOB_GAS_PER_BLOCK 定义,对应于 3 个 blob 的 gas 容量,即 393216 单位 gas(3 * GAS_PER_BLOB)。 最大 blob gas 消耗量由新增常量MAX_BLOB_GAS_PER_BLOCK 定义,对应于 6 个 blob 的 gas 容量,即 786432 单位 gas(6 * GAS_PER_BLOB)。

参考链接

https://learnblockchain.cn/article/7586

本文作者:Ramondy

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!