ERC-2569:把代币的图直接存进以太坊的早期尝试
2020 年初,CryptoKitties 式的“链上代币、链下图片”模式正流行:代币代码永久躺在以太坊,小猫的照片却存在项目方自己的服务器上。ethereum/ERCs 仓库里状态为 Stagnant 的 ERC-2569(2020 年 3 月创建)想消除这个错位——图片也存进以太坊。
两组接口:存图与取图
提案把接口分成一侧存、一侧取:写入侧有 setTokenImageSvg 给既有代币换图、mintWithTokenImageSvg、mintNonFungibleWithImageSvg 这类铸造时连图一起写入的函数;读取侧是 getTokenImageSvg,按 ERC-20 的 account 或 ERC-721 的 tokenId 把 SVG 原文取回来。提案自述适用于同质化与非同质化两种代币,甚至设想了给 DAO 声誉代币带上图标这种用法。图为什么选 SVG?文本量小、浏览器原生会渲染,链上几 KB 就能画出一枚图标,成本比存位图低一个量级。

它要解决的失效模式
动机部分说得清楚:图在中心服务器上,就有损坏、丢失、被篡改的风险——服务器撤了、公司倒了、域名过期了,绿勾代币也会变成“查无此图”。把图写进以太坊后,只要以太坊在,图就在;改变图需要一笔改变合约状态的公开交易。代价同样明确:以太坊存储极贵,每张图的铸造成本显著上升,这就决定了它天然的适用面是图标级的小图,而不是高分辨率艺术品。
为什么它停在那里
存图上链的账该怎么算
把 2569 放回它的年代再推一遍账,能理解它为什么没能普及,也能理解什么时候值得再想起它。以太坊的存储成本按写入字节计费,一枚几 KB 的 SVG 折算成 gas 在拥堵时段可能相当于一次不亏的中额转账;更重要的是 gas 上限约束了图片尺寸——每区块能塞的字节有限,全民存图会挤占整条链的区块空间,这是任何“图片全部上链”方案都躲不掉的公共地问题。而 SVG 恰好是少数能兼顾体积极小与视觉完整的格式:纯文本、无损缩放、浏览器原生支持,几十到几百字节能画出可辨识的图案,于是“链上存 SVG”成了一类长尾但真实存在的品类,从头像徽章到协议图标。今天的读者用不到 2569 的标准接口也无所谓——判断逻辑不变:问一张图的字节最终以什么形式落在什么位置,是合约 storage、calldata 的见证区、还是只活在一个随时可能到期的 CDN 域名里。位置决定命运,接口只是标签。
一张图三种存法
把常见的图片存放路线排一遍。路线一,合约存储:字节直接进合约状态,只要链在图就在,成本最高、面最小,SVG 是主力。路线二,内容寻址存储:文件上 IPFS 类网络,URI 里带内容哈希,谁都能自取校验,耐久取决于有人持续钉住文件,是当前的均衡解。路线三,中心服务器:最便宜也最脆弱,域名、公司与法律环境任何一环出问题都可能造成查无此图。读一份元数据里的 URI,前缀是加密哈希还是 https 域名,往往三秒钟就能给一枚藏品的耐久性归队。这份早期提案教给今天的,正是这三秒钟的条件反射。
值得说明的是,这份 2020 年的提案在 ERCs 仓库里的位置本身也是信息:标准状态字段会随时间变化,引用任何提案前都应回到仓库确认当下的标注,而不是转述旧文章的说法。
这份提案没有等来广泛采用,最终在 ERCs 仓库里被标注为 Stagnant。原因可以概括为竞争路线各自跑通:生成艺术把算法上链、图在客户端实时算出来;收藏类转向 IPFS 加 IPFS 网关;再往后 blob 存储与各种专用渲染标准分流了需求。读它今天的价值在于对照:看到一枚“图在链上”的藏品,你可以先查合约有没有实现 getTokenImageSvg 这类读取函数——真把字节存进合约状态的,和只在 URI 里挂个外链的,耐久叙事完全不同。机制讲到这里,它说明“图片存储位置”是一个可以独立核验的变量,不说明任何资产价值。本文不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。