从卡牌游戏到头像合集,“把手里的旧东西烧掉,换一张新的”是常见的迭代方式:v1 升级 v2、碎片合成整卡、旧权益换成新合约席位。这类机制行话叫 burn to mint,中文语境里则常被称作烧旧换新。它的价值主张很直接——不增发、不撒币给场外,存量持有人按规则平移;它的风险主张同样直接——烧掉是链上最不可逆的动作之一,顺序一错,旧凭证没了,新凭证还没影。
链上实现大体分三种。第一种是单合约内升级:同一份合约里预留版本字段或属性状态,销毁与领取由同一台状态机完成,常见做法是调用一个带检查的函数,把旧编号标记为已燃并铸造同地址的新编号,两步在一条交易里原子完成,失败则一起回滚。这种结构最稳,代价是新形态仍挂在老合约名下,属性表要能容纳变化。第二种是跨合约迁移:销毁函数留在旧合约,领取函数在新合约,旧合约把销毁记录广播成事件,新合约靠一段段读取或名单证明来放行领取。跨合约意味着两个部署、两份权限、两套源码,任何一侧可暂停、可改规则,衔接期内可能出现旧币烧完而新币因规则变更发不出的夹缝。第三种是合成配方:不是一比一平移,而是”N 枚旧币加某条件换 M 枚新币”,规则里常有概率、保底、材料限制,逻辑最复杂,也最需要核对配方表与合约事件是否一致。
无论哪种,用户侧的核验骨架一致。烧之前,先确认兑换规则的可验证面:新合约地址是否公布、领取函数是否已部署可读、销毁事件是否被领取逻辑真正引用——最可靠的是读已验证源码,退一步是观察测试地址或公告演示交易。烧之时,优先选择一步到位的原子函数;若必须分两笔,小额试烧一枚是成本最低的探路。烧之后,拿两串交易哈希做交叉:旧合约里出现指向销毁地址或标记位翻转的事件,新合约里同一地址应能查询到对应领取记录,任何一侧缺记录,立刻在反馈渠道固定证据。要特别留意”烧毁即失去一切权利”的场景:若旧通证同时是门票、会员凭证或投票资产,销毁生效的那一刻,旧生态的所有附带权益按条款同步消失,新凭证是否承继这些权益,取决于新条款,而不是直觉。
条款可变是这套机制最大的残余风险。领取资格若绑定项目方签名,对方可以改名单、改截止;新合约若可升级,今天承诺的分配比例明天可能变化;有些活动的”限时烧旧享新”结束后,旧通证并未被永久销毁安排覆盖,形成半升级状态。应对不是回避机制,而是把承诺翻译成可核验对象:上限参数、截止区块高度、领取地址白名单、销毁去向地址,逐项在链上找到对应字段才算数。
最后给一个判断框架:烧旧换新的设计目标通常是控制总供应、奖励存量、平滑迭代,凡是同时宣称这三点却读不出上述任何参数的项目,机制只是营销语言。先读规则再点签名,是这类系统里唯一免费的保险。
销毁的去向也构成一条可读的审计线。多数实现把通证转进零地址或以 0xdead 结尾的公共销毁地址,并在同一个函数里递减供应计数、发出销毁事件;也有合约不发转账、只把所有权映射清零,这类“逻辑销毁”没有转账记录,只能靠事件与状态读取确认。对持有人的影响是核对口径不同:转账型销毁可在交易历史里直接看到币去了哪,映射清零型则要在合约只读函数里查该编号的当前所有者与标记位。领取端的记录同样分两层:链上领取函数应留下接收地址与新编号的铸造事件;若兑换走“提交签名名单”模式,新合约会校验你提交的资格参数,拒绝不在名单内的领取。两条链合起来,一次成功的烧旧换新应当在数据源上留下两枚可互查的交易哈希——任何“已销毁、待发放”的口头状态,都值得用这两串哈希去验证真伪。
本文为机制说明,不构成任何投资建议。

发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。