什麼是 ERC-721:NFT 生態系的基石

重點總結
• ERC-721 是以太坊上不可同質化代幣的核心標準,定義了代幣的唯一性和轉移方式。
• ERC-721 與 ERC-1155 的主要區別在於前者針對獨特物品,後者則支援多種代幣。
• 未來的擴充功能如權利金、NFT 授權和租賃將進一步提升用戶體驗和可編程性。
• 安全性是使用 ERC-721 的重要考量,建議使用硬體錢包來保護私鑰和簽名。
• 隨著 Layer 2 解決方案的興起,ERC-721 的使用成本和效率將得到改善。
不可同質化代幣(Non-fungible tokens)讓數位資產可以在公開區塊鏈上被擁有、交易和組合。這場轉變的核心是 ERC-721 — 一個定義唯一代幣如何被創建、轉移和在錢包、市場及應用程式中被發現的以太坊標準。如果您曾鑄造過收藏品、購買過遊戲內資產、或限制過社群的存取權限,您很可能與 ERC-721 互動過。
本文將深入探討 ERC-721 是什麼、它的運作方式、常見的陷阱、為何擴充功能很重要,以及該標準在 2025 年的發展方向。
ERC-721 實際上定義了什麼
ERC-721 是以太坊上用於不可同質化代幣的介面 — 這些資產以其 ID 區分,無法像同質化代幣 ERC-20 那樣 1:1 交換。該標準規範了所有符合標準的合約必須實現的核心功能和事件,從而實現一致的錢包和市場支援。請參閱以太坊改進提案網站上的權威規格:EIP-721。
核心要素包括:
- 所有權和餘額:
ownerOf(tokenId)、balanceOf(owner) - 轉移:
transferFrom、safeTransferFrom(建議用於使用者帳戶和智慧合約) - 授權:
approve、getApproved、setApprovalForAll - 事件:
Transfer、Approval、ApprovalForAll - 可選的元數據擴充功能:
name、symbol、tokenURI,用於項目級元數據
對於開發者來說,最簡單的入門方式是使用經過審核的函式庫,例如 OpenZeppelin 的實作,它支援可枚舉和元數據擴充功能:OpenZeppelin ERC-721。
一個最小化的介面看起來像這樣:
interface IERC721 {
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
function balanceOf(address owner) external view returns (uint256);
function ownerOf(uint256 tokenId) external view returns (address);
function safeTransferFrom(address from, address to, uint256 tokenId) external;
function transferFrom(address from, address to, uint256 tokenId) external;
function approve([address](https://onekey.so/blog/zh-HK/ecosystem/what-is-a-crypto-wallet-address/) to, uint256 tokenId) external;
function setApprovalForAll([address](https://onekey.so/blog/zh-HK/ecosystem/what-is-a-crypto-wallet-address/) operator, bool approved) external;
function getApproved(uint256 tokenId) external view returns ([address](https://onekey.so/blog/zh-HK/ecosystem/what-is-a-crypto-wallet-address/));
// 可選的元數據擴充功能
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function tokenURI(uint256 tokenId) external view returns (string memory);
}
如需高層次的概述,以太坊文件提供了額外的背景資訊和最佳實踐:ERC-721 開發者文件。
元數據:鏈上 vs 鏈下
ERC-721 本身並不規定元數據的儲存方式;它僅返回一個指向 JSON 負載的 tokenURI,該負載描述了資產(名稱、描述、圖片、屬性)。實際上,大多數項目都使用去中心化儲存:
- IPFS 用於內容定址和分發:IPFS
- Arweave 用於永久、持久的儲存:Arweave
- 市場綱要,例如 OpenSea 的元數據指南:OpenSea 元數據標準
鏈上元數據是可行的(且越來越受歡迎,以實現長期持久性),但成本更高。一種混合方法 — 小型的鏈上 JSON 加上鏈下媒體 — 也很常見。
為了在不犧牲信任假設的情況下,從鏈下來源進行進階檢索,ERC-3668(「CCIP-Read」)允許合約在鏈上驗證鏈下數據:EIP-3668。
ERC-721 vs ERC-1155
ERC-721 針對的是獨特的、一對一的物品。ERC-1155 是一個多代幣標準,可以在單一合約下支援同質化和不可同質化代幣,使其成為半同質化遊戲物品或系列的理想選擇。如果您正在建立具有共享元數據的系列或批次,請考慮 ERC-1155:EIP-1155。對於每個代幣都有自己生命週期和轉移的純粹獨特物品,ERC-721 仍然是預設選項。
在 2025 年重要的擴充功能
生態系統持續圍繞 ERC-721 進行創新,透過可選標準來改善用戶體驗、組合性和獲利能力:
- 權利金(Royalties):ERC-2981 在合約層級標準化創作者權利金資訊,以便市場能夠以統一的方式發現權利金設定。請注意,權利金的執行取決於市場,而不是由協議強制執行。了解更多:EIP-2981 和市場政策,例如 OpenSea 的創作者費用概述。
- NFT 的授權(Permit for NFTs):ERC-4494 引入了 EIP-712 類型簽名用於授權,從而實現無 gas 的授權和改善用戶體驗,而無需廣泛的運營商權限。EIP-4494。
- 租賃/使用權:ERC-4907 增加了一個帶有過期時間戳的「使用者」角色,允許在不轉移所有權的情況下進行限時租賃。EIP-4907。
- 代幣綁定帳戶(Token Bound Accounts, TBAs):ERC-6551 允許 NFT 擁有自己的智慧合約錢包,從而實現與代幣本身連結的資產、身份和複雜行為。這是遊戲、身份和可組合藝術的一大突破。EIP-6551。
總之,這些擴充功能使 NFT 更具可編程性,並與訂閱、遊戲內物品欄、動態藝術和鏈上身份等實際用例保持一致。
安全性和用戶體驗:常見陷阱
由於 ERC-721 涉及授權和轉移,它經常成為網路釣魚和社交工程的目標。實用技巧:
- 對於使用者發起的轉移,優先使用
safeTransferFrom。當傳送給智慧合約時,它會檢查接收者是否實現了onERC721Received,從而防止代幣意外丟失。請參閱 OpenZeppelin 的 ERC-721 文件中的實作說明。 - 小心廣泛的授權。
setApprovalForAll功能強大;如果運營商被盜用,您的所有 NFT 都將面臨風險。考慮在使用後撤銷授權,並定期檢查getApproved和運營商列表。 - 驗證簽名。許多 NFT 應用程式使用 EIP-712 類型數據進行授權、掛牌和鏈下訂單。在簽署之前,務必閱讀訊息並確認網域和意圖:EIP-712。
- 在鑄造、授權和轉移時使用硬體錢包。專用設備有助於隔離金鑰,並降低惡意軟體或瀏覽器錢包攻擊的風險。
如果您正在考慮託管,OneKey 硬體錢包可以創建一個離線簽署環境,提供清晰的交易摘要和多鏈支援。這使得 ERC-721 互動 — 尤其是授權、掛牌和授權簽名 — 更容易審查且更安全地執行。
Gas 和擴展性:Layer 2 上的 ERC-721
NFT 活動已日益轉移到 Layer 2 網路,以實現更快的最終性和更低的成本。ERC-721 在 L2 上的工作方式與在主網上相同;區別在於底層的 Rollup 技術和結算。在部署之前,請檢查:
- 您的市場如何在目標 L2 上索引代幣和元數據
- 橋接行為(鑄造後銷毀 vs 鏡像合約)
- Sequencer 的最終性和提款時間表
如需 L2 生態系統和權衡的概述,請參閱以太坊的 Layer-2 文件:Layer-2 概述。
透過 ERC-4337 實現的帳戶抽象(Account Abstraction, AA)也正在透過 Gas 贊助和可編程簽名策略重塑 NFT 的用戶體驗。這使得「無 gas 鑄造」和更安全的應用程式內體驗會話金鑰成為可能。閱讀更多關於 EIP-4337 和 Alchemy 提供的 AA入門指南:帳戶抽象概述。
開發者檢查表:可靠的 ERC-721 整合
- 使用經過審核的函式庫並遵循規格:EIP-721、OpenZeppelin ERC-721。
- 盡早決定元數據儲存方案:IPFS、Arweave 或鏈上。連結綱要文件:OpenSea 元數據標準、IPFS、Arweave。
- 選擇符合您產品需求的擴充功能:EIP-2981、EIP-4494、EIP-4907、EIP-6551。
- 規劃 L2 部署和索引:Layer-2 概述。
- 實施強健的授權管理、撤銷流程,並使用 EIP-712 提供清晰的簽名對話框:EIP-712。
- 考慮 AA 以實現更順暢的入門和贊助操作:EIP-4337、帳戶抽象概述。
2025 年展望:超越收藏品的 NFT
儘管頭像(Profile Pictures)引發了第一波主流浪潮,ERC-721 仍在持續擴展到更多實用導向的類別:
- 遊戲:鏈上物品、裝飾品和玩家擁有的物品庫,透過 TBA 和租賃實現有意義的遊戲經濟。
- 身份和會員資格:代幣門戶體驗、憑證和社群原語,利用簽名和 AA 實現行動裝置原生用戶體驗。
- 票務和訂閱:透過 ERC-4907 的限時權利模仿現實世界的存取模式。
- 文化資產和動態藝術:鏈上元數據、CCIP-Read 和模組化合約為創意作品帶來長久性和演進性。
如需對 NFT 概念和用例進行更廣泛的解釋,請參閱以太坊的 NFT 概述:以太坊上的 NFT。
為何託管對 ERC-721 仍然很重要
授權、掛牌和鑄造簽名直接影響所有權。如果您的簽署裝置被盜用,您的 NFT 可能會在未經您同意的情況下被轉移。對於任何經常與 ERC-721 合約互動的人來說,硬體錢包仍然是簡單但影響重大的保護措施。
OneKey 提供:
- 離線私鑰和安全的簽署,用於 ERC-721 轉移、授權和授權簽名。
- 清晰的交易和訊息預覽,幫助您識別惡意運營商或誤導性簽名。
- 廣泛的 EVM 和 L2 支援,實現跨鏈無縫 NFT 工作流程。
如果您交易、收藏或建立 NFT,將軟體錢包與 OneKey 硬體錢包配對,可以增加一層必要的保護 — 尤其是在 ERC-721 隨著進階擴充功能和帳戶抽象而演進之際。
ERC-721 為整個 NFT 生態系統奠定了基礎。隨著組合性的增長和用戶體驗的改善,該標準的簡潔性仍然是它的超級力量:在可編程世界中,它是獨特所有權的通用語言。






