一个钱包地址两份账:ERC-7631 双生代币对的同步与跳过开关
有些项目希望你用两种方式持有同一样东西:想要流动性时,它是一张可以在交易所里按小数买卖的 ERC-20 代币;想收藏展示时,它是一枚有编号、有图片的 ERC-721。用生活化的方式先给结论:它像把一对孪生账户焊在一起——一个钱包地址在两个账本上各有一份记录,动一个,另一个跟着镜像更新。ERC-7631 把这种“双生代币”结构写成了可查询的标准:它在 ethereum/ERCs 仓库标注为 Final,2024 年 2 月 21 日创建,同时依赖 ERC-20 与 ERC-721。
关系要先能被查到
标准的第一块基石很朴素:两个合约必须能互相指认。ERC-20 侧要提供函数返回配对的 ERC-721 合约地址,ERC-721 侧则要能返回配对的 ERC-20 地址,标准还要求这类查询不得 revert,返回值一旦确定也不得改变。换句话说,在任何人往这对“双生合约”里转入资产之前,先用这两个查询函数确认配对关系是真的、且指向你预期的地址——一个错误的配对意味着你的余额被镜像进了别人的 NFT 账本,而标准本身无法替你阻止这种指错。
跳过开关:把“要不要 NFT”的决定权还给地址
镜像同步有个现实麻烦:每次 ERC-20 转账都自动铸造或销毁 ERC-721,Gas 贵得离谱,而且套利者往往根本不在乎 NFT 那一侧。ERC-7631 的处理方式是把开关下放到每个地址:ERC-20 合约提供 getSkipNFT 查询某个账户是否处于跳过状态,账户自己可以调用 setSkipNFT 切换,切换时发出 SkipNFTSet 事件。处于跳过状态的地址,ERC-20 变动就不触发 ERC-721 的铸造与转账;恢复同步后,账本按份额重新对齐。标准还允许状态不变时也发事件,方便索引器统一处理。
这个设计的诚实之处在于承认了两类用户并存:收藏者要在链上展示藏品,交易者只想要可分割的流动性,系统不必假装所有人都需要那枚 NFT。它说明链上确实能查到每个地址的同步偏好;它不能说明跳过期间镜像比例有没有被别的地址的变化挤压——份额是相对的,池子里别人进出,你手里的每一枚 NFT 对应的 ERC-20 支撑量就会漂移,这正是这类结构最容易被忽略的账目特性。
场景里要注意什么
如果你是第一次接触这类“半同质化”资产,先做三件小事。第一,在钱包里分别核对 ERC-20 余额和 ERC-721 持仓数量,确认镜像关系符合预期,再决定 setSkipNFT 的开合。第二,意识到开关影响 Gas 而不只是偏好:关闭同步时你的 ERC-20 转账更便宜,但 NFT 展示与部分依赖持仓证明的场景会与你无关。第三,理解比例风险:这类资产的价格发现主要发生在 ERC-20 一侧,当流动性枯竭时,NFT 报价与代币价格的剪刀差可能远比你想象的大,流动性从来不是按“两种形态”分别承诺的。
下一步想补课,建议先把 ERC-20 与 ERC-721 的基础差异读扎实,再回来看 ERC-7631,你会发现标准正文其实很短——它聪明在把复杂经济学留在项目层,只把“怎么查、怎么开关”写成通用接口。还有两个新手常问的点值得先说清:其一,跳过开关是账户级而非全局级,同一个 ERC-20 合约里,甲地址跳过、乙地址同步是完全可以并存的状态,别把别人的开关状态当成你自己的;其二,镜像不产生新的资产支撑,它只是同一份份额的两种展示形态,跨形态搬运不改变总量,任何“多出来一份”的理解都意味着把记账看成了凭空造物。把这两条记住,双生代币的大部分困惑就已经提前解掉了。本文不构成投资建议,也不推荐任何具体项目。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。