现在,缩放。
这里有两个部分:短期和长期。
我在其他地方写过短期扩展。基本上:
-
块级访问列表(来自 Glamsterdam)允许并行验证块。
-
ePBS(即将在 Glamsterdam 推出)具有许多功能,其中之一是使用每个时隙的大部分(而不是仅仅几百毫秒)来验证块变得安全
- Gas 重新定价可确保运营的 Gas 成本与其执行所需的实际时间(加上它们施加的其他成本)保持一致。我们还早期涉足多维气体,这确保了不同的资源有不同的上限。两者都允许我们使用更大的时隙来验证块,而不必担心异常情况。
多维气体有一个多阶段路线图。
首先,在 Glamsterdam,我们将“状态创建”成本与“执行和调用数据”成本分开。如今,一个将插槽从非零更改为非零的 SSTORE 需要花费 5000 个 Gas,一个将零更改为非零的 SSTORE 需要花费 20000 个 Gas。Glamsterdam 的其中一个重新定价大大增加了额外的金额(例如增加到 60000);我们这样做的目标+气体限制增加是为了扩展执行能力,而不是扩展状态大小容量,原因我之前写过(
https://ethresear.ch/t/hyper-scaling-state-by-creating-new-forms-of-state/24052)。因此,在格拉姆斯特丹,SSTORE 将收取 5000 个“常规”天然气和(例如)55000 个“国家创造天然气”。
状态创建 Gas 不计入约 1600 万笔交易 Gas 上限,因此创建大型合约(比现在更大)是可能的。
一个挑战是:这在 EVM 中如何工作? EVM 操作码(GAS、CALL...)均假定为一维。这是我们的方法。我们维护两个不变量:
-
如果您使用 X 气体进行调用,该调用将具有可用于“常规”或“状态创建”或其他未来维度的 X 气体
-
如果你调用 GAS 操作码,它会告诉你你有 Y 气体,然后你用 X 气体进行调用,你仍然至少有 Y-X 气体,可用于任何函数,在调用后进行任何后期操作
我们所做的是,创建 N+1 个气体“维度”,默认情况下 N=1(状态创建),以及我们称之为“储层”的额外维度。默认情况下,EVM 执行会消耗“专用”维度(如果可以),否则会从存储库消耗。所以例如。如果你有(100000 状态创建气体,100000 个储层),那么如果你使用 SSTORE 创建新状态 3 次,你剩余的气体将变为 (100000, 100000) -> (45000, 95000) -> (0, 80000) -> (0, 20000)。气体返回储层。 CALL 传递来自储层的指定气体量,以及所有非储层气体。
后来,我们切换到多维度定价,不同维度可以有不同的浮动gas价格。这为我们提供了长期的经济可持续性和最优性(参见
https://vitalik.eth.limo/general/2024/05/09/multidim.html)。储库机制解决了文章最后的子调用问题。
现在,对于长期扩展,有两个部分:ZK-EVM 和 blob。
对于 blob,计划是继续在 PeerDAS 上进行迭代,并使其达到最终的最终状态,理想情况下它可以处理约 8 MB/秒的数据。足以满足以太坊的需求,而不是试图成为某种全球数据层。如今,blob 用于 L2。未来,计划是让以太坊区块数据直接进入 blob。这对于使某人能够验证超大规模以太坊链而无需亲自下载和重新执行它是必要的:ZK-SNARK 消除了重新执行的需要,并且 blob 上的 PeerDAS 允许您验证可用性而无需亲自下载。
对于 ZK-EVM,目标是分阶段提高我们依赖它的“舒适度”:
-
允许您作为 ZK-EVM 证明者参与的客户端将在 2026 年出现。它们的安全性不足以允许网络在其上运行,但是例如。 5%的网络依赖他们就可以了。 (如果 ZK-EVM 崩溃,您不会被削减,您只会面临在无效区块上构建并损失收入的风险)
-
到 2027 年,我们将开始建议更多的网络在 ZK-EVM 上运行,同时将全部重点放在形式验证、最大限度地提高安全性等上。即使运行 ZK-EVM 的网络的 20% 也能让我们大大提高 GasLimit,因为它允许 Gas 限制大大增加,同时为单独的质押者提供一条便宜的路径,无论如何,单独质押者的比例都低于 20%。
-
准备好后,我们将进行 5 中 3 的强制证明。为了使区块有效,它需要包含来自不同证明系统的 5 种证明中的 3 种。至此,我们预计所有节点(需要索引的节点除外)都将依赖 ZK-EVM 证明。
-
不断改进 ZK-EVM,并使其尽可能稳健、经过正式验证等。这也将开始涉及任何虚拟机更改工作(例如 RISC-V)
