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

原文作者:YihanXu

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

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

Sharding?从数据可用性角度扩容,而?rollup?主要从执行层面扩容,一起缓解主网拥堵问题;我认为?sharding?可能是突破区块链不可能三角的一次尝试。

下面这张以太坊区块大小的走势图可以从另一个角度说明数据层面扩容的必要性。从创世区块开始,以太坊从底层架构到上层应用都在不断地快速迭代,但平均区块大小仍为?90?Kb?左右,最高点也没有质的突破。虽然?Rollup?从计算层切入,解决以太坊拥堵问题,但性能仍然受制于?layer1?的数据存储能力。

由于实现过程的复杂度和安全性考虑,以太坊开发团队将?sharding?分成了多个阶段,其中就包括最近提到的?proto-danksharding?和?danksharding。整个过程将会是一个历时数年的更新;

在目前的以太坊的数据存储模式下,只有少数特定高配置的机器可以加入网络成为节点,而?fullsharding?之后?ethereum?不再需要每个节点都保存全部数据,在降低主网数据存储成本的同时加强了安全性。

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

EIP-4844=Proto-Danksharding;

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

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

每个?transaction?最多挂?2?个?blob;

每个?block?理想状态包含?8?个?blob,约为?1?MB,最多包含?16?个?blob,约为?2?MB;

Blob?不需要像?calldata?一样作为?historylog?被永久存储;

相比?danksharding,节点还是需要对完整的?DA?进行验证。

2.Blob-carryingtransaction?解读

给?transaction?挂上?blob

作用

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

成本

Datablob?的设计初衷是支持?rollup高通量的交易,相比同等大小的?calldata,blob?的成本将会降低很多。因此,rollup?在维持数据可用性上花费的?gas?相比之前会显著降低。

容量

每个?blob?的大小约为?125?kB。

3.Blob-carryingtransaction?的价值和挑战

价值

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

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

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

根据?EIP-4844?的设计,每个?slot?正常情况下约为?1MB,因此每年增加的数据量为:?1MB/block*5block/min*43200min/month*12month/year=?2.47TBperyear

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

解决方案

从短期扩容效果看,由于每个节点仍然需要储存全量历史数据,在实现?EIP-4844?的同时,对一段时间窗以外的?blob进行自动删除;

从?sharding?的长期利益看,实现?EIP-4444?,即节点不需要存储全量历史数据,而是只需要参照?historyexpiry,存储特定时间之后的数据;

这两种解决方案从不同程度上缓解了?blob-carryingtransaction?在存储空间上的?tradeoff。

4.KZGCommitment

KZGCommitment?是?EIP-4844?中采用的多项式承诺方案

解析?KZGcommitment

KZG?是作者?AniketKate,GregoryM.Zaverucha?和?IanGoldberg?姓氏的缩写,他们在?2010?年发表了多项式承诺方案论文“Constant-SizeCommitmentstoPolynomialsandTheirApplications”,并且这个方案在?plonk-style?的?zk-snark?协议中有很广泛的应用。

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

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

KZGcommitment?的流程如下:

Prover:提供证明,计算?data?的?commitment,prover?无法改变给定的多项式,并且用于证明的?commitment?只对当前这一个多项式有效;

Verifier:接收?prover?发送的?commitmentvalue?并进行验证,确保?prover?提供了有效的证明。

KZGCommitment?的优势

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

成本

KZGcommitment?具备快速验证、复杂度相对更低、简洁的特点;

不需要提交额外的?proof,因此成本更低、更省?bandwidth;

数据触达所需的?Pointevaluationprecompile?可以获得更低的成本。

安全

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

更兼容

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

5.KZGCeremony(trustedsetup)

KZGCeremony?是为?KZGCommitment?提供?trustsetup,目前吸引了超过?20,?000participants?的参与和贡献,已经成为历史上最大规模的?trustsetup。

最近社区参与热情高涨的?KZGCeremony?就是为?EIP-4844?采用的?KZGcommitment?提供?trustsetup;

KZGCeremony?的流程

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

trustsetup

