Alert Source Discuss
Standards Track: Core

EIP-2028: 降低交易数据 Gas 成本

Authors Alexey Akhunov (@AlexeyAkhunov), Eli Ben Sasson <eli@starkware.co>, Tom Brand <tom@starkware.co>, Louis Guthmann <louis@starkware.co>, Avihu Levy <avihu@starkware.co>
Created 2019-05-03

简单总结

我们建议将 Calldata (GTXDATANONZERO) 的 gas 成本从当前每字节 68 gas 降低到每字节 16 gas,并以数学建模和经验估计为后盾。该数学模型是 Sompolinsky 和 Zohar [1] 以及 Pass、Seeman 和 Shelat [2] 的著作中使用的模型,它将网络安全与网络延迟相关联。我们将 (1) 使用该模型评估较低的 Calldata gas 成本对网络延迟的理论影响,(2) 通过经验验证该模型,以及 (3) 根据我们的发现确定建议的 gas 成本。

动机

接受此提案并降低 Calldata 的 gas 成本有几个主要好处 链上可扩展性:一般来说,更高的 Calldata 带宽可以提高可扩展性,因为更多数据可以容纳在单个区块中。

  • 第二层可扩展性:第二层扩展解决方案可以通过将存储和计算转移到链下来提高可扩展性,但通常会引入数据传输。
    • 诸如 STARK 和 SNARK 之类的证明系统使用单个证明来证明大型计算的计算完整性,例如,处理大量交易的计算。
    • 一些解决方案使用欺诈证明,这需要传输 Merkle 证明。
    • 此外,第二层的一个可选的数据可用性解决方案是通过 Calldata 将数据放置在主链上。
  • 无状态客户端:相同的模型将用于确定无状态客户端机制的状态访问价格,该机制将在状态租金(从版本 4 开始)中提出。 在那里,预计状态访问操作的 gas 成本将大致与传输“区块证明”所需的额外带宽以及验证这些区块证明所需的额外处理成正比增加。

规范

每个非零字节的 gas 成本从 68 降低到 16。零字节的 Gas 成本不变。

理由

粗略地说,降低 Calldata 的 gas 成本可能会导致更大的区块,这会增加与网络上数据传输相关的网络延迟。这只是完整网络延迟的一部分,其他因素包括区块处理时间(以及存储访问,作为其中的一部分)。增加网络延迟会降低攻击网络的成本,从而影响安全性,因为在任何给定时间点,更新到区块链最新状态的节点都更少。

Yonatan Sompolinsky 和 Aviv Zohar 在 [1] 中提出了一个优雅的模型,将网络延迟与网络安全相关联,Rafael Pass、Lior Seeman 和 Abhi Shelat 的工作 [2] 也使用了该模型。我们在下面简要解释此模型,因为我们将对其进行理论研究并通过经验测量对其进行验证,以得出建议的 Calldata 较低 gas 成本。

该模型使用以下自然参数:

  • lambda 表示区块创建速率 [1/s]:我们将寻找 PoW 解的过程视为速率为 lambda 的泊松过程。
  • beta - 链增长率 [1/s]:将新区块添加到最重链的速率。
  • D - 区块延迟 [s]:挖掘新区块到所有矿工接受该区块(所有矿工切换到在该区块上挖掘)之间经过的时间。

Beta 下限

请注意,lambda => beta,因为并非所有找到的区块都会进入主链(就像叔块的情况一样)。 在 [1] 中表明,对于使用最长链规则的区块链,可以将 beta 从下方限制为 lambda/ (1+ D * lambda)。 此下限在网络拓扑是一个集团的情况下成立,在该集团中,每对节点之间的延迟为 D,即最大可能的延迟。 记录 beta 的下限和上限,我们得到

_lambda_ >= _beta_ >= _lambda_ / (1 + D * _lambda_)               (*)

请注意,作为一种健全性检查,当没有延迟 (D=0) 时,beta 等于 lambda,正如预期的那样。

网络的安全性

试图重组主链的攻击者需要以高于 beta 的速率生成区块。 在固定 PoW 难题的难度级别后,系统中的总哈希率与 lambda 相关。 因此,beta / lambda 被定义为系统的效率,因为它衡量用于生成网络主链的总哈希能力的百分比。

重新排列 (*) 给出延迟方面效率的以下下限:

_beta_ / _lambda_ >= 1 / (1 + D * _lambda_)                 (**)

delay 参数 D

网络延迟取决于挖掘节点在网络中的位置和当前的网络拓扑(动态变化),因此很难直接测量。 以前,Christian Decker 和 Roger Wattenhofer [3] 表明传播时间随区块大小缩放,Vitalik Buterin 表明叔块率(与效率 (**) 衡量标准密切相关)也随区块大小缩放 [4]。

但是,延迟函数可以分解为两部分 D = D_t + D_p,其中 D_t 是由区块传输引起的延迟,而 D_p 是由节点处理区块引起的延迟。 我们的模型和测试将检查 Calldata 对 D_tD_p 的影响,假设它们的影响不同。 这可能与第二层可扩展性和无状态客户端(上述理由 2、3)特别相关,因为与这些目标相关的大多数 Calldata 都是具有较大 D_t 分量但 D_p 值相对较小的 Merkle 身份验证路径。

测试用例

为了提出 calldata 的 gas 成本,我们将进行两种类型的测试:

  1. 在以太坊主网上进行的网络测试,用于估计增加区块大小对 D_pD_t、整体网络延迟 D 和效率比率 (**) 以及不同矿池之间的延迟的影响。 这些测试将包括对现有数据的回归测试,以及引入极端场景的压力测试。
  2. 在单个节点上进行的本地测试,并测量处理时间作为 Calldata 数量和一般计算限制的函数。

参考实现

Parity Geth

参考文献

[1] Yonatan Sompolinsky, Aviv Zohar: 比特币中安全的高速交易处理。 金融密码学 2015:507-527

[2] Rafael Pass, Lior Seeman, Abhi Shelat: 异步网络中区块链协议的分析, ePrint report 2016/454

[3] Christian Decker, Roger Wattenhofer: 比特币网络中的信息传播。 P2P 2013:1-10

[4] Vitalik Buterin: 叔块率和交易费用分析

版权

通过 CC0 放弃版权及相关权利。

Citation

Please cite this document as:

Alexey Akhunov (@AlexeyAkhunov), Eli Ben Sasson <eli@starkware.co>, Tom Brand <tom@starkware.co>, Louis Guthmann <louis@starkware.co>, Avihu Levy <avihu@starkware.co>, "EIP-2028: 降低交易数据 Gas 成本," Ethereum Improvement Proposals, no. 2028, May 2019. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-2028.