はじめに

『DApps開発入門』という本や色々記事を書いているかるでねです。

今回は、Avalanche C-Chainの最低ベース手数料を25nAVAXから1nAVAXへ引き下げ、動的手数料が実際のネットワーク利用状況を正しく反映できる仕組みを提案しているACP125についてまとめていきます!

以下にまとめられているものを翻訳・要約・補足しながらまとめていきます。

他にも様々なEIP・BIP・SLIP・CAIP・ENSIP・RFC・ACPについてまとめています。

概要

ACP125は、AvalancheのC-Chainにおける最低ベース手数料(minimum base fee)を、現在の25nAVAXから1nAVAXへと引き下げることを目的としています。 ここでいうnAVAXは、AVAXの最小単位であり、1AVAXの10億分の1に相当します。 つまり、この変更はユーザーがトランザクションを送信する時に最低限支払う必要がある基準手数料を大幅に低くするものです。

これにより、利用者が支払う手数料が実際の市場需要により近づき、ネットワークの利用を不必要に制限しない状態を作り出すことが期待されます。

動機

Avalanche C-Chainでは、動的手数料(dynamic fees)という仕組みを用いています。 これは、ガス価格が常にオークションのように変動し、ネットワーク全体で1秒あたりに消費されるガス量が、設定された目標値(target gas usage per second)に収束するように設計されています。

動的手数料が最初に導入された時には、仕組みが正しく機能することを保証するため、いくつかの安全策が加えられました。 その代表例が以下の2つです。

  • 最低ガス価格(minimum gas price)を比較的高めに設定 ネットワーク利用が過剰にならないよう、最低ラインを設けました。
  • 最大ガス価格(maximum gas price)の設定 トランザクション手数料が異常に跳ね上がることを防ぎました。

その後、状況の変化に合わせて調整が行われました。 具体的には、最大ガス価格は完全に撤廃され、最低ガス価格も大幅に引き下げられています。 しかし現在の状況を観察すると、ベース手数料が常にこの最低値に張り付いた状態(pinned)になっていることが多いです。

これはつまり、現在の最低ベース手数料が市場の需要よりも高いことを示しています。 そのため、本来であればもっと低い手数料で動くべきトランザクションが抑制され、ネットワーク利用を人工的に減らしてしまっているのです。

この問題を解決するために、最低ベース手数料を1nAVAXに引き下げ、市場原理により近い形で手数料が決まるようにし、ネットワークの利用促進を目指すのがACP125の動機です。

仕様

Avalanche C-Chainの動的手数料計算(dynamic fee calculation)では、現状として「最低ベース手数料(minimum base fee)」を25nAVAXに固定して適用する必要があります。 これは、どれほどネットワークの需要が低くても、ベース手数料が25nAVAXを下回ることはないという仕様です。

ACP125は、この最低ベース手数料を1nAVAXに引き下げるというものです。 この変更は、次回のネットワークアップグレードが有効化されるタイミングで適用されることが想定されています。

つまり、ネットワークのアップグレードを機に、C-Chainの動的手数料計算ルールそのものが改訂され、トランザクションのベース手数料が市場原理により柔軟に反映されるようになります。

ここで重要なのは、プロトコルレベルでの仕様変更であるという点です。 そのため、全ノードがアップグレードを行うことで、統一的に最低ベース手数料が1nAVAXへ変更されます。

この仕様改訂によって、利用者はより低いコストでトランザクションを送信できる可能性が広がり、ネットワーク全体の利用を促進することが期待されています。

互換性

ACP125は、AvalancheのC-Chainにおけるコンセンサスルール(合意形成の基本的な仕組み)を変更するものです。 つまり、全てのノードが同じ新しいルールを採用しない限り、ネットワーク全体の整合性が取れなくなってしまいます。 そのため、この変更を反映させるにはネットワークアップグレードが必須となります。

ここでいうアップグレードとは、単にノード運営者がソフトウェアを更新するだけでなく、Avalancheのネットワーク全体で合意して切り替える作業を伴います。 したがって、互換性を保ちながら徐々に導入できるものではなく、特定のタイミングで一斉に有効化する必要がある仕様変更です。

参考実装

ACP125の参考実装は、AvalancheのC-Chainを動かす仮想マシンであるcoreth VMに対して既にドラフト版(試作版)が作成されています。 具体的には、以下のGitHubのプルリクエストに実装内容が公開されています。

このリンク先では、コードレベルで最低ベース手数料を25nAVAXから1nAVAXへ変更する処理がどのように適用されているかを確認することができます。 開発者やノード運営者は、この実装を参照することでアップグレード後の挙動を理解しやすくなります。

セキュリティ

最低ベース手数料を引き下げることによって懸念される点のひとつは、ガスコストが下がることで「state bloat(ステートの肥大化)」が進む可能性です。 state bloatとは、ブロックチェーンの状態データが膨れ上がり、ノードのディスク容量や同期コストが増大する現象を指します。 手数料が安くなるとトランザクションが増えやすくなり、結果的に状態データが急速に積み上がるリスクがあるのです。

ただし、過去のネットワーク利用実績を振り返ると、動的手数料アルゴリズムは高負荷時でも適切に対応できていたことが確認されています。 特に2023年12月のような利用が急増した時期でも、アルゴリズムは市場に応じてガス価格を調整し、ネットワークの安定性を保ちました。

この観点から、25nAVAXという比較的高い最低ベース手数料を維持し続ける必要は薄れつつあると考えられています。 動的手数料の仕組みそのものがセーフティネットとして機能しているため、より低い最低値を設定してもセキュリティ面で大きな問題は生じにくいと判断されています。

最後に

今回は「Avalanche C-Chainの最低ベース手数料を25nAVAXから1nAVAXへ引き下げ、動的手数料が実際のネットワーク利用状況を正しく反映できる仕組みを提案しているACP125」についてまとめてきました! いかがだったでしょうか?

質問などがある方は以下のTwitterのDMなどからお気軽に質問してください!

他の媒体でも情報発信しているのでぜひ他も見ていってください!