最近很火的铭文(inscriptions)是什么意思?


2022 年 12 月,比特币开发者 Casey Rodarmor 发布了一款名为 ORD 的开源软件,该软件运行在 Bitcoin Core 软件之上。ORD 允许用户分两步铸造比特币 NFT:1)在比特币区块链上输入任意的信息,如一串文本或图像(“inscription”,有的翻译称之为铭文),2)将上传的铭文与一个特定的 satoshi 相连(“ordinal”)。Satoshi 是比特币的最小单位。1 BTC = 100,000,000 satoshi。最终的成品是一个带有铭文的 satoshi,也就是所谓的比特币 NFT。

铭文(inscriptions)

在铭文被上传过程中,信息被刻入比特币交易中 witness data 的 taproot script。与铸造以太坊 NFT 不同,在以太坊 NFT 中,每个新创建的 NFT 都是一个单独的 ERC-721 代币,而铭文的上传不会创建新的代币。相反,它们将任意信息绑定到现有的代币上(satoshi)。

Segregated Witness(SegWit)和 Taproot 这两个比特币网络的更新使铭文成为可能。SegWit 发生在 2017 年 7 月,增加了 witness data 的大小。Taproot 于 2021 年 11 月完成,使在比特币交易中插入任意的 witness data 变得更加容易。

铭文由内容类型(也称为 MIME 类型)和内容本身组成,内容本身是一个字符串。铭文内容完全在链上,他们被存储在 taproot script 中。

例如,铭文 “Hello, world!” 可以通过如下代码实现:

1 OP_FALSE
2 OP_IF
3      OP_PUSH “ord”
4      OP_1
5      OP_PUSH "text/plain;charset=utf-8"
6      OP_0
7      OP_PUSH "Hello, world!"
8 OP_ENDIF

首先,输入字符串

ord

以表明接下来是基于 ORD 的铭文。

OP_1

表示下一次推送包含的是铭文内容的类型,这个例子里是一个 utf-8 文本字符串。其他类型包括图像(jpeg、gif)、视频(mp4)、应用程序(pdf)等。

OP_0

表示后续数据推送包含内容本身,在这个例子里是 “Hello, world!”。大型的铭文需要用到多个数据推送,因为 taproot 的少数限制之一是单个数据推送不得超过 520 字节。铭文的理论最大容量为 400,000 字节,因为一次铭文交易理论上可以占用一整个比特币的区块(4MB,但实际上,Bitcoin Core 将此大小限制为 400,000 字节)。

铭文内容包含在比特币交易的输入中,并与这个交易的第一个输出的第一个 satoshi 相关联。然后可以根据 Ordinal 理论追踪这个 satoshi,允许它被转移、购买、出售、丢失和恢复。

铭文引发的争议之一是,使用 taproot script 来存储任意数据并不是 taproot 更新的意图。如果比特币社区知道会引发这一意想不到的后果,taproot 更新多半就不会被通过。然而,现在没有什么法子可以限制 taproot script 的这种特殊应用。所以 ordinals(比特币 NFT)并不会消失。

Ordinals( Ordinal 理论)

Ordinal 理论将任意的特征(铭文)与单个 satoshi 相关联,并允许跟踪和转移单个 satoshi。但它不是一个复杂的机制。相反,它是一个简单的 satoshi 编号方案。

所有生成的 satoshi 由 Ordinal 理论根据两个规则进行编号。

首先,编号按照开采的顺序分配给 satoshi。例如,第一个比特币区块(创世区块)中的第一个 satoshi 序数为 0,第二个序数为 1。

由于比特币的 UTXO 模型,satoshi 一直作为未使用的输出存在,但交易会重构输出并创建新的输出。Ordinal 理论根据“先进先出”的原则跟踪 satoshi 从一笔交易的输入到其输出,这是 Ordinal 理论的第二条规则。

例如,下面这笔交易有三个输入和两个输出,都标有各自的值:

[2] [1] [3] → [4] [2]

现在让我们用每个输入所包含的 satoshi 的编号来标记他们,并暂时把每个输出标记为问号。因为 satoshi 的编号大得难以想象,所以让我们在这个例子中使用字母 a 到 f 来替代:

[a b] [c] [d e f] → [? ? ? ?] [? ?]

根据先进先出的规则,问号很容易弄清楚:

[a b] [c] [d e f] → [a b c d] [e f]

你可能会问,交易手续费呢?好问题!让我们假设一下相同的交易,这次的费用为两个 satoshi。有费用的交易在输入中发送的 satoshi 比输出接收的要多:

[2] [1] [3] → [4]

结果,satoshi “e” 和 “f” 不会再出现在输出中,因为它们作为交易费用流向了开采这个区块的矿工:

[a b] [c] [d e f] → [a b c d]

根据 Ordinal 理论,交易支付的费用被视为 coinbase transaction 的额外输入,并按照其相应交易在区块中的顺序进行排序。区块的 coinbase transaction,假设它只包含一笔交易,便会变成如下所示:

[SUBSIDY] [e f] → [SUBSIDY e f]

这里 SUBSIDY 是指区块奖励,即给予该区块矿工的比特币。SUBSIDY 的编号遵循第一条规则,该规则规定编号按开采顺序分配给 satoshi。

虽然铭文(图像、视频等)是完全存储在链上的,但 Ordinals 理论不是。铭文和单个 satoshi(Ordinal)之间的联系是由 Ordinal 理论建立的,这是一种链下的编号方案。换句话说,Ordinal 的存在需要社区对 Ordinal 理论达成共识并普遍接受。没有 Ordinal 理论,铭文就无法被跟踪或交易,因为铭文不会自动指向单个 satoshi。从区块链的角度看,每一个 satoshi 都是一样的。

本文链接地址:https://www.wwsww.cn/NFT/23482.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。