你鑄造完,集合裡每一枚代幣都顯示同一張灰色佔位圖。一天之後圖出來了,稀有度網站告訴你手裡拿的是什麼。這中間你的代幣沒有動過,也沒有往它身上加任何東西。開圖是合約那邊一個字串發生變化,加上一份在任何人能看到結果之前就已經定好的對應關係。
開圖改變的是什麼
NFT 是一個 id,由智能合約記在某個擁有者地址名下。名稱、描述和圖,都不在這條紀錄裡。
ERC-721 代幣標準把它們放在一個函式後面。給定一個代幣 id,tokenURI 回傳一個統一資源識別碼,規範還補充說這個 URI 可以指向一份符合 ERC721 Metadata JSON Schema 的 JSON 檔案。畫廊畫出來的一切,都來自這個指標的另一端。
開圖之前,這個函式對集合裡的每一個 id 都回傳同一份佔位文件。開圖之後,每個 id 各自解析到自己的文件。整件事就是這樣:合約遞回來的字串變了,另一端的文件從「每個 id 都一樣」變成「每個 id 不一樣」。
你的代幣其餘部分都沒變。id 是同一個,擁有者是同一個,轉帳歷史是同一份,你也不需要簽任何東西。開圖是集合做的一件事,不是你的代幣經歷的一件事。
為什麼集合先賣再放圖
如果銷售期間圖就是可見的,買家就能讀出 id 到圖的對應關係,只買值得買的那些 id。鑄造會變成搶特定 id 的比賽,集合裡剩下的部分則無人問津。
盲售透過拿掉資訊來拿掉這個選項。每個買家買到的都是同一份未知,而對應關係只在銷售已經不可能被它左右之後才公佈。所以這段延遲是刻意設計,不是技術上的必須 —— 一個集合好幾天不開圖,本身並不說明出了問題。
開圖由兩個決定組成
開圖是兩件可以分開的事,日常說話時它們被混在一起。一件是對應:哪一份元數據條目歸哪一個代幣 id。另一件是切換:合約從什麼時候開始回傳按 id 分的文件,而不再回傳佔位文件。
切換是一筆誰都看得見的交易。對應是一條事先定好的規則,公平性問題真正落在這裡。一個集合可以在眾目睽睽之下完成切換,卻是在看清誰買了哪個 id 之後才選定的對應關係 —— 也就是說,流程裡看得見的那一半,並不是需要核查的那一半。
切換就是擁有者的一筆交易
在一份靠回傳固定 URI 來提供佔位圖的合約裡,開圖意味著持有擁有者權限的帳戶呼叫一個 setter,改掉合約用來拼答案的那個基礎 URI。一筆交易,集合裡每一個 id 都解析到了新地方。
這根槓桿,正是決定元數據凍沒凍住的那一根。只要還有帳戶能把集合指向別處,開圖之後它就還能再指向別處一次。已開圖和已凍結是兩個不同的斷言,前者並不蘊含後者。
對應就是一個偏移量
一個 id 一個 id 地分配圖,會變成每個 id 一筆交易。改用一個數就夠了:一個起始索引,只抽一次,套到整個集合上。
設一個 10,000 枚代幣的集合,元數據集按一個固定且已公佈的順序編號。抽到的起始索引是 3,142,規則就是代幣 id 一取到元數據第 3,143 條,序列走到列表末尾會繞回來,於是 id 6,859 取到的是回到表頭的那一條。
於是一個數就把整張對應表定死了。沒有人需要相信一萬次分配每一次都做得誠實,因為只有一次抽取需要推敲,而且一旦紀錄到鏈上,就不可能悄悄重抽。
在任何人看到之前先對圖做出承諾
偏移量打亂的是一份列表。它完全沒說這份列表本身是不是事先就定好了 —— 一個能在抽取之後修改列表的集合,照樣可以把好看的圖放到它想放的位置。
溯源雜湊補上的就是這一半。圖按已公佈的順序各自雜湊,雜湊拼接起來,結果再雜湊一次,並在開賣之前公佈。開圖之後任何人都可以對開出來的檔案重做這幾步再比對。對得上,說明這份集合與它的順序就是當初承諾的那份;對不上,說明有東西被動過。
這兩個斷言要分開讀。溯源雜湊管的是列表裡有什麼。起始索引管的是列表從哪裡切開。只公佈其中一個,另一半就沒有被證明 —— 這件事值得在鑄造之前查,而不是之後。
偏移量從哪裡來
這次抽取必須在銷售進行中不可預測,在銷售結束後可驗證。正是這兩條要求,讓這個數的來源成了關鍵,而不是一個細節。
在合約內部用區塊資料推出來是便宜的路子,它的弱點在於區塊資料由一方生產,而這一方既看得到交易、又對它有一定控制力。可驗證隨機性服務走的是另一條路:數值連同一份證明一起送達,證明它是由一個已承諾的金鑰和這次請求生成的,合約可以先驗證證明再接受這個數。
第三種做法繞開了時點問題:在最後一枚代幣售出之前什麼都不分配,於是抽取無法被賣方掐著自己手上的部位來挑時機。
開圖看起來卡住的時候
| 你看到的 | 底下發生的事 | 什麼能改變它 |
|---|---|---|
| 每一枚代幣都還是同一張佔位圖 | 合約仍然回傳開圖前的 URI | 集合去做那次切換 |
| 別人已經開圖,你這一格沒開 | 平台提供的是一份較舊的快取副本 | 在那個平台上刷新 |
| 圖出來了,屬性沒有 | 文件載入了,屬性列表沒有 | 等文件完整後再讀一次 |
| 屬性與某個稀有度網站顯示的不一樣 | 兩個工具對同一組屬性的算法不同 | 沒有,因為它們回答的是不同的問題 |
前兩行常被當成同一個問題讀,其實不是。第一行是關於鏈的斷言,怎麼刷新都不會動它。第二行是關於某一個平台存下來的副本的斷言,向那個平台要一次元數據刷新,正是能清掉它的那條指令。
判斷自己碰到的是哪一種之前,先查合約。在區塊瀏覽器上用你的 id 讀一次 tokenURI,拿到的是鏈上的答案;如果這個答案仍然是佔位 URI,那麼對所有人來說開圖都還沒有發生。
開圖不決定的事
稀有度不是在開圖那一刻產生的。它在元數據集被造出來、偏移量被抽出來的時候就定了,開圖只是讓它變得可讀。一枚代幣不會因為某個網站開始顯示它就變得稀缺。
開圖也不裁定稀有到底是什麼意思。數每個屬性有多不尋常,和給整枚代幣打一個分,是兩種不同的運算,所以兩個工具可以對同一個已開圖的集合給出不同排名,而特徵稀有度是若干種方法裡的一種,不是答案本身。
它也不鎖死任何東西。開圖把集合指向了新的文件。這些文件之後還能不能被改,取決於它們放在哪裡,以及誰還握著那把能設定指標的鑰匙。
小結
開圖 = 一次指標變更,加上一份事先定好的對應表。指標變更是公開的,也容易驗證。承諾都在對應表這一側:開賣前公佈的溯源雜湊定死了列表裡有什麼,來自誰都左右不了的源頭的起始索引定死了列表從哪裡切開。
鑄造之前,看這兩樣有沒有白紙黑字寫出來,再看那個完成切換的帳戶之後還能不能再切一次。鑄造之後,把「集合還沒開圖」和「平台還沒跟上」分開,因為這兩件裡只有一件是你能動手處理的。想繼續打基礎,歡迎持續關注 Bitbase(幣貝)學院。
相關閱讀
幣貝上與本主題相關的其他文章:
風險披露:本文為 Bitbase(幣貝)學院的科普內容,僅供教育與資訊參考,不構成任何投資、交易、稅務或財務建議。加密資產波動劇烈,請自行評估風險。本文撰寫於 2026 年 9 月,請以官方最新資訊為準。
參考資料
[1] Ethereum Improvement Proposals,ERC-721: Non-Fungible Token Standard eips.ethereum.org
[2] Ethereum Improvement Proposals,ERC-4906: EIP-721 Metadata Update Extension eips.ethereum.org






