比特币上的代币协议 Runes 里,有些名字带圆点:A•AAA、RUN•E 这样的写法在索引器与钱包里常见。官方手册的 Runes 规范页说明,圆点由蚀刻(etching)时的一个名为 Spacers 的字段控制——它是个位图(bitfield),从最低位开始,第 N 位决定是否在名字的左起第 N 与第 N+1 个字符之间显示一个圆点。规范直接给了示例:同一个名字 AAAA,位段取 0b1 显示为 A•AAA,取 0b11 显示为 A•A•AA,取 0b10 显示为 AA•AA,取 0b111 则是 A•A•A•A。
把示例拆开看,规律一目了然。最低位对应第一个字符缝:位段为 0b1(只有最低位为 1)就在第 1 与第 2 个字符间打点。往高位走,缝的序号依次递增,多个位同时置 1 就多个缝同时打点。这套结构让一个整数完整承载“名字里每个缝隙要不要圆点”的全部信息,编码成本固定,不存在无限膨胀。放在规范的字节编码语境里看更清楚:Runestone 的字段以“标签—数值”对的形式写入交易,Spacers 是其中一个带奇数标签的可选字段(标签值为 3),与同样是奇数标签的小数位数字段、符号字段同族;协议对未识别的奇数标签采取忽略态度,这类纯展示字段因此既省字节,又不至于因为某个钱包不认识就让整笔交易变成作废品。
规范还写了一条容易被忽略的细则:尾部圆点被忽略(Trailing spacers are ignored)。位图长度理论上可以超过字符缝数量,名字只有四个字母却把第五、第六位置 1,多余的位不产生任何显示效果,也不会报错。对解析方,这条规则划定了“哪些位是垃圾数据”;对铸造方,它意味着位段留白不花钱也不生效。另一条相邻规则同样属于“展示归展示、记账归记账”:符号字段规定代币金额应显示在其后,缺省符号用一个通用的货币占位符呈现——这些细节全部作用于界面排版层,索引器对余额与转账的判定不读取它们。
理解 Spacers 的关键,是把它放进展示层与身份层的分界里看。链上被唯一识别的是代币本身——规范用区块高度与交易序号组成的 Rune ID 标识一枚代币,名字与圆点属于“如何给人看”的一侧:Rune 字段存名字,Spacers 存位段,Symbol 字段指定显示符号,Divisibility 决定小数位。四个字段合起来管的是钱包和浏览器怎么排版,都不参与“这是哪枚代币”的判定。带圆点的 FU•N 与不带圆点的 FUN,如果来自同一笔蚀刻,就是同一枚代币的两种显示;反过来,两笔不同蚀刻即使显示完全相同,也是两枚不同代币。
对普通用户,这个分界有两条直接提醒。搜索与核对时不要以带圆点的显示名当作唯一线索:同一枚代币在支持圆点的界面里是 A•AAA,在不实现 Spacers 渲染的旧工具里就是一串 AAAA,用显示名去搜可能撞上同名不同币的干扰项,最稳的标识永远是 Rune ID 或蚀刻交易号。第二,圆点本身有营销价值——把圆点打进某个字母组合,可以拼出更接近单词或品牌的视觉效果,这使它成为先到先得的展示资源;规范把它的定义与分配规则公开写明,等于把“装饰权”交给索引器校验,而不是任何平台客服。
最后记一个通用习惯:凡遇到“名字/图标/符号可以带特效”的协议,先查特效字段与身份字段的边界。以太坊代币的 emoji 名、Runes 的圆点与符号、各链的昵称标准,机制大同小异——特效字段决定观感,身份字段决定你究竟在和哪笔铸造打交道。圆点还带来一个显示层的次生风险:同一串字母加不同位置的点,肉眼扫过去几乎一样,付款、搜索、比对名单时以 Rune ID 精确匹配,不要以“看着像”成交。边界查清,视觉仿冒就只剩下仿冒,骗不了你的对账动作。
本文为机制说明,不构成任何投资建议。

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