Cointime

扫码下载App
iOS & Android

深度解读 EIP-4844:Sharding 的一小步,以太坊扩容的一大步

VC

撰文:Yihan Xu,Foresight Ventures

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

EIP-4844;

Proto-danksharding;

Danksharding;

KZG Commitment;

KZG Ceremony;

Dynamic state sharding;

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

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

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

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

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

EIP-4844 = Proto-Danksharding;

Proto来自以太坊研究者的名称

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

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(数据单元)

作用

参考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

KZG是作者Aniket Kate, Gregory M. Zaverucha和Ian Goldberg姓氏的缩写,他们在2010年发表了多项式承诺方案论文“Constant-Size Commitments to Polynomials and Their Applications” ,并且这个方案在plonk-style的zk-snark协议中有很广泛的应用。

参考Dankrad Feist演讲中的示意图,KZG root类似Merkle root,区别在于KZG root承诺一个多项式,即所有position都在这个多项式上。基于proto-danksharding的场景,KZG root承诺了一堆数据,其中的任何一个数据都可以被验证属于这个整体。

这也是为什么KZG commitment在兼容性上对后面实现DAS更友好。

KZG commitment的流程如下:

  • Prover:提供证明,计算data的commitment,prover无法改变给定的多项式,并且用于证明的commitment只对当前这一个多项式有效;
  • Verifier:接收prover发送的commitment value并进行验证,确保prover提供了有效的证明。

KZG Commitment的优势

我认为主要出于对成本和安全性的思考,可以归纳但不局限于以下几点:

成本

  • KZG commitment具备快速验证、复杂度相对更低、简洁的特点;
  • 不需要提交额外的proof,因此成本更低、更省bandwidth;
  • 数据触达所需的Point evaluation precompile可以获得更低的成本。

安全

  • 假设出现了failure,也只会影响commitment对应的blob中的数据,而不会其他深远的影响。

更兼容

  • 纵观sharding的整体方案,KZG commitment对DAS方案兼容,避免了重复开发的成本。

5. KZG Ceremony(trusted setup)

KZG Ceremony是为KZG Commitment提供trust setup,目前吸引了超过20,000 participants的参与和贡献,已经成为历史上最大规模的trust setup。

最近社区参与热情高涨的KZG Ceremony就是为EIP-4844采用的KZG commitment提供trust setup;

KZG Ceremony的流程

参考Vitalik的流程图,任何人都可以作为participants贡献secret并与之前的结果进行混合产生一个新的result,以此类推,通过套娃的形式获得最终的SRS,并协助完成KZG commitment的trust setup

trust setup

  • EIP-4844中采用了一种常见的multi-participant trust setup,即powers-of-tau;
  • 遵循1-of-N 可信模型,不管多少人参与generating setup的过程,只要有一个人不泄漏自己的生成方式,可信初始化就是有效的;

必要性

  • KZG commitment的trust setup可以简单理解为:生成一个在每次执行cryptographic protocol时需要依赖的一个参数,类似于zk-snark需要可信初始化;
  • Prover在提供证明时,KZG commitment C = f(s)g1。其中f是评估函数,s就是KZG trusted setup最终获得的final secret;
  • 可以看出final secret是生成多项式承诺的核心参数,而作为获取这个核心参数的可信流程,这次KZG Ceremony对于整个sharding的实现非常重要。

6. EIP-4844带来的变化

Rollup

参考ethresear上给出的示意图,rollup需要将state delta、KZG commitment的versioned hash包含在calldata中进行提交(zk-rollup还需要提交zk proof)

可以发现不同的是,calldata只包含一些数据量小的,比如state delta、KZG commitment,而将包含大量交易数据的transaction batch放到了blob里。

  • 有效降低成本,放calldata里很贵;
  • 降低对区块空间的占用

