比特币序数 NFT 原理

Casey Rodarmor 于 2023 年 1 月推出 Ordinals 协议,立即引起区块链界人士的关注。比特币是去中心化程度最高、最安全的区块链,因此可能更适合数字艺术家使用该协议来铸造 NFT。本文将从零开始详细介绍 Ordinals NFT 的基本技术细节。

比特币序数 NFT 原理
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK

过去,不可能在比特币上创建完全链上的 NFT,因为比特币最初是为金融交易而不是数据存储而设计的。 通过使用 OP_RETURN 脚本,我们只能输入 80 字节的数据,这对于 NFT 来说是相当有限的。 然而,Taproot 和 SegWit 升级释放了见证字段的潜力,它可以存储小于 400,000 字节的任意数据。

Casey Rodarmor 于 2023 年 1 月推出 Ordinals 协议,立即引起区块链界人士的关注。 据 dune.xyz 称,市场对该协议表现出了兴趣,即使铸造 NFT 的唯一方法是从一开始就通过命令行。 比特币在历史上有一定的地位,是去中心化程度最高、最安全的区块链,因此可能更适合数字艺术家使用该协议来铸造 NFT。

本文将从零开始详细介绍 Ordinals NFT 的基本技术细节。

1、什么是 NFT?

不熟悉 NFT 的人应该从以太坊开始。 ERC721 是著名的协议之一,它定义了获取和转让所有权的智能合约方法。 一些名人或品牌,如 BAYC 或 Azuki,也持有流行的 ERC721 NFT。 Ordinals Protocol 有其定义和名称,称为“Digital Artifacts”。 它可以拥有所有者并且可以在无需支付强制性特许权使用费的情况下进行交易。 此外,它的内容必须完全在链上——这意味着它无法更新。

在我们深入研究比特币序数 NFT 之前,让我们先看看比特币区块链中的交易是如何运作的。

2、比特币交易如何进行?

与传统银行或以太坊等基于账户的系统相比,比特币更为复杂。 它的系统涉及发送和接收整批比特币; 比特币的一笔交易包含一个或多个输入和输出。 一笔交易的输入也必须是另一笔交易的输出。 不同时作为另一笔交易输入的输出称为未花费交易输出(UTXO),属于某个地址的 UTXO 的总价值就是该地址的余额。

下图中,黄色标注的是UTXO。 输出的总价值必须大于输入的总价值,因为差额等于矿工的天然气费:

一个区块可能包含多个交易,区块链是按顺序排列的区块的集合。 在比特币中,一个区块的第一笔交易是一个 coinbase 交易,矿工从该区块的其他交易中收取区块奖励和交易费用。 这是一个现实世界的例子:区块 777,936。 第 0 笔交易是一笔 Coinbase 交易,从第 1 至 3,565 笔交易中收取 6.25 BTC 的区块奖励和 0.12833154 BTC 的交易费用:

到目前为止,我们只看到了比特币的可替代特性。 接下来,让我们看看如何应用不可替代的功能。

3、Ordinal理论

Satoshi是比特币货币的最小单位。 1 BTC 等于 1 亿Satoshi。 序数理论描述了如何用唯一的数字来标记每个satoshi。 比特币的总供应量为 2,100,000,000,000,000 satoshi — 按开采顺序编号。 当一个新的区块被开采出来时,Coinbase 交易中就会出现一些具有新的唯一编号的新satoshi,因此每个satoshi都可以有其所有者。

Satoshi只存在于 UTXO 中。 当交易销毁输入并在输出中创建新的输入时,Satoshi根据Ordinal理论以先进先出的顺序进行转移。 在以下示例中,有两个具有 5 satoshi 的输入,标记为 1 到 5,还有 2 satoshi,标记为 11 到 12。要将 satoshi 编号分配给 UTXO,请按顺序 (1–5) 遍历输入中的每个 satoshi 然后是 11–12),并将每个分配给输出中的第一个可用槽,即 1–3、4–5 和 11。数字 12 不会消失,它只是发送到 coinbase 交易的汽油费 。 可以在此处查看整个算法。

Ordinal理论实际上将这些可替代代币Satoshi转换为不可替代代币。 接下来,我们将介绍一种在一个Satoshi的见证域中写入内容的方法。

4、什么是见证字段?

比特币脚本是一种基于栈的执行语言。 对于一笔基本交易来说,一个输入有一个锁定脚本,一个输出有一个解锁脚本,一个解锁脚本和一个锁定脚本组合起来就是一次执行。 如果堆栈最终返回 true,则交易得到验证。 下面的脚本称为 Pay-to-public-key hash (P2PK),逐步运行:

  • <sig><PubK> 推入栈
  • 复制 <PubK> 并将其推入栈
  • 弹出 <PubK>,Hash160生成 <PubK>的哈希,然后入栈 <PubKHash>
  • EEQUALVERIFY 比较前两个值,如果相同则删除它们
  • CHECKSIG 验证 <sig> 是否与 <PubK> 匹配,如果 true 则推送 true
结合 scriptSig 和 scriptPubKey 来评估交易脚本

Segwit 升级在交易输出中引入了新的见证(witness)字段,以保护隐私和性能。 有关更多详细信息,可以深入了解高级交易和脚本中的付费见证人公钥哈希 (P2WPKH) 主题。 见证字段并不是为了数据存储而设计的,但它实际上给了我们一个存储 NFT 内容的机会。 通过 Taproot 升级,我们可以将近 400,000 字节的任意数据存储到见证字段中。

5、铭文

铭文(inscription)在satoshi上刻有任意内容,例如文本、图像或视频。 通过 Taproot 升级,铭文包含在一种称为“付费到 Taproot”(P2TR)的新型输出中。 铭文内容将一个未执行的条件(由 <OP_FALSE OP_IF [Content] OP_ENDIF> 组成)推入见证字段,因此不会影响原始脚本。 会有两个短语,commit和reveal,因为witness字段只有在花费UTXO时才会被显示。

Ordinal铭文支持 MIME 类型,这意味着我们可能会看到各种类型的 NFT。 下面是一段文字铭文,其中包含字符串“Hello, world!” (来自:Ordinal文档):

OP_FALSE

OP_IF

OP_PUSH “ord”

OP_1

OP_PUSH “text/plain;charset=utf-8”

OP_0

OP_PUSH “Hello, world!”

OP_ENDIF

给出一个现实世界的例子:提交揭示。 在提交阶段,交易创建了两个 P2TR 输出,第一个是我们需要看到的。 然后在揭示阶段,序号铭文可以在见证人字段中找到。

6、结束语

当然,Ordinals 协议在社交媒体上引发了一些关于比特币是否可以用于非金融应用的争论,但越来越多的钱包开始支持比特币 Ordinals 以及为用户提供铭文或图像服务的网站。


原文链接:Dive into How Bitcoin Ordinals NFTs Work

DefiPlot翻译整理,转载请标明出处

通过 NowPayments 打赏