Polygon zkEVM的gas定价

Posted mutourend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Polygon zkEVM的gas定价相关的知识,希望对你有一定的参考价值。

1. 引言

所有的zkEVM都存在一个有趣的问题:

  • 如何给gas定价?

在Ethereum Virtual Machine (EVM)中,gas通过为每个计算设置economic fee,来保持网络安全。恶意行为,如拒绝服务(DoS)攻击,通过设置执行交易的价格来抑制。gas limit定义了交易可以执行的计算步骤总数。

gas用于反映节点所消耗的(带宽、存储、计算)资源,但是在生成zkEVM proof的过程中,某些EVM opcodes的证明 要比 在CPU中re-execute 昂贵。
换句话说,就是在EVM中某些低gas fee的计算,在zkEVM中证明时,可能会变得非常昂贵并降低网络速度。

zkEVM中的opcode定价,有3个选项:

  • 1)保持与原有的EVM gas定价策略一致:

    • 有利于EVM-equivalency,开发者可无缝将其dapp部署在zkEVM。
    • 但是,存在潜在的DDOS攻击。原因在于:EVM中某些低gas fee计算,在zkEVM中证明将非常昂贵。将足够多的低gas fee opcode压缩到一个EVM块中,但在zkEVM中的证明是高成本的,并且网络可能会经历严重的延迟。如,在zkEVM中,Keccak hash证明是昂贵的,将EVM区块中填满“EXTCODESIZE”仅需100 gas,但会导致type-1 zkEVM执行大量Keccak hash,从而导致潜在的DoS。
  • 2)在zkEVM中重新给opcode定价。
    重新定价的问题在于:某些合约依赖于现有的gas策略来工作——如“GASLEFT”或“CALLSTIPEND”。
    这会给dApps引入unexpected behavior,给开发者增加不必要的麻烦。

  • 3)保持原有的gas定价策略,同时额外引入DOS缓解机制。

    • 可保留合约的功能,同时不牺牲网络安全性和可靠性。
    • 当前Polygon zkEVM的opcode gas定价与EVM完全一致。
    • Polygon zkEVM引入了配额(quotas)来识别病态交易——如用EXTCODESIZE填充整个块。将其视为额外的安全反射。一个块中只能包含一定数量的Keccak哈希。Polygon zkEVM扫描违反此配额(quotas)的恶意块,有助于确保不会发生昂贵且网络缓慢的spam。
      由于Polygon zkEVM证明器速度极快,Polygon zkEVM中L1 gas机制和实际资源消耗之间的计算成本差异仍然很小。【在zkASM编写的zkROM中为各opcode引入了ZK-COUNTERS计数。可参看Jordi 2022年10月分享Technical Details of the Opcode Compatible zkEVM by Jordi Baylina | Devcon Bogotá。】
    • 这是最好的选项:无缝设计集成加上防止spam的机制。

参考资料

[1] Polygon zkEVM的gas定价

附录:Polygon Hermez 2.0 zkEVM系列博客

以上是关于Polygon zkEVM的gas定价的主要内容,如果未能解决你的问题,请参考以下文章

Polygon zkEVM Prover

Polygon zkEVM网络节点

Polygon zkEVM节点代码解析

Polygon zkEVM——Hermez 2.0简介

Polygon zkEVM可验证计算简单状态机示例

Polygon zkEVM zkROM代码解析