ERC-721A:Azuki 如何優化批次铸造和 Gas 效率

LeeMaimaiLeeMaimai
/2025年10月16日
ERC-721A:Azuki 如何優化批次铸造和 Gas 效率

重點總結

• ERC-721A透過連續代幣ID和打包所有權資料來降低Gas成本。

• 在單個交易中批量鑄造多個NFT的成本僅略高於鑄造單個代幣。

• ERC-721A保留了ERC-721的外部介面,確保市場和錢包的兼容性。

• 在2025年,Gas效率仍然是NFT鑄造的重要考量,尤其是在需求激增時。

• 開發者需遵循安全指導,以確保ERC-721A的安全使用。

2021-2022 年的 NFT 熱潮揭示了一個令創作者和收藏家都感到痛苦的事實:鑄造大量 ERC‑721 代幣非常昂貴。根據原始標準鑄造的每個代幣都需要重複的儲存寫入和每個代幣的事件,在熱門的發行活動中將 Gas 成本推向了極限。Chiru Labs 的 Azuki 團隊透過 ERC-721A 解決了這個問題,這是一個即插即用的實現,旨在大幅降低批次鑄造的成本,同時保持 ERC-721 的兼容性。以下將說明它的運作方式、改變了什麼,以及如何在 2025 年安全地使用它。

基線:ERC‑721 的每個代幣成本

原始的非同質化代幣規範 ERC‑721 定義了 NFT 的介面和事件,但將 Gas 經濟性留給了具體實現。一個標準的實現通常會:

  • 為每個代幣的所有權執行一次儲存寫入
  • 為每個鑄造的代幣發出一個 Transfer 事件
  • 單獨更新餘額

由於儲存寫入 (SSTORE) 是 EVM 操作中最昂貴的操作之一,批次鑄造數十或數百個代幣會使費用加倍。您可以透過 evm.codes 上的操作碼參考來驗證 EVM 操作和儲存寫入的相對成本,這清楚地說明了為何簡單的 ERC‑721 鑄造如此昂貴 參考。有關規範本身,請參閱標準規範 ERC‑721

ERC‑721A 簡介

Chiru Labs 的 ERC‑721A 是一個合約實現,它保留了 ERC‑721 的介面,但重新設計了資料佈局和鑄造邏輯,使得批次鑄造的成本接近於鑄造單個代幣的成本。官方程式碼和文件位於 Chiru Labs 的儲存庫 GitHub 上的 ERC721A

關鍵概念:

  • 連續的代幣 ID:代幣以連續的 ID 進行鑄造。這種結構使得無需為每個代幣儲存所有權,就可以推斷出一系列代幣的所有權。
  • 打包的所有權資料:ERC‑721A 不使用多個映射,而是將欄位(所有者地址、時間戳、銷毀標記、額外資料)打包到一個緊湊的儲存槽中。這減少了 SSTORE 操作並提高了快取局部性;有關打包的背景資訊,請參閱 Solidity 的儲存佈局說明 Solidity 儲存佈局
  • 延遲初始化:在批次鑄造期間,實現只在該範圍的開頭寫入一次所有權;後續代幣會推斷所有權,直到所有權發生變化,從而大大減少了儲存寫入。
  • 保持兼容性的事件:ERC‑721A 在常規鑄造中為每個代幣發出標準的 Transfer 事件,以保持與市場的兼容性。對於合約創建時的大量鑄造,它可以利用 ERC‑2309 ConsecutiveTransfer 事件進一步削減事件 Gas,正如標準所允許的 ERC‑2309

實際上,使用 ERC‑721A 在單個交易中鑄造 N 個代幣,其成本僅比鑄造一個代幣略高,而不是 N 倍。這就是其 Gas 效率的精髓。

相同之處 vs. 改變之處

相同之處:

  • 它實現了與 ERC‑721 相同的外部介面,因此錢包、市場和索引器將繼續正常運作。
  • 安全鑄造流程、授權和轉移行為符合標準的預期 OpenZeppelin 的 ERC‑721 參考

底層改變之處:

  • 所有權查找可能會向後掃描到最近的已初始化所有權槽(在典型使用中攤銷為常數時間)。
  • 圍繞「範圍邊界」的轉移可以初始化下一個代幣的所有權,以確保推斷的正確性。
  • 資料結構採用了激進的位元打包,並在某些地方使用了未經檢查的算術運算來節省 Gas。擴展 ERC‑721A 的開發人員應理解 Solidity 的未經檢查塊和不變式,以避免溢位或下溢 Solidity 的未經檢查

為何這在 2025 年仍然重要

以太坊在 2024 年的 Dencun 升級引入了 Blob 空間 (EIP‑4844),顯著降低了 Rollup 上的數據可用性成本,從而降低了 L2 上的費用。因此,許多 NFT 項目現在都在 L2 上鑄造,然後再進行橋接或結算。即便如此,當需求激增或在主網上鑄造的來源仍然有吸引力時,Gas 效率仍然很重要。ERC‑721A 仍然相關,因為它減少了鏈上組件的成本,無論您部署在哪個鏈上。有關 Dencun 及其影響的背景,請參閱以太坊基金會的概述 主網上的 Dencun

