一個市場頁面給你看的是一個名字、一張圖、一個系列,有時還有一條警示標籤,說這件物品已被報失竊。這四樣,沒有一樣是區塊鏈記錄的事實。鏈記錄的是哪個合約持有哪個 token ID、以及此刻歸誰所有;頁面上其餘的一切,都是市場、或者當初鑄造它的人所作出的聲明。安全地讀一條掛單,歸根到底就是把這兩者分開。
一條市場掛單到底是甚麼
一條掛單是一份按既定條款出售的要約;在簽名訂單這種設計裏,它是一條訊息,而不是一筆交易。賣家仍然持有物品,用自己的錢包對條款簽名,市場把這個簽名存起來。只有當買家提交一筆交易去履行這份要約時,代幣才會移動。EIP-712,也就是以太坊那份關於類型化結構數據哈希與簽名的標準,正是為這個模式寫的:它自陳的目標是改善鏈下訊息簽名在鏈上使用時的可用性,因為這樣做能省 gas,並減少區塊鏈上的交易筆數。
要約住在鏈下,由此有兩個後果。市場可以展示一條掛單、把它藏起來、或者拒絕提供它,而這三件事沒有一件碰到代幣本身。而因為履行要約必須把物品從賣家錢包裏移走,賣家必須事先給市場的合約授過權——那就是一次普通的代幣授權,ERC-721 把它描述為:讓一個操作者管理調用者的全部資產。
為甚麼做一個像樣的仿冒幾乎不花錢
鑄造是開放的。任何人都可以部署一個遵循與某個既有系列相同代幣標準的合約,給它起同樣的名字與代號,讓每一件都指向同一批圖片,然後鑄出 10,000 件。標準並不阻止這件事,因為標準定義的是代幣怎麼轉移、歸誰所有,而對一枚代幣被允許描繪甚麼隻字未提。
這正是 NFT 的唯一性需要被精確表述的地方。代幣是唯一的:ERC-721 用合約內部一個唯一的 uint256 ID 來標識每一枚 NFT,而這個條目無法被複製、也無法被拆分。它所指向的那張圖沒有這層保護。唯一性是賬本條目的屬性,不是畫作的屬性。
讓複製變便宜的是元數據。在元數據擴展下,tokenURI 為給定資產返回一個獨特的統一資源標識符,而標準註明該標識符可以指向一個符合 ERC721 Metadata JSON Schema 的 JSON 檔案。標識符是一個指針。兩個不同的合約可以指向同一個檔案,而控制着目標地址的人,之後可以更換那裏放的東西。
唯一抄不走的那個標識
合約地址是仿冒者拿不走的那一部分。ERC-721 寫明:合約地址與 token ID 這一對,是以太坊鏈上一件特定資產的全局唯一且完全限定的標識符。兩個系列可以共用一個名字、一個代號、以及每一張圖;它們無法共用一個地址。
所以真正能判定一條仿冒掛單的核對,不是看圖看名。把掛單上的合約地址取出來,與項目方在你自己走到的渠道上公佈的地址逐字符比對。如果兩者不同,那麼擺在你面前的這件東西屬於另一個系列,無論頁面上方寫着甚麼。
介面探測補不上這個缺口。ERC-165 建立了一套標準方法,用來發佈與探測一個智能合約實現了哪些介面,調用方可以調用 supportsInterface 來判斷一個合約是否實現了它能用的介面。那告訴你的是:這個合約表現得像一個 NFT 合約。它不告訴你:這個合約就是你想找的那一個。
驗證徽章是甚麼,又不是甚麼
徽章是市場作出的一項背書。它說的是某個帳號或某個系列通過了這家市場自己跑的那套審核,因此它是一句關於市場自有記錄的陳述:由這家場所授予、在這家場所生效、也能被這家場所撤下。
所以徽章不跟着走。同一個合約可以在一家場所帶着徽章、在另一家沒有,而兩種情況下代幣完全相同,因為徽章的任何部分都沒有被寫到鏈上。把它當作若干輸入之一來讀,而把地址比對留作那個作決定的。
徽章自身也招來冒充。一張徽章的截圖、一個只換掉一個字符的系列名、或者一個照着真帳號做的資料頁,製作成本都低於真正拿到一個徽章,而它們對任何讀到徽章就停下的人都有效。
被盜標記是甚麼,它能擋住甚麼
一個標記是市場自有數據庫裏的一條備註,在有人報告某件物品被從他那裏拿走之後掛上去。那份報告是一個人作出的聲明,而標記記錄的是這份聲明已被接收並進入審核,而不是任何法院已經裁定了甚麼。
鏈上沒有對應的欄位。ERC-721 定義的介面覆蓋的是餘額、歸屬、轉移與授權,到此為止:ownerOf 這個函數回答的是誰持有一枚代幣,而沒有任何函數回答他是怎麼持有的。攔截也不在這個介面裏。規範寫的是:實現方可以在其他情形下拋出異常,並把「禁止某個地址接收 NFT」列為這樣一種可選做法——這就把那個決定放進了某一個具體合約裏,而不是放進所有系列共用的那份標準裏。
這個缺口決定了一個標記能做甚麼。在自己的介面上,市場可以隱藏這件物品、關掉買賣、並對打開頁面的人發出警示。出了這些介面它就沒有槓桿:所有者仍然可以調用 transferFrom,另一家場所保有自己那套記錄、可能把同一件物品顯示成尋常物品,而標記並不會把物品還給失去它的那個人。如果某次轉移真的在合約層被擋下,那是這個系列自己的代碼在起作用,不是市場的標記。
由此有兩種處境。如果你持有一件被標記的物品,你的救濟通道走的是市場自己的申訴流程,因為標記住在市場那邊。如果你正打算買一件,先弄清你會持有的是甚麼:一件鏈上說屬於你、而你買它的那家場所不讓你轉賣的物品。
| 關於一件物品的問題 | 答案存在哪 | 是否跟着代幣走 |
|---|---|---|
| 此刻歸誰所有 | 合約,通過 ownerOf | 是 |
| 它是哪個合約的哪個 token ID | 鏈本身 | 是 |
| 這個系列是不是官方那個 | 市場自有的記錄 | 否 |
| 它是否被報失竊 | 市場自有的記錄 | 否 |
| 你在這裏是否被允許交易它 | 市場自有的政策 | 否 |
那條其實是在要你簽名的掛單
有些仿冒掛單根本不賣任何東西。那個頁面存在的目的,是把一個簽名彈窗擺到你面前,而彈窗要的是對你整個系列的授權,不是一筆購買。簽下去,對手方就能移走這份授權覆蓋的每一件物品,這正是錢包抽乾器背後的機制。
簽名標準的來歷解釋了為甚麼這件事用眼睛難以抓住。EIP-712 之所以被寫出來,是因為在那之前,被簽的訊息一直是一串向用戶展示的不透明十六進制,幾乎不給出構成這條訊息的各項的上下文。結構化簽名改善了這一點,同時也遞給了騙局一個看起來正當的外殼,所以真正的防線是讀解碼後的內容,而不是相信彈窗的外形。
有兩個習慣能把這件事壓下去。通過你自己保存的地址進入一個市場,而不是通過一條送上門來的鏈接;並且讀清彈窗授權的是甚麼:一次購買要花錢、移動一枚代幣,而一次授權在簽名時不花錢、卻對許多枚代幣授出長期有效的許可。
買之前該核的幾件事
| 核甚麼 | 與甚麼比 | 對不上意味着甚麼 |
|---|---|---|
| 合約地址 | 項目方自己公佈的地址 | 這是另一個系列,無論名字怎麼寫 |
| token ID | 你以為自己在買的那一件 | 掛單指向的是另一件 |
| 元數據與圖片 | 系列自己公佈的檔案 | 圖是借來的,不是它自己的 |
| 簽名彈窗 | 你本來想做的動作 | 你在授權訪問,而不是在買 |
| 這家場所的交易狀態 | 該物品是否掛着一份報告 | 在這家場所可能無法轉賣 |
順序在這裏是有講究的。地址比對排第一,因為它是唯一一條建立在鏈上的;其餘每一條都是某個人持有的記錄。在你去看價格、稀有度、或者頁面上說還剩多少時間之前,先把它跑完。
小結
一個市場頁面混着兩類陳述。鏈貢獻的是很小、可核的一組:哪個合約、哪個 token ID、此刻歸誰。其餘的由市場貢獻,包括系列名、徽章、以及任何被盜標記,那全都是它自己的記錄,而不是代幣的屬性。
仿冒掛單吃的是第一種混合:把一切可以免費複製的都複製過來,賭你永遠不去核那個地址。標記屬於第二種:真實的資訊,由一家場所持有,對鏈、以及對其他場所都沒有觸及力。先於一切去比對合約地址,讀清一個彈窗要你簽的是甚麼,並把一個標記當作關於某一家市場記錄的訊號,而不是對這件物品的判決。想繼續打好這些基礎,請追蹤 Bitbase(幣貝)學院的更多內容。
相關閱讀
幣貝上與本主題相關的其他文章:
風險披露:本文為 Bitbase(幣貝)學院的科普內容,僅供教育與資訊參考,不構成任何投資、交易、稅務或財務建議。加密資產波動劇烈,請自行評估風險。本文撰寫於 2026 年 9 月,請以官方最新資訊為準。
參考資料
[1] Ethereum Improvement Proposals,ERC-721: Non-Fungible Token Standard,狀態 Final eips.ethereum.org
[2] Ethereum Improvement Proposals,EIP-712: Typed structured data hashing and signing,狀態 Final eips.ethereum.org
[3] Ethereum Improvement Proposals,ERC-165: Standard Interface Detection,狀態 Final eips.ethereum.org






