符文|福文🧧
符文,又称福文🧧,允许比特币交易来刻画、铸造和转移比特币原生的数字商品。
虽然每个铭文都是独一无二的,但每个符文的每个单位都是相同的。它们是可互换的代币,适用于多种用途。
符石
称为符石的符文协议消息,存储在比特币交易输出中。
符石输出的脚本公钥以一个OP_RETURN开始,接着是OP_13,然后是零个或多个数据推送。这些数据推送被连接起来并解码成一系列128位整数,最终解析成一个符石。
一笔交易最多可以有一个符石。
符石可以刻画一个新的符文,铸造一个现有的符文,并将符文从交易的输入转移到输出。
一个交易输出可以持有任意数量的符文余额。
符文通过ID来识别,ID由刻画符文的区块和该区块内刻画交易的索引组成,以文本形式表示为BLOCK:TX
。例如,在第500个区块的第20笔交易中铸造的符文的ID是500:20
。
刻画
符文通过刻画而产生。刻画创建一个符文并设置其属性。一旦设置,这些属性即使对其刻画者来说也是不可变的。
名字
名称由A到Z的字母组成,长度在一到二十八个字符之间。例如UNCOMMONGOODS
是一个符文名称。
名称可以包含空格符,表示为点符号,以帮助提高可读性。UNCOMMONGOODS
可能被刻画为UNCOMMON•GOODS
。
名称的唯一性不依赖于空格符。因此,即使空格符不同,也不能用与现有符文相同的字母序列来刻画一个符文。
Spacers can only be placed between two letters. Finally, spacers do not count towards the letter count.
可分性
符文的可分性是指它可以被细分到多少个原子单位。可分性以符文数量中允许的小数点后数字位数来表示。可分性为0的符文不能被分割。可分性为1的符文可以被分割成十个子单位,可分性为2的符文可以被分割成一百个,依此类推。
符号
符文的货币符号是一个单一的Unicode代码点,例如$
、⧉
或🧿
,显示在该符文数量之后。
具有可分性2和符号🧿
的101个原子单位的符文将被渲染为1.01 🧿
。
如果符文没有符号,应使用通用货币符号¤
,也称为圣甲虫。
预挖
刻画符文的人可以选择性地为自己分配被刻画的符文单位。这种分配称为预挖。
条款
符文可以有一个开放的铸造,允许任何人为自己创建和分配符文单位。开放铸造受到刻画时设置的条款的约束
只要铸造的所有条款都得到满足,铸造就是开放的,当其中任何一个不满足时,铸造就关闭了。例如,铸造可能被限制在一个开始高度、一个结束高度和一个上限之间,并且在开始高度和结束高度之间或直到达到上限时开放。
上限
符文可以被铸造的次数是其上限。一旦达到上限,铸造就关闭了。
数量
每笔铸造交易创建一个固定数量的新符文单位。
开始高度
铸造从给定开始高度的区块开始开放。
结束高度
符文不能在给定结束高度的区块之后被铸造。
起始偏移
铸造从其高度等于开始偏移加上刻画符文的区块的高度的区块开始开放。
结束偏移
符文不能在其高度等于结束偏移加上刻画符文的区块的高度的区块之后被铸造。
铸造
当符文的铸造是开放的时,任何人都可以创建一个铸造交易,根据铸造的条款创建一个固定数量的新符文单位。
转移
当交易输入包含符文,或者通过预挖或铸造创建了新的符文时,这些符文被转移到该交易的输出。交易的符石可能会改变输入符文转移到输出的方式。
法令
符石可以包含任意数量的法令。法令由一个符文ID、一个数量和一个输出编号组成。法令按顺序处理,将未分配的符文分配给输出。
指针
在所有法令处理完毕后,剩余的未分配符文被转移到交易的第一个非OP_RETURN输出。符石可以选择性地包含一个指针,指定一个替代的默认输出。
燃烧
符文可以通过将它们转移到一个包含法令或指针的OP_RETURN
输出来燃烧。
墓碑
由于多种原因,符石可能会形成错误,包括符石OP_RETURN
中的非推送数据操作码、无效的变长整数或无法识别的符石字段。
形成错误的符石被称为墓碑.
输入到包含墓碑的交易的符文被燃烧。在包含墓碑的交易中刻画的符文被设置为不可铸造。在包含墓碑的交易中的铸造计入铸造上限,但铸造的符文被燃烧。
墓碑是一种升级机制,允许符石被赋予新的语义,改变符文的创建和转移方式,同时不会误导未升级的客户端关于这些符文的位置,因为未升级的客户端会看到这些符文已经被燃烧。