• Home
  • イーサリアム改善提案(EIP 1884)についての調査

イーサリアム改善提案(EIP 1884)についての調査

Ethereumの改善提案(EIP)についての調査結果をまとめる。
今回はGoEthereum(Geth)のv1.9.3に含まれるEIP1884(トライサイズに依存するオペコードの価格変更)について調査する。(2019/09/11 現在)

参考:Ethereum Improvement Proposals 「EIP 1884: Repricing for trie-size-dependent opcodes

要約

イーサリアムネットワークが成長したことで、特定のオペコードは以前よりも多くのリソースを消費するようになった。この特定のオペコードの価格を変更し、GASの消費とリソースの消費とのバランスをとることの提案。

変更の利点

ブロックのGAS制限を最大化し、操作の価格とリソース消費(CPU時間、メモリなど)の不均衡が解消、処理時間が安定化する。
過剰なブロック処理時間を引き起こす低価格の操作でブロックを埋めることにより、攻撃に使用される可能性が減る。

仕様

ブロックでは N,

  • SLOAD (0x54): 200 GASから 800 GASにオペレーション変更,
  • BALANCE (0x31): 400 GASから 700 GASにオペレーション変更,
  • EXTCODEHASH (0x3F): 400 GASから 700 GASにオペレーション変更,
  • 新しいオペコード SELFBALANCE(0x47)の導入.
    • SELFBALANCE ポップス0 スタックからの引数,
    • SELFBALANCE 現在のアドレスの balance をスタックにプッシュ,
    • SELFBALANCE 価格: GasFastStep は 5 GAS.

変更の根拠

すべてのオペコードで実行時間が測定され10Kブロックで集計された結果が、グラフとして参考サイトに記載されている。これらのグラフで、5M〜6Mおよび6M〜7Mの範囲の上位25個の「重い」オペコードが示されている。

特記事項

  • 変更にはハードフォークが必要となる。
  • 特定の呼び出しはより高価になる。
  • コール(または内部セクション)に対して特定の固定GASコストを前提とする契約は機能しなくなる可能性がある。

ご相談・お見積もり

03-5207-2689