跳转至主要内容

页面最后更新: 2024年7月24日

Danksharding

Danksharding 是让以太坊成为真正的可扩展区块链的方案,但要实现这个方案,需要进行一系列协议升级。 Proto-Danksharding 是这个过程中的一个中间步骤。 两者都是为了让用户在二层网络上的交易尽可能便宜,并将以太坊扩展到每秒处理 >100,000 次交易。

什么是 Proto-Danksharding?

Proto-Danksharding,也称为 EIP-4844(opens in a new tab),是一种让卷叠以更经济的方式向区块添加数据的方法。 这一名称来自提出这个想法的两位研究人员:Protolambda 和 Dankrad Feist。 以往,卷叠在降低用户交易费用方面存在局限性,因为它们是将交易发布在 CALLDATA 中。

这是一种昂贵的方法,因为数据经过所有以太坊节点处理,并且永远存在于链上,即使卷叠只在很短的时间内需要这些数据。 Proto-Danksharding 引入了可以发送并附加到区块上的数据二进制大对象。 这些二进制大对象中的数据不可通过以太坊虚拟机访问,并且在固定的时间(在写入时设置为 4096 个时段,或大约 18 天)后会自动删除。 这意味着卷叠可以更经济的方式发送其数据,节省的费用会让终端用户的交易更加便宜。

如何验证二进制大对象中的数据?

卷叠将其执行的交易发布在数据二进制大对象中。 它们也发布一个对数据的“承诺”。 为此,他们会对数据拟合一个多项式函数。 然后,这个函数可以在各个点计算。 例如,如果我们定义一个非常简单的函数 f(x) = 2x-1,那么可以在 x = 1x = 2x = 3 时计算这个函数,得到结果为 1, 3, 5。 证明者对数据应用相同的函数,并在相同的点计算。 如果原始数据被更改,函数就不会相同,因此在每个点计算出来的值也不会相同。 在实际操作中,承诺和证明会更加复杂,因为它们会被包裹在加密函数中。

什么是 KZG?

KZG 代表 Kate-Zaverucha-Goldberg - 是三位原创作者(opens in a new tab)名字的缩写。他们提出了一项将数据二进制大对象缩减为小型密码“承诺”(opens in a new tab)的方案。 卷叠提交的数据二进制大对象必须经过验证,以确保卷叠没有错误行为。 这需要证明者重新执行二进制大对象中的交易,以检查承诺是否有效。 从概念上讲,这与执行客户端使用默克尔证明检验一层网络上的以太坊交易是否有效的方式相同。 KZG 是一种将多项式方程拟合到数据上的替代证明。 "承诺"在某些保密数据点处计算多项式。 证明者将在数据上拟合相同的多项式,并使用相同的数值计算它,以检验结果是否相同。 这种验证数据的方式与零知识技术兼容,一些卷叠在使用零知识技术,最终以太坊协议的其他部分也会使用。

什么是 KZG 仪式?

KZG 仪式是指以太坊社区的许多人共同生成一个随机的私密数字字符串,用于验证一些数据的一种方式。 这个数字字符串必须是未知的,不能由任何人重新创建,这一点非常重要。 为了确保做到这一点,每个参加仪式的人都会收到前一位参与者发送的一个字符串。 然后,他们会创建一些新的随机值(例如:通过允许他们的浏览器测量鼠标的移动)并将这些值与前面的值混合在一起。 之后,他们将这个值发送给下一位参与者并将其在本地计算机中销毁。 在这个仪式中,只要有一个人诚实地执行了这一过程,攻击者就无法知道最终值是什么。

EIP-4844 KZG 仪式曾经公开过,成千上万的人参与其中,并添加了自己的熵(随机值)。 总计贡献超过 14 万次,成为此类型全世界最大的一次仪式。 如果想破坏这个仪式,那么必须 100% 的参与者都不诚实。 从参与者的角度来看,如果他们知道自己是诚实的,就不需要相信其他任何人,因为他们知道自己确保了仪式的安全性(他们个人满足了,N 个参与者至少有一个诚实的要求)。

Danksharding 和 Proto-Danksharding 都没有采用传统的旨在将区块链分成多个部分的“分片”模式。 分片链不再是路线图的一部分。 相反,Danksharding 使用跨数据块的分布式数据采样来扩展以太坊。 这实施起来要简单得多。 这种模式有时被称为“数据分片”。

什么是 Danksharding?

Danksharding 全面实现了从 Proto-Danksharding 开始的卷叠扩展。 Danksharding 将为以太坊带来大量空间,以便卷叠堆放他们的压缩交易数据。 这意味着以太坊能够轻松支持数百个单独卷叠,并实现每秒处理数百万次交易。

它的实现方式是将附加到区块的二进制大对象从 Proto-Danksharding 阶段的 6 个增加至完整 Danksharding 时的 64 个。 所需的其余变更都是对共识客户端的运行方式进行更新,使它们能够处理新的较大二进制大对象。 其中的一些变更已经由于 Danksharding 之外的目的列入路线图。 例如,Danksharding 要求贯彻执行提议者与构建者分离的理念。 这一升级会将构建区块与提议区块的工作分开由不同的验证者完成。 同样,Danksharding 还要求进行数据可用性采样,但开发不存储大量历史数据的超轻量级客户端(“无状态客户端”)也要求这样做。

当前进展

完全实现 Danksharding 还需要几年时间。 与此同时,KZG 仪式在经过超过 14 万份贡献后结束,Proto-Danksharding 的 EIP(opens in a new tab) 也已成熟。 该提案已在所有测试网中全面实施,并于 2024 年 3 月随着 Cancun-Deneb(“Dencun”)网络升级在主网上线。

延伸阅读

本文对你有帮助吗?