ERC‑721A 與替代方案的比較

  • ERC‑1155:如果您的收藏是半同質化的(每個 ID 有多個副本)或您依賴真正的批量轉移,ERC‑1155 可能更適合,因為它原生支援具有不同介面的批量操作 ERC‑1155。對於具有每個代幣元數據和已建立市場流程的經典 1/1 NFT,ERC‑721A 保留了 ERC‑721 的外部介面,同時優化了 Gas。
  • 版稅:ERC‑721A 可以透過 EIP‑2981 整合鏈上版稅信號,而不會影響其鑄造優化 EIP‑2981
  • 鏈下允許列表和簽名:將 ERC‑721A 與 EIP‑712 簽名的憑證式鑄造或 Merkle 證明配對,可以使您的首次銷售保持高效和靈活 EIP‑712

開發者清單:安全地使用 ERC‑721A 進行構建

  • 使用 Chiru Labs 的最新審核版本,並在將其投入生產之前閱讀儲存庫的安全說明 GitHub 上的 ERC721A
  • 保持代幣 ID 的連續性以最大化 Gas 節省;避免破壞連續所有權推斷的自定義 ID 方案。
  • 如果您必須在合約創建時大量鑄造,請考慮 ERC‑2309 ConsecutiveTransfer 選項,並驗證您的索引器堆棧是否理解它 ERC‑2309
  • 在向打包的所有權結構添加自定義儲存時要小心;錯位或過寬的類型可能會抵消節省的成本。請參閱 Solidity 的儲存打包規則 Solidity 儲存佈局
  • 測試邊界條件:範圍邊緣附近的轉移和銷毀、枚舉擴展以及與依賴代幣枚舉的市場的交互。
  • 在目標網絡上使用真實的批量大小進行性能分析。Dencun 後,主網和 L2 的 Gas 經濟性有所不同,因此請在啟用元數據掛鉤的情況下對鑄造和轉移流程進行基準測試。

對於收藏家和鑄造者:您會注意到什麼

  • 較低的首次鑄造 Gas:在單個交易中批量鑄造多個 NFT 比逐個鑄造便宜得多。
  • 高負載下的更快發行:較少的重型儲存寫入意味著在內存池擁擠時,鑄造失敗的可能性較小。
  • 標準錢包用戶體驗:由於 ERC‑721A 保留了 ERC‑721 介面,您的錢包、市場列表和索引器將繼續正確識別代幣。

常見陷阱和迷思

  • 「這是新標準。」 不完全是。ERC‑721A 是 ERC‑721 的一個實現,具有重新設計的內部佈局;它不會改變公共介面 ERC‑721
  • 「事件已壓縮,因此索引器會中斷。」 常規批次鑄造仍然會發出每個代幣的 Transfer 事件。只有可選的 ERC‑2309 路徑會壓縮事件,並且它專為合約創建時的鑄造設計 ERC‑2309
  • 「枚舉是免費的。」 事實並非如此。枚舉所有代幣或按所有者枚舉所有代幣故意不包含在內以節省 Gas;如果您需要它,請添加一個可查詢的擴展並考慮鏈下索引。

展望未來

隨著 Blob 空間降低 L2 費用以及 NFT 基礎設施的成熟,創作者現在可以根據每次發行的需要,在主網來源和 L2 可擴展性之間進行選擇。ERC‑721A 仍然是高需求 PFP、具有允許列表批次鑄造的生成藝術集以及希望獲得 ERC‑721 兼容性但又不想支付 ERC‑721 批次費用的遊戲資產的務實選擇。如果您超出了 ERC‑721 語義的範圍,請考慮您的用例是否自然適合 ERC‑1155 的多代幣模型 ERC‑1155

安全的密鑰管理仍然很重要

較低的 Gas 並不能改變最重要的規則:保護您的密鑰。ERC‑721A 鑄造通常涉及簽署 EIP‑712 消息或在熱門發行期間快速執行高價值交易。支援安全離線簽名、多鏈網絡和清晰交易預覽的硬件錢包可以幫助您自信地進行鑄造。OneKey 硬件錢包是開源的,與主要的 Web3 工具集成,並提供簡單的 EVM 和 EIP‑712 簽名工作流程——這在您進行高效批次鑄造但仍希望最小化簽名風險時非常有用。

快速資源

ERC‑721A 並沒有改變 NFT 是什麼——它改變了我們創建它們的效率。在一個區塊空間稀缺、注意力短暫的世界裡,這是一項有意義的升級。

使用 OneKey 保護您的加密之旅

View details for 選購 OneKey選購 OneKey

選購 OneKey

全球最先進嘅硬件錢包。

View details for 下載應用程式下載應用程式

下載應用程式

詐騙預警。支援所有幣種。

View details for OneKey SifuOneKey Sifu

OneKey Sifu

即刻諮詢,掃除疑慮。