Aptosのガスコストを10倍低下させる道筋
Aptosの各コンテンツや、学習材料へはこちらからアクセスできます!
Aptosエコシステムの成長を加速させるというミッションの一環として、私たちはコミュニティの開発者たちと密接に関わり、実装を支援し、Aptosの改善に関するフィードバックを集めています。最も多い要望は、ガススケジュールの改善です。この要望は、Aptosのコアテナント、ネットワーク需要がAptosの使用に関連するコストを大きく左右するということと強く相関しています。
チームはこの1ヶ月間、多くのエコシステム開発者との議論を進め、大量のオンチェーンデータを分析し、ブレインストーミングに取り組んできました。
需要主導型のガスコストを実現するための3段階の計画:
- 2023年1月上旬- NFTデータの運用を改善し、ダイナミックNFTの価格を10倍に引き下げます。
- 2023年Q1- ガイドからインデックス作成まで、エンドツーエンドでサポートするガス効率の良いデータ構造を構築します。
- 2023年Q1後半~Q2前半- 貯蔵コストと執行コストを分離した先進的なガスモデルを考案し、執行に必要なガスコストを需要に応じて提供します。
背景
当初、チームはガス料金の低下幅を10倍から100倍にすることを目標に掲げて取り組んできました。その可能性を検証するために、Aries, AUX, Econia, Ferum, Nutrios, Pyth, Souffl3, Switchboard, Topaz, Tsunamiなど多くのエコシステム開発者と直接話をしています。このインタビューとオンチェーンの多くの取引データの調査の結果、以下の知見が得られました:
- Aptosでのコイン転送(
aptos_account::transfer
)には、約0.00055 APTのコストがかかります。 - 多くのDeFiオペレーションは0.003から0.005 APTの範囲に収まっています。
- ガスコストは主に、50%以上の
execution
と20%以上のitem creation
に支配されています。
そしてチームは、Aptosの既存のガスポリシーが生み出す課題を特定しました。Aptosは、実行コストと保管コストを一緒にバンドルしています。実行において、ガスはトランザクションの最大実行時間を制限します。ストレージの場合には、ガスは希少なリソースを賢く使うよう指示します。ストレージは永久的なものであり、このようにバンドルされている場合、一方のコストを下げれば、他方にも影響が及ぶことになります。例えば、実行ガスを大幅に削減した場合、1つのトランザクションで利用可能なストレージの総量も同様に大幅に削減されます。分析では、これは非常に低い利益となることが示唆されています。
短期的 — NFTガスの動的削減
最初のSimpleMapを作成したとき、私たちは早すぎる最適化の道を選んでいます。SimpleMap は O(Log N) の読み取りと O(N) の追加と削除を提供します。しかし、評価に使用するコンパレータは、実装時にはわかりませんでしたが、ガスコストに大きな影響を与えるものとなりました。そこで、ブルートフォース実装を用いることで、実際には50%以上安くなることが判明しました。Aptosチームは現在、このアップデートの準備を進めており、その過程で最初のAptos改善提案(AIP)を発表するところです。
中期的— ガス効率の良いデータ構造
エコシステム内の多くのチームは、既に貯蔵ガスのニュアンスを認識して、独自のガス効率の良いデータ構造を実装しています。この分野では、1) データの大きさ、2) データの用途に関連するトレードオフを検討する必要があります。
Aptosのガスストレージモデルでは、スロット、つまりテーブルアイテムやリソースを作成する際に、フリーバイトを提供します。既存のスロット内のあるポイントを超えてデータを集約すると、最終的には新しいスロットを作成するよりもコストがかかります。一部のビルダーは、このバランスを理解しており、彼らと協力し、これを容易にするために、SmartVectorの開発を始めています。
もちろん、SmartVectorにはルックアップ時間の制限があり、コストやスケールに直接影響します。そこで、ルックアップとデルタ演算の時間を効率化したSmartTreeも検討しています。
また、より効率的な大規模マップのようなストレージのために、BucketTableのサポートを復活させる予定です。現在、Aptos Token StandardのTokenStoreで実証されたように、この作業の多くにはTableが好ましい方法として考えられます。トークンは潜在的にBucketTableにもっと効率的に格納できる可能性がありますが、これを効果的に機能させるために、BucketTableはもう少し注力する必要があるのです。
これらの努力にはもう少しハードニング、AIP、ドキュメント、インデックスのサポートが必要となります。
これらの改善の多くは、コードがすぐに利用できます。
長期的 — 需要主導型のガスコスト
現在のガスの枠組みでは、執行手数料と貯蔵手数料が組み合わされており、その結果、ガス価格のバランスが崩れています。さらに、現在のストレージの価格設定には、データの寿命を反映する機能がありません。その結果、ストレージの不正利用を防ぐために、ストレージのインタラクションは高価にならざるを得ません。さらに、現在のストレージの価格体系では、データを削除するインセンティブがありません。
今後数ヶ月間、Aptosチームは2つの取り組みによって、これらの問題を解決することにコミットしていきます。具体的には、1) ストレージと執行ガス料金を分離し、執行料金を削減すること、2) ストレージの払い戻しをサポートするフレームワークを提供することです。
ストレージの払い戻しはまだ初期のブレインストーミングの段階ですが、以下のような基本原則を確立しています:
- 払い戻しは、データ作成の費用を支払った元のアカウントに戻されるべきだと考えています。
- データ作成の補助は、例えばNFTを作成するリソースアカウントやDeFi操作を促進するアカウントなど、中央アカウントから実行可能であるべきです。
まだ初期段階ですが、AIPsや今後の投稿でより詳細な情報を共有していくつもりです。
最終的には、NFTの移動または修正、オラクルの更新、さらにはDeFi操作のポジションの更新などのトランザクションはすべて、ガス価格の大幅な下落の恩恵を受けることになります。
まとめ
Aptosのメインネットのローンチ後、チームはオペレーションのスケーリングに焦点を当ててきました。チームは、皆さんがどのように構築し、どのようにすれば皆さんがより効果的に構築できるかを学ぶために、エコシステムと関わりました。私たちは、ガス料金を改善するための3段階の計画が、Aptosでビルドすることをより良いものにすると信じています。
Let’s move!
今後のAptosにご期待ください。