中級者用語を調べる
ガス最適化とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 4 分
結論
ガス最適化は、同じ処理をより少ないガスで実行できるようにコントラクトや取引の組み立てを工夫することです。ストレージへの書き込みが突出して高いため、そこを減らす設計が効果の中心になります。利用者側でも、まとめて処理する、混雑時を避けるといった選択で負担を下げられます。
要点
- 同じ処理をより少ないガスで行うための工夫
- ストレージへの書き込みが突出して高い
- 複数の操作をまとめると固定費を分散できる
- 混雑度に応じて同じ処理でも支払額が変わる
定義
コントラクトの実装や取引の組み立てを見直し、同じ結果を得るために消費するガスの量を減らすこと。
ガスの消費量は命令ごとに決まっています。計算やメモリ操作は比較的安く、ストレージへの書き込みは桁違いに高くなります。そのため、同じ値を何度も保存し直すのをやめる、複数の小さな値を1つのスロットにまとめて詰める、といった工夫が大きな差になります。
利用者の側でできることもあります。たとえば10個のNFTを1つずつ送ると、取引ごとに固定の基本料金がかかりますが、一括送金に対応したコントラクトを使えばこれを1回分に抑えられます。承認を都度出すのではなく必要な分だけ出す運用も、回数を減らす方向に働きます。
支払額そのものは混雑度でも変わります。EIP-1559以降、ベース手数料はブロックの使用率に応じて上下するため、急がない処理を空いている時間帯に回すだけで支払いが下がることがあります。ただし、この変動は事前に正確には読めません。
注意点
- · ガスを削るための実装変更が可読性や安全性を下げ、脆弱性の原因になることがある
- · ガス代の見積もりは実行時の状態で変わるため、表示額どおりになるとは限らない
- · 処理が失敗した取引でも、そこまでに消費したガスは返ってこない