おはようございます、手数料専門家のヒヨコロです。
今日はブロックチェーンの世界の手数料である「ガス代」のことについてお話していきたいと思います。今日の記事を読めばつぎのようなことがわかります。
- ガス代とは何か
- ガス代の決まり方
- ガス代を節約する方法
- トランザクションの通し方
実はブロックチェーンによってガス代はさまざまで、今日はイーサリアムとPolygonのガス代(EIP1559)についてお話します。各OS、各ブラウザによって設定はさまざまかと思いますが、イーサリアムとPolygonではEIP1559という最新の計算方法はデフォルトで取り入られていない場合がありますので、ガス代節約のための最新機能を有効にしたい場合は、メタマスクの「設定(Settings)」⇒「実験的(Experimental)」⇒「Enable Enhanced Gas Fee UI」をオンにしてください。
最新にしない場合もガス代の編集方法は参考になりますので、ちょっと見てみてください。
それではさっそくいってみましょう。🐤
ガス代とは何か
まずはガス代とは何かというところからお話していきます。
ガス代とは、ブロックチェーンの利用手数料です。
以前お話したトークン交換の際にかかる手数料とはまた違います。下の図はトークン交換手数料の説明ですが、これはDEX(分散型取引所)にサービスの利用料として支払う手数料で、Trading Fee(取引手数料)などと呼ばれます。
これとは別に、そもそもブロックチェーンというインフラに支払う基礎的な手数料があり、それがガス代、もしくはトランザクション手数料(Tx Fee)と呼ばれる手数料です。
トランザクションというのはブロックチェーンの世界の注文書みたいなもので、例えばトークンを交換したい時、送金したい時などに発行されます。
なぜそんな手数料がいるのかといいますと、ブロックチェーンは「みんなで資源を出し合って作っている」ものだからです。ブロックチェーンを作っているのは、1台1台のノードと呼ばれるコンピュータです。これらのコンピュータはボランティアで参加しているわけではなく、きちんと報酬を得ています。その報酬がユーザーの支払うガス代なのです。
上の図はイーサリアムの1日あたりのガス代の推移です。(なお、この図に限らず、イーサリアムに関する重要な情報は一切お金を支払わなくてもEtherScanですべて提供されています。)
「道路」や「鉄道」を考えてみてください。みなさんが当たり前のように使っている道路や鉄道と同じように、資源を出せる人がインフラを作り、それを使う人が少しずつお金を出すという考え方です。(道路は「税金」、鉄道は「きっぷ代」という形で利用料を支払っています)
ここまでだいたいわかりましたでしょうか。要するにガス代というのはブロックチェーンというネットワークの利用料で、道路を使うのにかかる税金みたいなものです。道路がないとどこにも行けない、仕事もできない遊びにも行けないのと同じで、このブロックチェーンがないとDEXもレンディングもNFTもSTEPNも何もできないのです。ブロックチェーンに感謝です。
ガス代の決まり方
さて、ではガス代の具体的なところを見ていきます。例えばPolygonのQuickSwapというDEX(分散型取引所)でトークンの交換をする時のガス代は次のようにメタマスク上では表示されます。
なお、ここで「Gas(estimated)」の右横の(i)マークをクリックするととても詳しいガス代の説明がでてきます。これ豆な。
そして、今回はガス代を詳しくみていくということなので、上の図の「🦊 Market(市場)>」というところをクリックして、ガス代の詳細をみていきます。
上の図をみてください「Market」というのは市場の相場という意味です。「Low」はそれより手数料をケチる代わりに実行は遅くなりそうで、「Aggressive(積極的)」というのは一番早い処理がされることを期待する価格です。そして「Advanced」ではもっと細かく設定ができます。
通常は上の3つから選択でよいと思いますが、もう少し詳しく説明するために「Advanced」をクリックして次の画面にいきます。
一番上の「Max base Fee」というのは基本料金(の最大値)で、イーサリアムではこの部分につかわれたガス代(ETH)はすべて焼却されます。ここはネットワークの混雑具合などからあらかじめ市場で決定されているところなので、基本的には自分で触らなくてもいいところです。
次の「Priority Fee」がマイナー(バリデータ)に支払う報酬部分で、この部分が大きければトランザクションが優先的に採用されやすくなります。トランザクションを早く通したいのであればここが一番重要で、ここを編集すると良いです。上の例では「Current: 30.68 – 91.95 GWEI」となっています。これは現在のトランザクションのPriority Feeが表示されていて、この最安値だとギリギリ通るかどうかというところです。メタマスクが31.17…という数字を提案してくれているので、今回はこれで通してみます。
この2つのFeeの合計が「ガス単価(Gas Price)」にあたります。つまり自動車のガソリンでいうところの1リットルあたりの単価です。
最後の「Gas limit」ですが、ここも触るところではありません。
これはウェブサイトによって提案されている必要なガスの「最大数量」、言い換えると「そのトランザクションの計算にかかる労力」を指定するところで、「トークンの交換」ならどれだけの労力がかかるか、「送金」にはどれだけの労力がかかるかというあらかじめ決められた数値が示されています。
ここを不用意に、特に数量を少なくする方向に編集することは「目標値まで必要なガソリンが足りない状態でスタートさせる」ことになり、スタートさせたはいいものの、結局ガソリン不足で目的地につかずに無駄にガソリン代だけがかかってしまった、という最悪の結果となります。
では多ければ良いかといいますと、余ったガソリンは使われずに返してもらえるのでほとんどの場合は良いのですが、まれにプログラムにミスがあったりして、トランザクションの作業が無駄に発生しすぎる場合があります。そんな時に適切な値に設定していればその値でストップするのですが、Limitを多く設定しすぎてしまうとストップがきかずに全部使われてしまうというリスクもあります。なので基本的にはGas Limitは最初に設定された数字(ウェブサイトからの提案どおり)で実行するのが良いとされています。
このようにガス代のうち「Priority Fee」(優先手数料)を編集してトランザクションを発行します。
決まったガス代の見方
実際に発注が通り、トランザクションを通すための計算作業が行われると、最終的なガス代が決定します。これはEtherScanやPolygonScanなどのブロックチェーンエクスプローラで見ることができます。
上の図はQuickSwapでトークンを交換したトランザクションの例です。メタマスクの発注時の画面では0.0088…MATICがかかる見込みでしたが、実際は0.00369…MATICと、見積もりのおよそ4割程度のガス代が請求されたことがわかります。
さらに細かく見るには画面左下の「Click to see More↓」をクリックします。
設定した「Gas Limit」つまり見積りに対して実際に使われた「Gas Used」は見積もりの44.32%の計算量ですんだということです。そして「Max Priority Fee」は設定通りの31.17..Gweiとなっていて、その結果の「Gas Price」(ガス単価)は31.17…Gweiとなっています。(Base Feeはほぼゼロです)
結果としてかかったガス代はGas Used(118,520) * Gas Price(0.0000000311..)=Transaction Fee(0.00369..)となります、桁数が多くてゼロを数えるのがたいへんですが、こういうの好きな人は面白いのでぜひやってみてください。
簡単にまとめますと、大事なのはガス単価(Gas Price)を決めるところの「Priority Fee(優先手数料)」つまりマイナー(バリデータ)への報酬の部分だということです。
単位weiとGwei
ここはちょっと余談です。
ガス代にはGweiって単位を使っていますが、これはG(ギガ)wei(ウェイ)のことです。Gは1,000,000,000(10の9乗)のことです。もっと余談ですが、K(キロ)は1,000、M(メガ)は1,000,000です。
weiというのはETHの最小単位で、0.000000000000000001(10の-18乗)ETHのことです。つまり、1 Gwei=0.000000001(10の-9乗)ETHということです。桁数が多くてクラクラしますから、このような最小単位を使ってわかりやすくしています。これはPolygonやBNB ChainなどEVM互換といわれるイーサリアムと互換性のあるブロックチェーンで共通しています。
さらに余談を挟むと、weiというのはクリプトの世界の偉人「Wei Dai」さんの名前からきています。
ガス代を節約する方法
ガス代を節約する方法はつぎのとおりです。
- 「Priority Fee」を調整する(ガスリミットではない)
- すいている時間帯を狙う
- トランザクションを整理する(乗り合い)
「Priority Fee」を調整する
さきほどから述べているとおり、「Priority Fee(優先手数料)」がマイナーへの報酬になるので、ここを上下することでガス代の価格が決まります。Gas LimitやBase Feeを触っても特に影響はないどころか、下手に触るとトランザクションが失敗してガス代だけがとられるなど、良いことはありません。
で、この部分の具体的な決め方なのですが、メタマスクの提案の範囲の中央値くらいが「早くて確実」なのだと思います。この提案は直前のブロックの「Priority Fee」の範囲になっているので、最安値付近だと確実に次回のブロックで処理されるかは微妙なところです。
ちなみに、現在待機中のブロックのガス単価はエクスプローラで見ることができます。
右のグラフをより詳しくみてみますと、どういう設定なのか(メタマスクが古い? ウェブサイトの設定が古い?)2.4 Gwei付近のGas Priceのところに一つの大きな山があり、その少し右、31.0 Gweiのところにもう一つ大きな山があるのがわかります。
ここでトランザクションを通したければ、31.0 Gweiのほんの少し右側であれば確実であろうことがわかると思うので、カスタムで設定する場合は「31.1 Gwei」などと設定するのが良いと思います。
(3000 Gweiの人は設定の直し忘れじゃないでしょうか、ずっと超高級なガス代を払い続けているんでしょうか。なんと羽振りの良い。)
また、メタマスクが提案してくれる3つの速さのうち一番早い「Aggressive(積極的)」はこれらの中央値(いわゆる平均ではなく、いろんなガス価格を順番に並べた中でちょうど真ん中の値)を採用してくれると思うので(たぶん)、メタマスクの「Aggressive」を選択するとこのグラフの場合では31より少し少な目のガス価格が採用されると思います。
手っ取り早くていいとは思うのですが、本当に混雑していてトランザクションが通らない時は「Aggressive」でも通らないことがあるので、このガストラッカーを見て、採用されそうなすぐ右側の値をAdvanced(カスタム)で指定した方が無駄なく早く通ると思います。
すいている時間帯を狙う
あとは定番ですが、すいている時間帯を狙うというものです。よく言われるのは曜日でいうと土日祝日、時間帯でいうと朝の8時~9時頃が安いそうです。
参考:Ethereum Gas Price Charts & Historical Gas Fees – ethereumprice
トランザクションを整理する(乗り合い)
最後に、トランザクションを計画的に、例えば複数のアカウントでレバレッジ取引などの複雑なトランザクションを必要としている場合、トークンの送金にかかる手数料は小さいことに気がつけば、1つのアカウントに資金を送金して、複雑な取引を一度で済ませるというやり方もあります。
Gasnowというサイトでは、トランザクションの種類ごとにかかる手数料の目安が示されています。
まとめ
今日の記事は、現在よくある「Polygonでトランザクションが通らない」という声に答えようと思って書きました。ちょっと無駄に難しかったような気がしています。できれば全体をふわっと理解していただいたうえで、次のことに気をつければトランザクションは通せます。
- トランザクションを通すときにメタマスクの「🦊Market >」(市場? もしくは「編集」)というところからガス代を編集する
- 「Aggressive」(積極的)という高いガス代に設定してみる(もしくは「高」)
- それでもだめなら「Advanced」(詳細)を選択し、ガストラッカーを見ながら自分で「Priority Fee」(優先手数料)を高めの値に設定する(もしくは、最大手数料を上げる)
- Gas Limit(ガスリミット)は触らない
毎回ガス代の編集をしなくてもいいと思いますが、トランザクションが通りにくい時に試してみると良いと思います。
というわけで今日の内容は以上です、何かのお役にたてましたらうれしいです。
それではまた、DeFi~(@^^)/~~~