ERC-721A:Azuki がバッチミントとガス効率を最適化した方法

キーストーン
• ERC-721Aは、ERC-721の互換性を保ちながら、バッチミントのコストを削減します。
• トークンは連番IDでミントされ、所有権の推測が可能です。
• 遅延初期化により、ストレージ書き込みが大幅に削減されます。
• 2025年に向けてもガス効率が重要であり、ERC-721Aはそのニーズに応えます。
• コレクターは、ERC-721Aを使用することで、より安価にNFTをミントできます。
2021年から2022年にかけてのNFTブームは、クリエイターとコレクター双方にとって痛ましい真実を露呈しました。それは、多くのERC-721トークンを発行(ミント)するのは高価であるということです。オリジナルの標準でミントされる各トークンは、繰り返しストレージへの書き込みとトークンごとのイベントを必要とし、人気のあるドロップ時にはガス代を sky-high に押し上げました。Chiru Labs の Azuki チームは、ERC-721A でこの問題に直接取り組みました。これは、ERC-721 の互換性を維持しながら、バッチミントを劇的に安価にするように設計されたドロップイン実装です。どのように機能し、何が変更され、2025 年に安全に使用するにはどうすればよいかを説明します。
基本:ERC-721 のトークンごとのコスト
オリジナルの非代替性トークン仕様である ERC-721 は、NFT のインターフェースとイベントを定義しますが、ガス経済性は実装に委ねられています。一般的な実装は通常、以下のようになります。
- 各トークンの所有権のストレージ書き込みを実行する
- ミントされた各トークンに対して Transfer イベントを発行する
- バランスを個別に更新する
ストレージ書き込み (SSTORE) は最もコストのかかる EVM 操作の 1 つであるため、数十または数百のトークンをバッチミントすると手数料が倍増します。evm.codes のオペコードリファレンスで EVM 操作とストレージ書き込みの相対コストを確認でき、なぜ単純な ERC-721 ミントが高価なのかが明らかになります 参照。仕様自体については、標準的な標準である ERC-721 を参照してください。
ERC-721A の概要
Chiru Labs の ERC-721A は、ERC-721 インターフェースを維持しながら、データレイアウトとミントロジックを再設計して、バッチミントを単一トークンのミントコストに近づけるコントラクト実装です。公式コードとドキュメントは、Chiru Labs リポジトリ ERC721A on GitHub にあります。
主なアイデア:
- 連番トークン ID: トークンは連番 ID でミントされます。この構造により、各トークンの所有権を保存することなく、トークン範囲の所有権を推測できます。
- パックされた所有権データ: 複数のマッピングの代わりに、ERC-721A はフィールド(所有者のアドレス、タイムスタンプ、バーンフラグ、追加データ)をコンパクトなストレージスロットにパックします。これにより、SSTORE 操作が削減され、キャッシュの局所性が向上します。パッキングの背景については、Solidity のストレージレイアウトに関する注釈を参照してください Solidity storage layout。
- 遅延初期化: バッチミント中、実装は範囲の開始時にのみ所有権を 1 回書き込みます。後続のトークンは、変更されるまで所有権を推測し、ストレージ書き込みを劇的に削減します。
- 互換性を維持するイベント: ERC-721A は、マーケットプレイスとの互換性を維持するために、通常のミントで各トークンに対して標準の Transfer イベントを発行します。コントラクト作成時のメガミントでは、標準で許可されている ERC-2309 ConsecutiveTransfer イベントを使用して、イベントのガスをさらに削減できます ERC-2309。
実際には、ERC-721A を使用して 1 回のトランザクションで N 個のトークンをミントすることは、1 個のトークンをミントするよりもわずかにコストがかかるだけで、N 倍のコストがかかるわけではありません。それがガス効率の本質です。
何が同じで、何が変わるか
同じ点:
- ERC-721 と同じ外部インターフェースを実装しているため、ウォレット、マーケットプレイス、インデクサーは引き続き機能します。
- 安全なミントフロー、承認、転送は、標準に従って期待どおりに動作します OpenZeppelin’s ERC‑721 reference。
内部で変更される点:
- 所有権のルックアップは、最も近い初期化された所有権スロットまで後方にスキャンする場合があります(通常の利用では償却定数時間)。
- 「範囲境界」周辺の転送は、推測を正確に保つために次のトークンの所有権を初期化できます。
- データ構造は、積極的なビットパッキングを使用し、一部ではチェックされていない算術演算を使用してガスを節約します。ERC-721A を拡張する開発者は、オーバーフローまたはアンダーフローを回避するために、Solidity のチェックされていないブロックと不変条件を理解する必要があります unchecked in Solidity。
なぜこれが 2025 年でも重要なのか
2024 年の Ethereum の Dencun アップグレードにより、ロールアップでのデータ可用性コストを劇的に削減するブロブスペース (EIP-4844) が導入され、L2 での手数料が削減されました。その結果、多くの NFT プロジェクトが現在 L2 でミントし、後でブリッジまたは決済しています。それにもかかわらず、需要が急増した場合や、プロビナンスのためにメインネットでのミントが依然として望ましい場合、ガス効率は重要です。ERC-721A は、どのチェーンにデプロイしても、オンチェーンコンポーネントを削減するため、関連性が維持されます。Dencun とその影響に関するコンテキストについては、Ethereum Foundation の概要を参照してください Dencun on mainnet。
ERC-721A と代替案の比較
- ERC-1155: コレクションがセミファンジブル(ID ごとに複数のコピー)である場合、または真のバッチ転送に依存している場合、ERC-1155 は異なるインターフェースでバッチ操作をネイティブにサポートしているため、より適している可能性があります ERC-1155。トークンごとのメタデータと確立されたマーケットプレイスフローを持つクラシックな 1/1 NFT の場合、ERC-721A は ERC-721 の表面を維持しながらガスを最適化します。
- ロイヤリティ: ERC-721A は、ミントの最適化に影響を与えることなく、EIP-2981 経由でオンチェーンロイヤリティシグナリングを組み込むことができます EIP-2981。
- オフチェーン許可リストと署名: ERC-721A を EIP-712 サイン入りバウチャーベースのミントまたはマークルプルーフと組み合わせることで、プライマリセールを効率的かつ柔軟に保つことができます EIP-712。
開発者チェックリスト:ERC-721A を安全に構築する
- Chiru Labs の最新の監査済みリリースを使用し、本番出荷前にリポジトリのセキュリティノートを読んでください ERC721A on GitHub。
- ガス削減を最大化するためにトークン ID を連番に保ちます。連続した所有権の推測を壊すカスタム ID スキームは避けてください。
- 非常に大量のトークンをコントラクト作成時にミントする必要がある場合は、ERC-2309 ConsecutiveTransfer オプションを検討し、インデクサー スタックがそれを理解していることを確認してください ERC-2309。
- パックされた所有権構造にカスタムストレージを追加する際は注意してください。配置ミスや幅が広すぎる型は、節約を無効にする可能性があります。Solidity のストレージパッキング ルールを確認してください Solidity storage layout。
- 境界条件をテストします。範囲の端付近の転送とバーン、列挙拡張機能、トークン列挙に依存するマーケットプレイスとの相互作用。
- 対象ネットワークで現実的なバッチ サイズでプロファイルします。Dencun 後、メインネットと L2 のガス経済性は異なります。メタデータ フックを有効にして、ミントと転送のフローの両方をベンチマークしてください。
コレクターとミンター向け:気づくこと
- プライマリ ミントガスの低下: 1 回のトランザクションで複数の NFT をバッチミントすることは、それらを 1 つずつミントするよりもはるかに安価になります。
- 負荷下のドロップの高速化: 重いストレージ書き込みが少ないため、メモリプールが混雑しているときにミントが失敗する可能性が低くなります。
- 標準的なウォレット UX: ERC-721A は ERC-721 インターフェースを維持しているため、ウォレット、マーケットプレイスのリスト、インデクサーは引き続きトークンを正しく認識します。
一般的な落とし穴と神話
- 「新しい標準です。」 そうではありません。ERC-721A は、再設計された内部レイアウトを持つ ERC-721 の実装です。公開インターフェースは変更されません ERC-721。
- 「イベントが圧縮されるため、インデクサーが壊れます。」 通常のバッチミントは、引き続きトークンごとの Transfer イベントを発行します。オプションの ERC-2309 パスのみがイベントを圧縮し、コントラクト作成時のミントを対象としています ERC-2309。
- 「列挙は無料です。」 そうではありません。すべてのトークンまたはすべてのトークンを所有者別に列挙することは、ガスを節約するために意図的に組み込まれていません。必要な場合は、クエリ可能な拡張機能を追加し、オフチェーンインデックス作成を検討してください。
将来を見据えて
ブロブスペースによる L2 手数料の削減と NFT インフラストラクチャの成熟により、クリエイターは現在、ドロップごとにメインネットのプロビナンスと L2 のスケーラビリティのどちらかを選択しています。ERC-721A は、需要の高い PFP、許可リスト付きバッチミントを持つジェネレーティブアートセット、および ERC-721 の互換性を ERC-721 のバッチコストなしで望むゲームアセットにとって、実用的なデフォルトであり続けています。ERC-721 のセマンティクスを超える場合は、ユースケースが ERC-1155 のマルチトークンモデルに自然に適合するかどうかを検討してください ERC-1155。
安全なキー管理は依然として重要
ガスの低下は、最も重要なルールを変えるものではありません。キーを保護してください。ERC-721A ミントには、EIP-712 メッセージへの署名や、ホットドロップ中の高価値トランザクションの迅速な実行が含まれることがよくあります。安全なオフライン署名、マルチチェーンネットワーク、および明確なトランザクションプレビューをサポートするハードウェアウォレットは、自信を持ってミントするのに役立ちます。OneKey ハードウェアウォレットはオープンソースであり、主要な Web3 ツールと統合されており、わかりやすい EVM および EIP-712 署名ワークフローを提供します。これは、効率的にバッチミントしながらも、署名リスクを最小限に抑えたい場合に役立ちます。
クイックリソース
- ERC-721 仕様 ERC-721
- Chiru Labs の実装とドキュメント ERC721A on GitHub
- コントラクト作成時ミント用の ConsecutiveTransfer イベント ERC-2309
- OpenZeppelin Contracts (ERC-721 API 参照) OpenZeppelin ERC‑721 docs
- EVM ガス代参照 EVM opcodes and gas
- 2024-2025 年の Dencun と L2 手数料のダイナミクス Ethereum Foundation: Dencun
- セミファンジブル/バッチトークンの代替標準 ERC-1155
- ロイヤリティシグナリング EIP-2981
- 許可リスト用の型付きデータ署名 EIP-712
ERC-721A は NFT が何であるかを変えたわけではありません。それは、それらをどれだけ効率的に作成できるかを変えました。ブロック空間が限られ、注意が移ろいやすい世界では、それは意味のあるアップグレードです。






