Danksharding 是一种 以太坊 rollup 扩展方法,通过为 rollup 交易提供额外的存储空间来提高交易吞吐量。Danksharding 是以太坊扩展路线图第二阶段(称为 The Surge)的关键特性。[1]
以太坊 是 区块链 应用程序最受欢迎的网络之一,因此这给网络带来了巨大的压力。托管许多平台、协议、应用程序和代币会减慢其交易最终性并导致过高的费用。
为了克服这个可扩展性问题,以太坊路线图包括几个升级。通过 合并,以太坊成为一条 权益证明 链,大大降低了其功耗,并为只有在 PoS 网络上才可能实现的创新打开了大门。
为了实现更便宜和更快的交易,网络的一个计划是实施 分片 - 一种通过将庞大的以太坊区块链分成更小的分区来减少网络拥塞和费用的方法。 分片 涉及将 区块链 物理地分成多个部分。但是,分片可能会引入安全风险和数据迁移方面的挑战。
与传统 分片 不同,Danksharding 专注于提高数据可用性和效率,利用数据 blobs 和 KZG 多项式承诺方案来优化大型数据包的处理,特别是对于 rollups。
Danksharding 引入了一种与现有以太坊 layer 2 解决方案通信的方式,这比 分片 整个以太坊网络更容易实现。它还引入了一种处理每个区块更多数据的方式,允许更复杂的交易,而不会减慢网络速度或提高其 gas 费用,但使 区块链 rollups 更有效率。[3]
Danksharding 以提出它的以太坊研究员 Dankrad Feist 的名字命名。它是旧的以太坊扩展计划 分片 的升级版,该计划建议将 layer one (L1) 分成多个分片链。
开发人员最初计划通过分片来扩展以太坊,这将把 L1 链分成 64 个分片链。每个分片链都将有一组独特的验证者,并将单独处理交易。
然而,随着 rollups 成为扩展以太坊的方式,分片路线图被放弃了。rollups 的引入减少了对分片链的需求,因为交易直接在 rollup 链上处理。此外,以 rollup 为中心的路线图比分片链更简单、更去中心化,并提供更好的安全性。
Danksharding 的引入是为了补充以太坊以 rollup 为中心的路线图。danksharding 最显着的特点是引入了临时数据 blobs,这将允许 rollups 处理更多数据,这意味着更多的交易。[11]
Proto-danksharding 是一个提案,当实施后,将为以太坊网络引入 Danksharding 奠定基础。这个概念是在 以太坊改进提案 4844 (EIP-4844) 中提出的,并以以太坊研究员 Dankrad Feist 和 Proto Lambda 的名字命名。EIP-4844 预计将在 2024 年 3 月 13 日发布的以太坊 Dencun 升级 中实施。
EIP-4844,或 Proto-Danksharding,通过引入一种新的交易类型和一种存储临时数据的方式,为以太坊的未来奠定了基础。[2]
EIP-4488(通过总 calldata 限制减少交易 calldata gas 成本)是一个更早和更简单的尝试,通过两个简单的规则来解决相同的平均情况/最坏情况负载不匹配问题:
硬性限制是确保平均情况负载的更大增加不会导致最坏情况负载增加的最简单方法。gas 成本的降低将大大增加 rollup 的使用,可能会将平均区块大小增加到数百 KB,但包含 10 MB 的单个区块的最坏情况可能性将直接被硬性限制阻止。
EIP-4844 (Proto-danksharding) 而是创建了一种单独的交易类型,可以在大型固定大小的 blobs 中保存更便宜的数据,并限制每个区块可以包含多少个 blobs。这些 blobs 无法从 EVM 访问,并且 blobs 由共识层(信标链)而不是执行层存储。[10][9]
| 平均情况区块大小 | 最坏情况区块大小 | |
|---|---|---|
| 现状 | 85 kB | 1.8 MB |
| EIP-4488 | 未知;如果 calldata 使用量增长 5 倍,则为 350 kB | 1.4 MB |
| EIP-4844 (Proto-danksharding) | 1 MB(如果需要可调整) | 2 MB |
Blobs 是廉价且临时的内存,用于携带有关交易的数据,称为 blob 携带交易。
Blobs 旨在提高交易验证的效率。网络不必验证区块中的每笔交易,而只需确认附加到区块的 blob 携带正确的数据。这些 blob 携带区块中的交易通常与 Layer 2 网络相关,例如 Optimism,它将数据存储在 以太坊 上以分享其安全保证。这些 blobs 的临时性质确保它们不会永久占用以太坊网络上的空间。
Rollups 将能够使用 blobs 来存储其交易数据。这将释放以太坊主链上的空间,并允许 rollups 以更低的成本处理更多交易。EIP-4844 为 blobs 引入了一个新的费用市场。[8]
Blobs 持久保存在信标节点中,而不是在执行层中(例如,在 prysm 中,而不是在 geth 中)。未来的 分片 工作只需要更改信标节点,使执行层能够并行处理其他计划。[9]
KZG 多项式承诺,也称为 Kate-Zaverucha-Groth 承诺方案,是一种密码学原语,允许用户以既绑定又隐藏的方式承诺一个多项式。这意味着承诺不会泄露有关多项式的任何信息,并且一旦做出承诺,就不可能更改多项式。
在 KZG 多项式承诺方案中,证明者首先需要承诺多项式 p(X),然后提交证明 π,以及他的声明 p(z) = y。
承诺稍后可以在任何位置打开。证明者表明多项式在某个位置的值等于声明的值。
KZG 多项式承诺方案于 2010 年推出。[4][5][6][7]
降低交易 (Gas) 费用
Danksharding 的第一个好处是降低了交易费用。以太坊 网络上的高 gas 费用主要是由网络拥塞引起的。当大量用户访问以太坊网络上的 区块链 应用程序和平台时,就会发生这种情况。以太坊是大多数 dApps 的所在地,这意味着网络拥塞是用户经常面临的问题。通过允许网络更轻松地处理 rollups,danksharding 将帮助以太坊避免拥塞。这将改善更广泛的以太坊网络上的 gas 费用——而不仅仅是使用 layer two 链。[2]
更快的交易
Danksharding 的另一个好处是,它允许以太坊处理交易的速度比以前快得多。通过引入一种临时存储数据的方式,它可以帮助网络的节点。以前,每个节点都会存储区块链历史记录的完整副本,这是一个沉重的负担。有了 Danksharding,节点存储和处理的数据要少得多,从而使它们能够更有效地工作。这意味着用户的交易速度会快得多。[2]