交易数据 Gas 成本降低

该提案旨在将以太坊Calldata的非零字节gas成本从68降低到16,以提高链上和Layer 2的可扩展性,并为无状态客户端的未来发展奠定基础。它通过引用Sompolinsky和Zohar等人的网络安全与延迟模型,从理论上分析了降低成本对网络延迟的影响,并计划通过实证测试来验证模型并确定具体值。

简单摘要

我们提议将 Calldata(GTXDATANONZERO)的 Gas 成本从目前的每字节 68 Gas 降低到每字节 16 Gas,并以数学建模和经验估计为依据。数学模型是 Sompolinsky 和 Zohar [1] 以及 Pass, Seeman 和 Shelat [2] 的著作中使用的模型,它将网络安全与网络延迟关联起来。我们将 (1) 使用该模型评估降低 Calldata Gas 成本对网络延迟的理论影响,(2) 经验性地验证该模型,以及 (3) 根据我们的发现提出建议的 Gas 成本。

动机

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

  • Layer 2 可扩展性:Layer 2 扩容解决方案可以通过将存储和计算移出链下以提高可扩展性,但通常会引入数据传输。
    • STARKs 和 SNARKs 等证明系统使用单一证明来证明大规模计算的计算完整性,例如,处理大量交易的计算。
    • 一些解决方案使用欺诈证明,这需要传输 Merkle 证明。
    • 此外,Layer 2 的一个可选数据可用性解决方案是通过 Calldata 将数据放置在主链上。
  • 无状态客户端:相同的模型将用于确定无状态客户端制度下状态访问的价格,这将在 State Rent(版本 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 各自的影响,假设它们的影响不同。这可能与 Layer 2 可扩展性和无状态客户端(上述理由 2、3)特别相关,因为与这些目标相关的大部分 Calldata 是 Merkle 认证路径,它们具有较大的 D_t 分量但相对较小的 D_p 值。

测试用例

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

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

参考实现

Parity Geth

参考文献

[1] Yonatan Sompolinsky, Aviv Zohar: Secure High-Rate Transaction Processing in Bitcoin. Financial Cryptography 2015: 507-527

[2] Rafael Pass, Lior Seeman, Abhi Shelat: Analysis of the Blockchain Protocol in Asynchronous Networks, ePrint report 2016/454

[3] Christian Decker, Roger Wattenhofer: Information propagation in the Bitcoin network. P2P 2013: 1-10

[4] Vitalik Buterin: Uncle Rate and Transaction Fee Analysis

版权

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

  • 原文链接: github.com/nerolation/EI...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Nerolation
Nerolation
江湖只有他的大名,没有他的介绍。