NFT 开图流程详解:什么变了,什么时候变

2026-09-03

NFT 开图流程详解:什么变了,什么时候变

你铸造完,集合里每一枚代币都显示同一张灰色占位图。一天之后图出来了,稀有度网站告诉你手里拿的是什么。这中间你的代币没有动过,也没有往它身上加任何东西。开图是合约那边一个字符串发生变化,加上一份在任何人能看到结果之前就已经定好的对应关系。

NFT 开图流程详解:什么变了,什么时候变:要点一览

开图改变的是什么

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(币贝)学院。

相关阅读

币贝上与本主题相关的其他文章:

- 非同质化代币的碎片化持有:风险落在哪里

- NFT 铸造成功,钱包里却看不到

- NFT 可选版税详解

- 什么是 SuperVerse

- 私钥与助记词:两者有何区别?

风险披露:本文为 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

相关推荐

更多推荐