Runes 的开放铸造什么时候算关闭:六项条款与先到的那一条 图 1
Runes 的开放铸造什么时候算关闭:六项条款与先到的那一条 · 图 1

在 Runes 里,“能不能 mint”不是由发行方临时决定的,而是在蚀刻那一刻就把条件写成一组不可修改的条款。规范文档对这套机制的表述是:蚀刻创建一枚 rune 并设定其属性,属性一旦设定即不可更改,连蚀刻者本人也不行;随后,任何人只要满足条件就可以自行铸造。

六项条款分别管什么

规范列出的条款如下:

  • Cap(上限):一枚 rune 可以被铸造的次数,达到即关闭。
  • Amount(每次数量):每一笔铸造交易固定新增多少单位。
  • Start Height(起始高度):从指定高度的区块开始,mint 处于开放状态。
  • End Height(结束高度):在该高度的区块之内或之后的区块,不允许再铸造。
  • Start Offset(起始偏移):从”蚀刻所在区块高度 + 偏移值”那个区块开始开放。
  • End Offset(结束偏移):不允许在”蚀刻高度 + 偏移值”那个区块之内或之后铸造。

判定的总原则写在 Terms 一节:只要全部条款都满足,mint 就是开放的;任何一条不满足,就关闭。文档给了一个组合例子:一个 mint 同时被起始高度、结束高度和上限限制,那么它会在起始高度到结束高度之间开放,或者一直到上限打满为止,哪个先到算哪个。

Runes 的开放铸造什么时候算关闭:六项条款与先到的那一条 图 2
Runes 的开放铸造什么时候算关闭:六项条款与先到的那一条 · 图 2

高度与偏移的差别在哪

高度条款是绝对坐标,偏移条款是相对坐标。前者的含义随网络进度直接变化;后者锚定在蚀刻区块上,等于把开放时间窗写成”发行后第 N 个区块起、第 M 个区块止”。对参与人来说,两者读法不同:看绝对高度要自己判断还剩多少区块,看偏移则要先把蚀刻高度取出来再加。规范里 “may not be minted in or after the block” 的措辞也值得注意,它把边界区块本身算在禁止一侧。

为什么出错的 mint 也占额度

Cenotaphs 一节说明:runestone 可能因 OP_RETURN 里出现非推送类操作码、varint 不合法或字段无法识别等原因变成畸形,畸形 runestone 被称为 cenotaph。后果分三条:在带 cenotaph 的交易里输入的 rune 会被烧毁;该交易中蚀刻的 rune 被置为不可铸造;该交易里的铸造会计入上限,但铸出来的 rune 被烧掉。第三条最容易被误解——上限是被消耗掉的,即使这一笔没有给你任何余额。

mint 前自查
1. 取该 rune 的蚀刻交易高度与 runestone 里的 terms
2. 分别算出 start/end height 与 start/end offset 换算后的实际高度
3. 用索引器读当前铸造计数,与 cap 比较
4. 确认自己的交易脚本只有推送数据、varint 合法,避免被判 cenotaph

一点边界提醒

条款是协议层的硬约束,但它管不到”内容好不好”。同一枚 rune 在不同索引器上的展示口径可能有差别,特别是畸形 runestone 的判定:规范明确说 cenotaph 是一种升级机制,让新语义不至于误导未升级的客户端——未升级的客户端会把那些 rune 看成已被烧毁。读到这里就能明白:把”某个浏览器没显示”直接等同于”协议判定”,是这类代币最常见的误读。

还有一处口径需要盯紧:规范对 cap 的定义是一枚 rune 可以被铸造的次数,而 amount 定义每笔铸造固定产生多少单位。两者相乘才接近多数人直觉里的“能铸出多少量”,把 cap 直接读成单位总量上限,是最常见的读法错误。假设一项条款写作 cap 一千、amount 十,那么开放的是一千次铸造机会,而不是一千个单位。用索引器核对时也要分别读这两个值,不要只看某个页面显示的“剩余数量”。

条款不可更改这件事,对参与人的实际影响比看起来更大。因为蚀刻设定属性后“即便对蚀刻者也不可变更”,发行方想延长窗口、放宽上限,通常只有重新蚀刻一枚新的 rune 一条路,而不是给老的改参数。于是链上常会出现同名近似、窗口不同的多枚 rune,它们各自的编号(规范用区块与交易序号组合的形式表示,例如第 500 块第 20 笔写作 500:20)才是区分身份的依据。看到“官方已延长 mint”这类说法时,先确认它指的是哪一枚、条款是怎么写的。

还有一个只存在于规范细节里的现象值得知道:畸形 runestone 被称为 cenotaph,它同时是一种升级机制。规范的解释是,新的语义可以先让未升级的客户端把那部分 rune 看成已经被烧毁,从而不至于误导它们关于币在哪儿的判断。落到读数据的人身上,结论是同一个字节序列在新旧索引器上可能给出两种描述,而两者都不算错。要判断自己看到哪一种,可以核对自己使用的索引器版本,再用另一份独立实现交叉验证同一笔交易的输出,两边一致之后再谈数量与余额。

本文为机制说明,不构成任何投资建议。