复制成功

分享至

主页 > 比特币 >

Foresight Ventures:以太坊迈向 full sharding 的第一步,EIP-4844 全面解析

2023.01.29

撰文:Yihan Xu@Foresight Ventures

在这篇报告中你可以了解到:

  • EIP-4844;
  • Proto-danksharding;
  • Danksharding;
  • KZG Commitment;
  • KZG Ceremony;
  • Dynamic state sharding;
  • Foresight Ventures:以太坊迈向 full sharding 的第一步,EIP-4844 全面解析

    最近社区参与度超标的 KZG Ceremony 都刷到了吧,这个仪式到底在干什么?

    简单概括,KZG Ceremony 是实现 EIP-4844 不可绕过的一个初始化环节,而 EIP-4844 是实现以太坊 sharding 过程中的先行版本。


    一、Sharding: 以太坊扩容的长久之计


  • Sharding 从数据可用性角度扩容,而 rollup 主要从执行层面扩容,一起缓解主网拥堵问题;我认为 sharding 可能是突破区块链不可能三角的一次尝试。
  • 下面这张以太坊区块大小的走势图可以从另一个角度说明数据层面扩容的必要性。从创世区块开始,以太坊从底层架构到上层应用都在不断地快速迭代,但平均区块大小仍为 90Kb 左右,最高点也没有质的突破。虽然 Rollup 从计算层切入,解决以太坊拥堵问题,但性能仍然受制于 layer 1 的数据存储能力。
  • Foresight Ventures:以太坊迈向 full sharding 的第一步,EIP-4844 全面解析
  • 由于实现过程的复杂度和安全性考虑,以太坊开发团队将 sharding 分成了多个阶段,其中就包括最近提到的 proto-danksharding 和 danksharding。整个过程将会是一个历时数年的更新;
  • 在目前的以太坊的数据存储模式下,只有少数特定高配置的机器可以加入网络成为节点,而 full sharding 之后 ethereum 不再需要每个节点都保存全部数据,在降低主网数据存储成本的同时加强了安全性(成为节点的门槛降低,去中心化程度进一步提升,同时降低被攻击的风险)。

  • 二、EIP-4844: 短期高回报,Sharding 的精简先行版


    EIP-4844 = Proto-Danksharding;
    Proto 来自以太坊研究者的名称

    由于实现 danksharding(下一节会分析)的复杂度很高,开发周期至少是以年为单位的。因此 proto-danksharding 是实现 danksharding 前对以太坊的扩容方案,主要实现了 danksharding 中的交易格式、precompile 等设计。

    Foresight Ventures:以太坊迈向 full sharding 的第一步,EIP-4844 全面解析

    1. Proto-danksharding 概述

    Proto-Danksharding 主要引入了一种新的 transaction type,也就是 blob-carrying transaction。至此,Rollup 的数据通过 blob 的形式以更低的成本向 layer 1 传输,并作非永久存储。同时,blob 远大于现在的 calldata,可以更好地支持 rollup 上的高 TPS。

    关于 blob:

  • 每个 transaction 最多挂 2 个 blob;
  • 每个 block 理想状态包含 8 个 blob,约为 1MB,最多包含 16 个 blob,约为 2MB;
  • Blob 不需要像 calldata 一样作为 history log 被永久存储;
  • 相比 danksharding,节点还是需要对完整的 DA 进行验证。
  • 2. Blob-carrying transaction 解读

    给 transaction 挂上 blob(数据单元)
    Foresight Ventures:以太坊迈向 full sharding 的第一步,EIP-4844 全面解析

    作用

    参考 Vitalik 在提案中给出的图,Data blob 和当前的 calldata 相似,rollup 可以将交易、证明等数据通过 blob 上传到 layer 1 来保证 data availability。

    成本

    Data blob 的设计初衷是支持 rollup高通量的交易,相比同等大小的 calldata(使用链上存储),blob 的成本将会降低很多(不需要永久存储)。因此,rollup 在维持数据可用性上花费的 gas 相比之前会显著降低。

    容量

    每个 blob 的大小约为 125kB(fact: 当前平均 block size 只有~90kB)。

    3. Blob-carrying transaction 的价值和挑战

    价值

    可以把 blob 看成一种缓存,rollup 提交的交易数据从此以缓存的形式存在。降低对存储硬件的要求,为以太坊提供额外的数据扩容并降低 gas 成本。

    挑战:对以太坊节点硬件性能的要求

    Ethereum 当前平均区块大小只有~90kB,但是一个 blob 就有~125kB

    根据 EIP-4844 的设计,每个 slot 正常情况下约为 1 MB,因此每年增加的数据量为:

    1 MB/block * 5 block/min * 43200 min/month * 12 month/year = 2.47 TB per year

    每年增加的数据大小远超过了以太坊数据总量,这样的存储方案显然是不高效的。

    解决方案

  • 从短期扩容效果看,由于每个节点仍然需要储存全量历史数据,在实现 EIP-4844 的同时,对一段时间窗以外的 blob(具体的 limit time 还没有最终确定,可能是 1 个月或是 1 年)进行自动删除;
  • 从 sharding 的长期利益看,实现 EIP-4444,即节点不需要存储全量历史数据,而是只需要参照 history expiry,存储特定时间之后的数据;
  • 这两种解决方案从不同程度上缓解了 blob-carrying transaction 在存储空间上的 tradeoff。

    4. KZG Commitment

    KZG Commitment 是 EIP-4844 中采用的多项式承诺方案

    解析 KZG commitment

    免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

    加⼊OKEx全球社群

    和全球数字资产投资者交流讨论

    扫码加入OKEx社群

    相关推荐

    industry-frontier