Ethreumにおけるガス(Gas)の仕組み(EIP1559)
Gasのイメージ
ブロックチェーンは電気の通っていない「自動販売機」のようなものだと考えられます。その自動販売機で飲み物を購入するためには、①電気を供給する、②飲み物を購入するという操作をする必要があります。この電気がガスの概念に近いと思っています。
トランザクションにおけるGas代の決定の歴史
ファーストプライスオークション (2021年8月4日以前)
ユーザーの設定できる項目はGas Priceのみを設定することができるので、ミンター(txをブロックに入れる人)は基本的にGas Priceが高い順に採用してミントしていくことになります。
メリット
- ユーザーの設定が簡単
デメリット
- 混雑具合によるガス代の相場をユーザーが理解しないといけないため、手数料の過払いやGas Priceが低すぎて再度トランザクションを送る必要が出る。
EIP1559 (2021年8月4日以降)
ファーストプライスオークションの問題点は「ブロックチェーンの混雑具合と手数料をまとめて指定しないといけない」ことでした。そのため、混雑具合によるガス代(Base Fee)と手数料(Priority Fee)を分けることでユーザーが手数料を大幅に払わないようにしました。
メリット
- ユーザーの過払いが減る
- ユーザーのtxの送り直しが減る
デメリット
- ミンターの収益が減る
EIP1559の仕組み
EIP1559では、以下の概念が新しく生まれました。
- Base Fee Per Gas
- Priority Fee Per Gas
- Max Fee Per Gas
ユーザーが設定できるのは、以下の2つ
①Max Priority Fee Per Gas
②Max Fee Per Gas
EIP1559によるガス代の決まり方
①Base Fee Per Gasの決定
Base Fee Per Gasは、混雑具合によって上下12.5%で振れます。
②確定
Base Fee Per Gas + Priority Fee Per Gasと、Max Fee Per Gasで、小さい方がそのtxのガス代として決まります。
このことから、ユーザーの設定する①Max Priority Fee Per Gasは、どのくらい急いで入れたいかを決めるアクセルの役割を、Max Fee Per Gasはとはいえ、この金額ならやめておきたいブレーキの役割を担っていると思います。
応用:絶対に入れたいtxの作り方
このことから、Base Fee Per GasとPriority Fee Per GasをMax Fee Per Gasにすることで、実質的にブレーキを効かない状態にすることができるので、ほぼtxが通るようになります(急いで入れたい場合は、Priority Fee Per Gasをめちゃくちゃ高くするなどの方法もあり)
Discussion