安全性

  • Data availability: Blob存储在信标链上,等同于layer 1的安全性;
  • 历史数据:节点不会只会将blob存储一段时间,需要layer 2 rollup做永久数据存储,因此安全性依赖于rollup。

成本

Proto-Danksharding引入了新的交易类型,低成本数据格式blob的加入无疑会让rollup的成本进一步降低,取决于实际链上应用和实现进展,优化后rollup的成本可能降低x10甚至x50;

同时EIP-4844引入了blob fee;

  • Gas和blob将会分别有可调节的gas price和limit;
  • Blob的收费单元还是gas,gas amount随traffic变动,以此维持每个block平均挂8个blob的目标(限制额外增加的数据量)

Precompile的实现

Blob中的数据本身无法被直接触达,EVM只能获取data blob的commitment。因此需要rollup提供precompile来验证commitment的有效性.

下面分析两种EIP-4844中提到的precompile算法

Point evaluation precompile(对数学原理感兴趣参考vitalik的解析)

  • 证明多个commitments指向同一数据;
  • 主要针对zk-rollup,rollup需要提供2种commitments: 1. KZG commitment; 2. zk-rollup本身的commitment;
  • 对于optimistic rollup,大多数已经采用了multi-round fraud proof的机制,final round fraud proof所需的数据量较小。因此,采用point evaluation precompile能达到更低的成本

Blob verification precompile

  • 证明versioned hash和blob是有效对应的;
  • optimistic rollup在提交欺诈证明时需要access全量数据,因此先验证versioned hash和blob合法,再进行fraud proof verification

三、Danksharding: 迈向full sharding的重要一步

Danksharding的命名来自以太坊研究员Dankrad Feist

1. 扩容:进一步扩充Rollup的缓存空间

在proto-danksharding实现后,由于新的交易格式引入了blob,每个区块可以平均额外获得1MB的缓存空间。Danksharking实现后,每个区块额外16MB,最大允许32MB。

2. Data availability:存储和验证策略更高效

相比proto-danksharding要求全节点下载全量数据,Danksharking实现后以太坊节点只需要对blob抽样。Sampling后的数据会分布在全网节点中,并可以组成完成的data blob。

DAS:高效抽样检查

  • 通过纠缠码(erasure coding)帮助全网节点在下载部分数据的情况下更容易发现原始数据的丢失的概率,从而提升安全性

3. 安全性:基本不变

由于每个节点不再保存全量历史数据,从数据可用性、备份和抽样检查的角度出发,安全性由至少一个节点保存全量数据变为多个节点存储部分数据,并最终还原完整数据。

虽然乍一看对单点的依赖安全性远高于对多点的依赖,但是以太坊网络中的节点数量够多,完全可以保证数据备份的需求,因此安全性并不会有很大变化。

4. 新的挑战:对block builder的要求提升

虽然验证者不需要下载并保留全量历史数据,对bandwidth和存储硬件的要求得到了缓解,但是区块创建者仍然需要上传包含全量transaction data的blob数据。

这里简单介绍一下 PBS(proposer/builder separation),参考Dankrad给出PBS在danksharding方案中的应用图:

  • 将负责出块负责人的角色拆分为proposer和builder。最初是为了做anti-MEV设计的提案,在danksharding的设计中为了降低区块创建时对bandwidth的要求。

四、其他sharding方案:Shardeum的动态分片

Shardeum是EVM兼容的layer 1公链, 与以太坊的static sharding方案不同,shardeum通过dynamic state sharding的方案提升底层可扩展性和安全性,同时,天然地保证较高的去中心化程度;

1. Dynamic state sharding

优势

Dynamic state sharding带来最直观的优势在于linear scaling,接入网络的节点可以非常高效的被sharding算法动态分组,并快速响应,提升区块链网络的TPS。在dynamic state sharding的设计中,每个节点会覆盖不同range的address,并且覆盖范围又会有冗余设计以保证高效的sharding和安全性。

场景内实现

