CryptoZombies 教出来的那套合约写法,后来在 NFT 上留下了什么 图 1
CryptoZombies 教出来的那套合约写法,后来在 NFT 上留下了什么 · 图 1

对很多开发者来说,Solidity 的第一行代码是在养僵尸的教程里写下的。CryptoZombies 把写合约教成玩游戏:每一课给你的僵尸合约加一个功能,整条课走完,你手里有一份能跑的小游戏合约。这一篇不教教程,而是回看它的链上对象设计,看它当年把哪些写法示范成了行业习惯,这些习惯放到今天的 NFT 语境里又暴露出什么。产品描述以官网为准,核验时间 2026 年 8 月。

它的核心对象设计有两件东西值得拆。第一件是组合式代币:教程早期就引入把外部代币合约引用写进自己合约的写法,僵尸的喂养、繁殖都要和链上资产交互。这个设计教出来的习惯——在合约里声明接口、按地址引用外部合约——正是后来所有 NFT 合约与代币、与市场合约对话的标准姿势。第二件是基因:每只僵尸有一个数值基因,繁殖就是两段基因按规则混合出新基因,再由基因决定外观与能力。用状态数据而不是图片文件来定义一个链上对象的视觉与稀有度,这套思路与同期的 CryptoKitties 基因模型一起,构成了后来属性类 NFT 的早期原型:数值决定一切,渲染交给前端。

由基因模型自然引出它的供应设计课。繁殖让存量自动增长,冷却与等级限制控制节奏——这正是 2017 年加密猫用网络拥堵教会整个行业的那一课,教程把它变成了可复现的练习。今天看这类可自增殖对象,核心矛盾没变:增长由持有人在合约规则内自由触发,供应曲线若不封顶,早期的稀缺承诺会随存量膨胀而稀释;而每一次繁殖都要上链,链上活跃期也就是拥堵与手续费高峰。任何带合成、升级、繁殖字样的 NFT 产品,值得先问供应上限到底封顶没有,再谈稀有度。

对 NFT 开发者的遗产里还有一条不太光彩的:教程时代的合约普遍把全部状态写成公开可读,主角们的一举一动都是链上公开数据。这在教学里是便利,在现实里是隐私教材——持仓画像、行为画像、关系画像都可以从公开状态里拼出来。后来灵魂绑定凭证、私有状态与零知识方案各自发展的动机之一,正是补这一课。

给收藏者的落点放在机制上:一个对象的稀有度如果完全由链上数值组合决定,它的可复现性与可验证性比一张图片文件名更强,任何工具都能独立验算;但稀有度算法公开也意味着边际优化会集中涌向高价值组合,属性溢价会被套利磨平。评估这类藏品时,算法的分布设计(每个属性组合的概率是否均衡)比宣传页上的稀有标签更接近真实稀缺度。本文为案例与机制复盘,不构成任何投资建议。

再补一个时间维度的问题:许可状态是随时间变化的。CC 许可一经发布不可撤销,但上游版本之间可能换许可,比如项目早期版本用非商业条款、后续版本改 CC0,这时你手里持有的究竟是哪个版本就至关重要,版本信息常散落在元数据、发布说明或代码仓库标签里,需要自己核对而不是问社群。另一个时间问题是平台迁移:早期平台关张后,作品与许可声明随旧服务器消失,链上令牌还在但许可说明找不回,这类情况下保守做法是回到原始发布记录找声明原文,找不到就按最严格解释行事。把时间维度纳入许可检查,比只记条款文字更接近真实风险,因为许可纠纷的焦点经常就是哪一时刻、哪一版本的条款适用。