ガスとフィー(手数料)
イーサリアムネットワークにとってガスは切り離せないものです。 ガスは車にとってのガソリンのようにいイーサリアムを稼働させるための燃料として使われます。
前提知識
このページをよく理解するためには、まずトランザクション、EVMを読むことをお勧めします。
ガスとは
ガスとは、イーサリアムネットワーク上で特定の操作を実行するために必要な 計算労力を測定する単位のことです。
各トランザクションは実行するために計算リソースを必要とするため、トランザクションにはフィー(手数料)が必要になります。 そこでガスはイーサリアムで正常にトランザクションを行うための手数料として用いられます。
イーサリアム EVMからの図解
実際にはガス代はイーサリアムのネイティブ通貨であるイーサ(ETH)で支払われます。 ガス代は ETH を表す単位の一つである gwei で表されます。gwei は 0.000000001 ETH(10-9 ETH)と等価です。 例えば、0.000000001 ETH の費用がかかるとは、1 gwei かかるということを意味します。 「gwei」という単語自体は「ギガウェイ」を意味し、10 億 wei と同じです。 wei はb-moneyの創始者であるWei Daiか名前を付けられ、ETH の最小単位です。
ロンドンアップグレード前
イーサリアムネットワークのトランザクションフィーの算出方法は、2021 年 8 月のロンドンアップグレードに伴って変更されました。 ロンドンアップグレード前の計算方法を次に示します。
例えば、Alice が Bob に 1 ETH を支払う必要があるとしましょう。 トランザクションでは、ガスリミットは 21,000 ユニット、ガス価格は 200 gwei です。
フィーの総額はガスユニット(リミット)*単位当たりのガス価格
です。 つまり、21,000 * 200 = 4,200,000 gwei
または 0.0042 ETH です。
ロンドンアップグレード後
例えば、Jordan が Taylor に 1 ETH を支払わなければならないとしましょう。 トランザクションでは、ガスリミットは 21,000 ユニット、ベースフィーは 10 gwei です。 Jordan は 2 gwei のチップを追加します。
料金の合計は次のようになります。使用ガスユニット * (ベースフィー + プライオリティフィー)
ここで、ベースフィー
はプロトコルにより設定された値、プライオリティフィー
はバリデータへのチップとしてユーザーが設定した値です。
つまり、21,000 * (10 + 2) = 252,000 gwei
または 0.000252 ETH です。
Jordan が送金すると、1.000252 ETH が Jordan の口座から差し引かれます。 Taylor は 1.0000 ETH を受領します。 バリデータは、0.000042 ETH のチップを受け取ります。 ベースフィーは 0.00021 ETH です。
さらに、Jordan はトランザクションの最大のフィー(maxFeePerGas
)を設定することもできます。 最大フィーと実際のフィーの差額は、Jordan に返金されます。 つまり、返金= 最大フィー - (ベースフィー + プライオリティフィー)
になります。 トランザクションが実行時のベースフィーの「払い過ぎ」を心配することなく、トランザクションに支払う最大金額を設定することができます。
ブロックサイズ
ロンドンアップグレード前は、イーサリアムのブロックサイズは固定されていました。 ネットワーク需要が高い時期には、これらのブロックは全能力を使って稼働していました。 その結果、ブロックに追加されるには、全体の需要が減るのを待たなければならないことが多く、ユーザーエクスペリエンスが損なわれました。
ロンドンアップグレードで、イーサリアムに可変サイズのブロックが導入されました。 各ブロックの目標サイズは 1,500 万ガスですが、ブロックの上限である 3,000 万ガス(目標ブロックサイズの 2 倍)までは、ネットワークの需要に応じてブロックのサイズが増減します。 このプロトコルは、 tâtonnementのプロセスを通じて平均 1,500 万の平衡ブロックサイズを実現します。 つまり、ブロックサイズがターゲットブロックサイズよりも大きい場合、プロトコルは次のブロックのベースフィーを増加させます。 同様に、ブロックサイズがターゲットブロックサイズより小さい場合、プロトコルはベースフィーを減らします。 ベースフィーが調整される金額は、現在のブロックサイズとターゲットまでの差に比例します。