抛开生态的复杂度,单从两种技术实现的角度看,dynamic state sharding的难度大于static sharding。可以看出Shardeum的技术团队在sharding的技术层面有很深的积累,团队之前在Shardus technology上的研发也对这条公链的底层技术做出了很大贡献,甚至在项目早期阶段很好的展示了dynamic state sharding所带来的linear scaling。

2. Shardeum综合归纳

产品

将节点划分到不同的group,参考divide and conquer的思路,把计算和存储的workload进行分流,从而允许更高程度的并行处理。因此,可以容纳更多节点加入,进一步提升公链的throughput和去中心化程度。

团队

市场经验丰富,叙事能力超强,对动态分片研究很深。

技术

针对自己的场景设计了合适的sharding方案(dynamic state sharding)和共识的设计(Proof of Stake+ Proof of Quorum),以提升可扩展性为第一目标,保证更高程度的去中心化和安全性。

进度

将在2023-02-02 launch betanet,值得关注。

五、对sharding的思考和展望

  • Sharding是以太坊扩容的长久之计,也是一个价值巨大、意义深远的长期方案。实现sharding的过程中,现有所有方案都可能被不断迭代,包括现在提到的proto-danksharding、danksharding等,值得持续关注;
  • 对sharding大方向的理解很重要,但是每一个实现full sharding过程中的提案所采纳的技术方案(PBS、DAS、multidimensional fee market)同样值得关注,并且我相信也会涌现很多相关的优秀团队和项目;
  • Sharding是对一种扩容技术的统称,但具体落地的方案并不是只有一种。需要认识到不同的公链会有适合自己场景的sharding方案。比如danksharding中的一些设计也只适合以太坊网络,安全性的tradeoff需要大量的节点来抵消;
  • Sharding和其他扩容方案的合理结合对于可扩展性的提升1+1>2。目前的Danksharding并不是自成一派的扩容方案,而是和以太坊生态的其他实现相辅相成的。比如Danksharding和rollup一起,为以太坊扩容达成更好的效果。
  • 来源:https://www.defidaonews.com/article/6800674
评论

所有评论

推荐阅读

  • 5月16日晚间要闻速递

    1. ETH跌破3,000.00美元

  • 游戏平台Param Labs完成700万美元融资,Animoca Brands领投

    游戏平台Param Labs完成700万美元融资,Animoca Brands领投,Delphi Ventures和Cypher Capital参投。Param Labs的目标是建立一个由其原生PARAM代币管理的游戏生态系统,该代币即将推出。该公司的第一款游戏“Kiraverse”是一款边玩边赚钱的多人射击游戏。

  • 区块链SaaS解决方案AfriDex完成500万美元Pre-Seed轮融资,Endeavor Ventures领投

    总部位于英国伦敦的区块链软件即服务解决方案 AfriDex 宣布完成 500 万美元 Pre-Seed 轮融资,Endeavor Ventures 领投,African Crops Limited、Oldenburg Vineyards 和 Hank Oberoi 参投。AfriDex 目前主要专注于农业市场,通过全面的链上解决方案为供应链参与者提供支持和保护,利用区块链技术实现可追溯性、无摩擦支付、防欺诈交易、经过验证的认证、简化税收和补贴管理。(finsmes)

  • 以太坊上假冒NOT代币发生Rugpull

    据PeckShield监测,以太坊上假冒Notcoin NOT下跌100%。0xE0eB开头地址抛售了 1,645,040,633,338,481.95枚NOT并兑换为93.5枚WETH(价值28.13万美元)。 注:Rugpull代币与合法代币名称相同。

  • 瑞士联邦委员会计划实施加密资产报告框架以提高税收透明度

    瑞士联邦委员会(由七名成员组成,共同领导瑞士政府)打算实施加密资产报告框架(CARF),以提高税收透明度。15 日,联邦委员会发布了一份咨询文件,以调查加入国际税务机关合作打击偷税漏税的自动信息交换(AEOI)的民意。目前,瑞士加入 AEOI 的时间定于 2026 年 1 月 1 日。据悉,经合组织(OECD)为 20 国集团(G20)国家建立了 AEOI 和其他倡议,后来扩大到包括其他国家。瑞士此前在 2014 年采用了经合组织的共同报告标准(CRS),但未纳入监管加密资产及其提供商处理的 CARF。(Cointelegraph)

  • 埃及RWA金融科技初创公司Mnzl完成350万美元种子轮融资,P1 Ventures等领投

    金色财经报道,埃及RWA金融科技初创公司Mnzl宣布完成350万美元种子轮融资,P1 Ventures、Localglobe 和 Ingressive Capital领投,500 Global、Flat6Labs、First Circle Capital、Enza Capital、Beenok和一批未透露姓名的天使投资人参投。Mnzl 允许用户将汽车和房地产等非流动资产转换为流动资产,并将资产上传到数字钱包进行管理。

  • 4月加密项目融资额增环比增长3.8%至13.6亿美元

    Messari 发布 2024 年 4 月融资报告。2024 年 4 月,加密货币项目融资交易额环比增长 3.8%,达到 13.6 亿美元,自 2023 年 8 月低点(3.72 亿美元)以来持续 8 个月的增长趋势;但融资交易数量下降 16.7%,仅 259 笔。4 月网络领域的投资额占总投资额的 37.7%,大额融资项目包括 Monad(融资 2.25 亿美元)等。值得注意的是,4 月比特币 Layer2 项目激增,多个项目从隐身模式中脱颖而出。金融和基础设施领域也出现显著的融资活动,与前几个月相比,资本在各个类别中的分布更加均衡。

  • 摩根士丹利披露其对灰度GBTC投资近2.7亿美元,成为最大持有者之一

    5月16日消息,摩根士丹利(Morgan Stanley)在Q1提交给SEC的13F文件中披露,其通过灰度GBTC向现货比特币ETF投资了2.699亿美元。根据Fintel的数据,这笔投资使其成为继Susquehanna International Group(投资10亿美元)之后,GBTC的最大持有者之一。 摩根士丹利也是众多披露了对现货比特币ETF投资的全球系统重要性银行(G-SIB)之一,其他银行包括加拿大皇家银行、摩根大通、富国银行、法国巴黎银行和瑞银集团。

  • Coinbase计划为澳大利亚自助养老金部门提供服务

    Coinbase计划为澳大利亚的自助养老金部门提供服务。交易所亚太区总经理John O’Loghlen告诉彭博社:“我们不认为这会损害ETF玩家的利益。”Coinbase正在开发一项专门针对澳大利亚自助养老金部门的服务。自2019年3月以来,澳大利亚的自助基金越来越多地持有加密货币。根据澳大利亚税务局的最新数据,近10亿澳元(6.64亿美元)用于加密货币。成千上万的澳大利亚人使用自助养老金基金押注加密货币,甚至在2023年3月据路透社报道,有人损失了数百万美元。

  • 美国立法者:美SEC应在参议院投票前废除加密会计政策

    美国立法者 Wiley Nickel 在 5 月 15 日致美国证券交易委员会(SEC)主席 Gary Gensler 的一封信中表示,美 SEC 应在参议院投票前废除加密会计政策(SAB 121)。保护投资者是美国证券交易委员会的使命,然而 SAB 121 恰恰相反,它阻止了受到严格监管的美国银行大规模托管数字资产。此外,Wiley Nickel 批评美 SEC 在发布 SAB 121 时绕过了规则制定程序,他认为加密会计政策的目的是澄清现有政策,而不是制定新政策。 此前消息,白宫于 5 月 8 日发布「政府政策声明」表示,限制美 SEC 为加密资产维持全面有效的金融监管框架的能力,将带来严重的金融不稳定和市场不确定性。