EIP-4844?中采用了一种常见的?multi-participanttrustsetup,即?powers-of-tau;

遵循?1-of-N可信模型,不管多少人参与?generatingsetup?的过程,只要有一个人不泄漏自己的生成方式,可信初始化就是有效的;

必要性

KZGcommitment?的?trustsetup?可以简单理解为:生成一个在每次执行?cryptographicprotocol?时需要依赖的一个参数,类似于?zk-snark?需要可信初始化;

Prover?在提供证明时,KZGcommitmentC=f(s)g?1?。其中?f?是评估函数,s?就是?KZGtrustedsetup?最终获得的?finalsecret;

可以看出?finalsecret?是生成多项式承诺的核心参数,而作为获取这个核心参数的可信流程,这次?KZGCeremony?对于整个?sharding?的实现非常重要。

6.EIP-4844?带来的变化

Rollup

参考?ethresear?上给出的示意图,rollup?需要将?statedelta、KZGcommitment?的?versionedhash?包含在?calldata?中进行提交

可以发现不同的是,calldata?只包含一些数据量小的,比如?statedelta、KZGcommitment,而将包含大量交易数据的?transactionbatch?放到了?blob?里。

有效降低成本,放?calldata?里很贵;

降低对区块空间的占用

安全性

Dataavailability:Blob?存储在信标链上,等同于?layer1?的安全性;

历史数据:节点不会只会将?blob?存储一段时间,需要?layer2rollup?做永久数据存储,因此安全性依赖于?rollup。

成本

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

同时?EIP-4844?引入了?blobfee;

Gas?和?blob?将会分别有可调节的?gasprice?和?limit;

Blob?的收费单元还是?gas,gasamount?随?traffic?变动,以此维持每个?block?平均挂?8?个?blob?的目标

Precompile?的实现

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

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

Pointevaluationprecompile

证明多个?commitments?指向同一数据;

主要针对?zk-rollup,rollup?需要提供?2?种?commitments:1.KZGcommitment;2.zk-rollup?本身的?commitment;

对于?optimisticrollup,大多数已经采用了?multi-roundfraudproof?的机制,finalroundfraudproof?所需的数据量较小。因此,采用?pointevaluationprecompile?能达到更低的成本

Blobverificationprecompile

证明?versionedhash?和?blob?是有效对应的;

optimisticrollup?在提交欺诈证明时需要?access?全量数据,因此先验证?versionedhash?和?blob?合法,再进行?fraudproofverification

三、Danksharding:迈向?fullsharding?的重要一步

Danksharding?的命名来自以太坊研究员?DankradFeist

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

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

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

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

DAS:高效抽样检查

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

3.安全性:基本不变

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

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

4.新的挑战:对?blockbuilder?的要求提升

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

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

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

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

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

1.Dynamicstatesharding

优势

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

场景内实现

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

2.Shardeum?综合归纳

产品

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

团队

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

技术

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

进度

将在?2023-02-02launchbetanet,值得关注。

五、对?sharding?的思考和展望

Sharding?是以太坊扩容的长久之计,也是一个价值巨大、意义深远的长期方案。实现?sharding?的过程中,现有所有方案都可能被不断迭代,包括现在提到的?proto-danksharding、danksharding?等,值得持续关注;

对?sharding?大方向的理解很重要,但是每一个实现?fullsharding?过程中的提案所采纳的技术方案同样值得关注,并且我相信也会涌现很多相关的优秀团队和项目;

Sharding?是对一种扩容技术的统称,但具体落地的方案并不是只有一种。需要认识到不同的公链会有适合自己场景的?sharding?方案。比如?danksharding?中的一些设计也只适合以太坊网络,安全性的?tradeoff?需要大量的节点来抵消;

Sharding?和其他扩容方案的合理结合对于可扩展性的提升?1?1>2?。目前的?Danksharding?并不是自成一派的扩容方案,而是和以太坊生态的其他实现相辅相成的。比如?Danksharding?和?rollup?一起,为以太坊扩容达成更好的效果。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-8:423ms