酷玩网

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

linx
欧意最新版本

欧意最新版本

欧意最新版本app是一款安全、稳定、可靠的数字货币交易平台。

APP下载  官网地址
概览 在本次报告中,您将深入探索以下内容: - EIP-4844 - Proto-danksharding - Danksharding - KZG Commitment - KZG Ceremony - 动态状态分片 - 您是否还记得最近社区中热议的KZG Ceremony?这场仪式究竟有何意义? - 简要来说,KZG Ceremony是EIP-4844实施过程中不可或缺的初始化步骤,而EIP-4844则是推动以太坊分片化进程的先行版本。 一、Sharding:以太坊扩容的终极方案 Sharding通过提升数据可用性来实现扩容,而rollup则专注于提升执行层面的性能,两者共同缓解主网的拥堵问题。我认为Sharding可能是突破区块链不可能三角的首次尝试。 以下这张以太坊区块大小的走势图从数据层面展示了扩容的必要性。自创世区块以来,以太坊从底层架构到上层应用都在不断快速迭代,但平均区块大小仍维持在约90KB左右,最高点也未实现质的飞跃。尽管Rollup从计算层切入解决了以太坊拥堵问题,但性能仍然受制于layer 1的数据存储能力。 由于实现过程的复杂性和安全性考量,以太坊开发团队将Sharding分阶段实施,其中包括近期提到的proto-danksharding和danksharding。整个过程预计将持续数年。 在目前以太坊的数据存储模式下,只有少数配置较高的机器可以成为网络节点。而full sharding后,以太坊不再要求每个节点保存全部数据,这不仅降低了主网数据存储成本,还增强了安全性(降低成为节点的门槛,提升去中心化程度,同时降低被攻击的风险)。 二、EIP-4844:短期高效,Sharding的精简先行版 EIP-4844即Proto-Danksharding Proto来自以太坊研究者的命名 由于Danksharding(下文将详细分析)的实现复杂度高,周期至少以年为单位,因此proto-danksharding作为Danksharding前的扩容方案,主要实现了Danksharding中的交易格式、precompile等设计。 1. Proto-Danksharding概述 Proto-Danksharding引入了一种新的交易类型,即携带blob的交易。Rollup的数据可以通过blob形式以更低成本传输至layer 1,并实现非永久存储。blob的容量远大于当前的calldata,从而更好地支持Rollup上的高TPS。 关于blob: - 每个交易最多携带2个blob; - 理想状态下,每个区块包含8个blob,约为1MB,最多包含16个blob,约为2MB; - Blob无需像calldata一样作为历史日志永久存储; - 相比Danksharding,节点仍需对完整的DA进行验证。 2. Blob-carrying transaction解读 为transaction附加blob(数据单元) 作用 参考Vitalik在提案中的图示,Data blob与当前的calldata类似,Rollup可以通过blob将交易、证明等数据上传至layer 1,以保证数据的可用性。 成本 Data blob的设计初衷是支持Rollup高通量的交易,相比同等大小的calldata(链上存储),blob的成本将大幅降低。因此,Rollup在维持数据可用性上花费的gas相比之前将显著降低。 容量 每个blob的大小约为125KB(事实:当前平均区块大小仅为约90KB)。 3. Blob-carrying transaction的价值和挑战 价值 将blob视为一种缓存,Rollup提交的交易数据以缓存形式存在。降低对存储硬件的要求,为以太坊提供额外的数据扩容并降低gas成本。 挑战:对以太坊节点硬件性能的要求 Ethereum当前平均区块大小仅为约90KB,但一个blob就有约125KB。 根据EIP-4844的设计,每个slot正常情况下约为1MB,因此每年增加的数据量为:1MB/block * 5 block/min * 43200 min/month * 12 month/year = 2.47 TB/year。 每年增加的数据量远超以太坊数据总量,这样的存储方案显然效率低下。 解决方案 从短期扩容效果看,由于节点仍需存储全量历史数据,在实现EIP-4844的同时,对一段时间窗以外的blob(具体的limit time尚未确定,可能是1个月或1年)进行自动删除;从sharding的长期利益看,实现EIP-4444,即节点不需要存储全量历史数据,而是只需参照history expiry存储特定时间之后的数据;这两种解决方案在不同程度上缓解了blob-carrying transaction在存储空间上的权衡。 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:提供证明,计算数据的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(可信设置) KZG Ceremony为KZG Commitment提供可信设置,目前已有超过20,000名参与者参与和贡献,成为历史上规模最大的可信设置。 最近社区参与热情高涨的KZG Ceremony正是为EIP-4844采用的KZG commitment提供可信设置。 KZG Ceremony的流程 参考Vitalik的流程图,任何人都可以作为participants贡献secret并与之前的结果进行混合产生一个新的result,以此类推,通过套娃的形式获得最终的SRS,并协助完成KZG commitment的可信设置。 可信设置 EIP-4844中采用了一种常见的multi-participant可信设置,即powers-of-tau。 遵循1-of-N可信模型,不管多少人参与generating setup的过程,只要有一个人不泄漏自己的生成方式,可信初始化就是有效的。 必要性 KZG commitment的可信设置可以简单理解为:生成一个在每次执行cryptographic protocol时需要依赖的一个参数,类似于zk-snark需要可信初始化。 Prover在提供证明时,KZG commitment C = f(s)g1。其中f是评估函数,s就是KZG可信设置最终获得的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中很贵的数据放入blob;降低对区块空间的占用。 安全性 - 数据可用性:Blob存储在信标链上,等同于layer 1的安全性; - 历史数据:节点不会永久存储blob,需要layer 2 rollup做永久数据存储,因此安全性依赖于rollup。 成本 Proto-Danksharding引入了新的交易类型,低成本数据格式blob的加入无疑会让Rollup的成本进一步降低,取决于实际链上应用和实现进展,优化后Rollup的成本可能降低10倍甚至50倍。 同时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的设计中,每个节点会覆盖不同范围的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中的一些设计也只适合以太坊网络,安全性的权衡需要大量的节点来抵消。 Sharding和其他扩容方案的合理结合对于可扩展性的提升是1+1>2。目前的Danksharding并不是自成一派的扩容方案,而是和以太坊生态的其他实现相辅相成的。比如Danksharding和rollup一起,为以太坊扩容达成更好的效果。 原文作者:Yihan Xu 欧易okex交易平台,欧易okex交易所官网,欧易okex官方下载APP

标签: