比特币 Ordinals 协议浅析

  • rebase
  • 更新于 2023-12-23 11:42
  • 阅读 3959

比特币 Ordinals 协议浅析

作者:https://twitter.com/Melvini17
排版:https://twitter.com/ziyinlox

基础知识

BTC 是 UTXO 模型,每个 utxo 具有唯一性,且天生可溯源。

1 BTC = 10^8 Satoshis (聪),也就是最小单位是聪,简称 sats;

由来

2023 年年初,加密领域最重要的故事都发生在了比特币上
一月份,去中心化协议 Nostr 从比特币社区诞生。
二月份,比特币上的 NFT 协议 Ordinals 横空出世。
3 月 8 日,无聊猿母公司 Yuga Labs 在 Ordinals 上开始拍卖 BTC NFT, 发行的 300 枚 NFT,288 枚拍出了总值 1650 万美金的价格。
而这个由 Casey Rodarmor<sup>[1]</sup>在 2023 年 1 月发布的 Ordinals 协议<sup>[2]</sup>,提出了一个想法:
我们能否按照一定顺序排列这些 "聪"。
给它们分配一个介于 0 和 2,100,000,000,000,000 之间的序数,然后,把它们连接到其他信息: 图片、文字、视频甚至一串代码。从而每个聪都变得独一无二,不可替代。这就相当于让比特币拥有了原生的、创造 NFT 的能力。
听起来是不是很神奇。其实这个协议在很大程度上 依赖于 2017 年的 Segwit 和 2021 年 Taproot[3] 的升级 。Taproot 升级为比特币网络带来了更高级别的隐私、安全和可扩展性。虽然通过技术手段将数据附加到比特币一直是可能的,但你可以基本上只能灌 4Mbs 的数据,再多就不行了。
Ordinals 是一个开源项目,在 GitHub 上<sup>[4]</sup>开发。该项目包括一个描述序数方案的 BIP<sup>[5]</sup>,一个与比特币核心节点通信以跟踪所有 sats 位置的索引,一个允许进行序数感知交易的钱包<sup>[6]</sup>,一个用于区块链交互式探索的区块浏览器<sup>[7]</sup>。
可以从两个部分理解:

  1. 利用一个 Ordinals 的技术方案给比特币的聪(Satoshi,比特币最小单位)打编号,比特币本来是同质化代币 FT,但是就像个大央行发行法币,给法币打上编号一样,Casey 给比特币的聪也打上了编号;

  2. inscription 铭刻,当每个聪被打上变化之后,就可以绑定任意一段限制大小的代码,也就是将艺术品和聪绑定,从而发行、流转。


https://dune.com/icanhaz/ordinals-bitcoin-nft-inscriptions
虽然 Ordinal NFT 是基于 Ordinal 理论的,但现在的 Ordinal NFT 能够实现也有赖于 2017 年和 2021 年对比特币协议进行的隔离见证 (SegWit) 和 Taproot 的技术更新。
值得注意的是,这些更新并不是为了启用这些新型 NFT 的目的而被开发的。但是,由于这两次更新都增加了一个区块存储数据量 —— 这意味着现在有空间可以存储图像、视频,甚至游戏 —— 无意中让 Ordinal NFT 的部署成为了可能。

隔离见证 (SegWit)

Segwit 是 2017 年的一次更新,导致了 BTC 的软分叉。该更新通过添加可以支持任意数据的“见证数据”部分,有效地将比特币交易分为两部分。

见证数据最初是作为以下几种方式的方案创建的:

  1. 绕过块大小限制的严格限制

  2. 允许可选的、任意数据传输

  3. 防止无意的交易延展性在技术意义上,SegWit 的实施意味着交易不再需要包含见证数据(通常是发送者的数字签名)。相反,在块的末尾为见证数据创建了一个额外的空间,使其作为一个单独的结构。它支持任意数据传输,并且让“区块权重”变小(因为 segwit 中见证数据被存在了一个独立的数据结构中,所以交易签名数据不再计入区块权重中),巧妙地将大量数据保持在比特币的块大小限制内,以避免硬分叉。

    这是 Ordinal NFT 的第一个先决条件,因为它扩大了交易中可以包含多少任意数据的限制。

Taproot

Taproot 于 2021 年 11 月实施,是一项多方面的升级,旨在提高比特币的 隐私性可扩展性安全性 。通过这个升级,Taproot 创建了一个更简单的系统来存储任意见证数据,并放宽了对比特币交易中可以放置多少任意数据的限制。此次升级的最初目标是进一步增强基于比特币的智能合约,例如见证数据中经常使用的时间锁定合约。
这些变化是 Ordinal NFT 的关键推动因素,序数 NFT 将 NFT 数据存储在 Taproot 脚本中。升级使得构建和存储任意的见证数据变得更加容易, 为"ord"标准奠定了基础 。并且随着数据要求的放宽,假设单个交易可以用其交易和见证数据填满整个区块,达到 4MB 的区块大小限制,这极大地扩展了可以放在链上的 媒体类型

基本原理

我们都知道,每个比特币都可以被分成 100,000,000 个单位,称为 satoshis(或 sats),中文叫「聪」。
换句话说 作为记帐单位,比特币的最小单位是 0.00000001 (一亿分之一)比特币,称为“1 聪”。
1 比特币可以被分为 1 亿聪,这意味着每聪价值 0.00000001 比特币。
Ordinals 协议提出了一种以比特币最小单位 聪 为基础的设计, 允许在 聪 中嵌入各种信息,如图片 文本 视频等( inscription 叫做 铭文), 并将上传的铭文与特定的 聪 相连, 这个过程被称为 铭刻( inscribe )。
Ordinals 是 sats 的编号方案,允许跟踪和传输单个 sats。这些数字称为序数<sup>[8]</sup>。sats 按照它们被开采的顺序编号,并从交易输入转移到交易输出,采用先进先出。编号方案和转账方案都依赖于 顺序,编号方案依赖于挖矿的顺序,而转账方案依赖于交易输入和输出的顺序,因此命名为 ordinals
序数理论不需要单独的令牌、不需要对比特币做任何更改,立马可以使用并生效。
Rodarmor 提出了序数(ordinals)理论,序数是按照聪被开采的顺序将其从 0 开始编号,比如第一个区块中的第一个聪的序号为 0,第二个聪的序号为 1,最后一个聪的序号为 4999999999,从而每个聪具备了 ID 属性。
整个 Ordinals 协议最核心的地方有两点:

  1. 每个聪的编号 ,就跟身份证号一样,具有唯一性。

  2. 先进先出 。让我们举个例子

下图中,左侧有两笔 Input,地址 1 和 地址 2 共有 5 聪,在这笔交易中,4 聪被发送到了一个 3oPz 开头的地址,另外还剩 1 聪作为矿工费付给矿工

假设上述交易中,我们利用 Ordinals 协议给每个聪安排了一个 "身份"(序号),那么交易完成后,地址 1 和 地址 2 的 4 个有编号的聪 Ord A->D 就跑到了地址 3 那里,最后一个聪则给了矿工。
所谓 "先进先出" ,意思就是每个聪的编号排序,是按照它在交易输出中的索引决定的。比如下图中的交易输出中(Output),地址 3 被排在矿工地址前面,那么从地址 1 和地址 2 转过来的聪,先由地址 3 继承,然后才是矿工地址。

聪编号规则

  1. 每个聪会被编号,从创世块的第一个聪开始,序号按照它们被开采的顺序分配给 聪。第一个区块中的第一个聪的序号为 0,第二个聪的序号为 1,第一个区块的最后一个聪的序号为 4,999,999,999。因为最开始 btc 挖矿奖励为 50 个 BTC。

  2. 所以可以将任意内容附加到每个聪上,将他们变为比特币原生的数字工件; (可理解为 nft)

  3. 序数有几种不同的表示形式:

  4. 整数表示法:2099994106992659序号,根据开采聪的顺序分配。

  5. 十进制表示法:3891094.16797第一个数字是聪被开采的块高度,第二个是聪在块内的偏移量。

  6. 学位记法:3°111094′214″16797‴

  7. 百分位符号:99.99971949060254%。satoshi 在比特币供应中的位置,以百分比表示。

聪的总供应量

  • 普通级:除区块第一个聪外的任何聪(总供应量为 2100 万亿)

  • 优良级:每个区块的第一个聪(总供应量为 6929999)

  • 稀有级:每个难度调整期的第一个聪(总供应量为 3437)

  • 史诗级:每次减半后的第一个聪(总供应量为 32)

  • 传奇级:每个周期的第一个聪*(总供应量为 5)

  • 神话级:创世区块的第一个聪(总供应量为 1)

关于稀有度的查询

https://ordinals.com/sat/2099994106992659&lt;sup>&lt;/sup>

神话级

https://ordinals.com/sat/0&lt;sup>&lt;/sup>

总结

无论是对于 NFT 市场还是对于 BTC,Ordinals 都带来了独特的影响力。
以太坊 NFT 市场在交易市场 Blur 引起的混战之后,走向一个明显的熊市,但是 Ordinals 带来了新的叙事:
首先,相比以太坊上 NFT 存储在链下,比特币 NFT 存储都在链上,艺术品第一次可以永恒存储一个人类公开账本上,人类从未放弃对于“永恒”的追求,毫无疑问,BTC NFT 会带来新的热潮;
其次,Ordinals 一个重要特点是给比特币打编号,也就滋生了一种类似“QQ 靓号”文化,给 NFT 社区带来共同的叙事—— 社区和社区之间不再是“猴子”和“蝴蝶”,编号会成为一个重要的,当然也是新的叙事。
Ordinals 对于比特币生态也会带来新的生命力。除了区块奖励之外,矿工们在 Ordinals 协议下还可以赚到交易费了,毫无疑问,未来矿工们有了更大的动力去开机。同时,未来 BTC 带来的 NFT 交易,有可能促进闪电网络的进一步发展。
更重要的是,BTC NFT 如果进一步繁荣,也会带来周边服务的发展 —— 无论是钱包还是交易所都处于“待建”阶段,对于开发者们,存在着巨大的发现需求,提供服务的机会。
当然,对于 Ordinals,比特币社区也有很大的争议,一些 BTC Maxi 认为不应该把非金融属性的数据写入区块,让 BTC 偏离了“黄金”的底层叙事,更有一些人担心给比特币打编号会让比特币由同质化代表转向非同质化代币,失去了隐私性。
无论如何,就像 NFT 写入比特币这个公开帐本,是不可扭转一样,比特币 NFT 在加密历史上,一定是一个不可逆转甚至难以阻拦的重要趋势。

扩展知识

Dust Limit

关于每次铭刻都是花费 546 stats 的原因
在比特币中,交易输出(transaction output)的最小值通常为 546 satoshis。这个值基于比特币协议中的“dust limit”概念。Dust limit(尘埃限制)是指在比特币网络中,交易输出的最低有效值,低于这个值的交易输出可能会被矿工视为无效或不值得被处理。Dust limit 的目的是防止用户在网络中创建大量小额交易,从而拥塞网络和浪费存储空间。
根据比特币的协议,一个标准的交易输出包含一个 P2PKH(Pay-to-Public-Key-Hash)或 P2WPKH(Pay-to-Witness-Public-Key-Hash)输出脚本。对于这些类型的交易输出,最低有效值为 546 satoshis。如果一个交易输出的价值低于这个值,那么创建该交易的成本(即矿工费)可能会高于交易本身的价值。因此,很少有矿工愿意处理这样的交易。
请注意,546 satoshis 的值可能会随着比特币网络的变化而变化。实际的 dust limit 取决于交易的大小和当前的网络费率。总之,比特币的 546 satoshis 规定是为了防止网络中的无效交易和拥塞。

两阶段提交

所有的 Taproot 花费都必须来自现有的 Taproot 输出。这也就是为什么铭刻信息到区块链需要一个两阶段的承诺/揭示过程。
首先,在"承诺"交易中,创建一个承诺到包含铭刻内容的脚本的 Taproot 输出。这一步是预先准备并承诺要写入特定信息的步骤。
其次,在"揭示"交易中,由承诺交易创建的输出被消费,从而在链上揭示铭刻内容。这一步是实际执行写入的步骤,因为它消费了承诺阶段创建的 Taproot 输出,并将预先承诺的信息公之于众。
这个过程之所以需要,是因为 Taproot 交易并不直接支持任意数据的写入,而是要求所有的花费都来自现有的 Taproot 输出。而通过承诺/揭示的方式,我们可以实现将任意信息刻录到区块链,只不过需要两个阶段完成:首先在承诺阶段预先准备好输出和信息,然后在揭示阶段实际写入信息。

交易解析

铭刻了一个 hello world
https://mempool.space/tx/46714ae173f0c183e974fab2f582701c9d0e0e896a93e3e970d8710f870d28c9&lt;sup>&lt;/sup>
https://ordinals.com/inscription/46714ae173f0c183e974fab2f582701c9d0e0e896a93e3e970d8710f870d28c9i0&lt;sup>&lt;/sup>

OP_FALSE
OP_IF
  OP_PUSH "ord"
  OP_1
  OP_PUSH "text/plain;charset=utf-8"
  OP_0
  OP_PUSH "Hello, world"
OP_ENDIF

原始内容

20117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac060beea7098801750063036f7264010118746578742f706c61696e3b636861727365743d7574662d38000b68656c6c6f20776f726c6468

解析内容

20117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac060beea70988017500
63 OP_IF
03
6f7264 ord

010118
746578742f706c61696e3b636861727365743d7574662d38 text/plain;charset=utf-8

000b
68656c6c6f20776f726c64 Hello, world

68 OP_ENDIF

解析工具
https://codebeautify.org/hex-string-converter


铭刻了一个 nice to meet you
https://mempool.space/tx/4fafab4a267876f371b2b08437a9948c22c2911f2462d65dde384b1f689c0499

https://ordinals.com/inscription/4fafab4a267876f371b2b08437a9948c22c2911f2462d65dde384b1f689c0499i0

https://static.unisat.io/inscription/content/4fafab4a267876f371b2b08437a9948c22c2911f2462d65dde384b1f689c0499i0

自己刻了一下铭文

https://mempool.space/tx/3fd4b39890aae0a740db7a157eb8c32e901270c52a2cee0c2d25bd0e40f4d22f

转给我的 brc20 stat 数量 500000000
https://ordinals.com/inscription/fed2913e99beb498896eb910e1ea4260807441c322a9324573b4dcbd514904c4i0 brc20 mint doge 数量 4200

https://ordinals.com/inscription/b9135e259ec380571b5fe087d5df67c686337a8bedec9d335793db8b5abe6d24i0

brc20 transfer doge 数量 2200

https://ordinals.com/inscription/c02b017443290a4f50511878824c340129bb766cb66ea14916930b3a3d498d94i0

参考链接

[1] Casey Rodarmor: https://twitter.com/rodarmor
[2] Ordinals 协议: https://github.com/casey/ord/blob/master/bip.mediawiki
[3] Taproot: https://www.ledger.com/academy/what-is-taproot
[4] 在 GitHub 上: https://github.com/casey/ord
[5] BIP: https://github.com/casey/ord/blob/master/bip.mediawiki
[6] 钱包: https://github.com/casey/ord
[7] 区块浏览器: https://ordinals.com/
[8] 序数: https://ordinals.com/
[9] 深入浅出 Ordinals 协议 | 王一石: https://yishi.zhubai.love/posts/2249248982721544192
[10] 一文概览 Ordinals 技术、生态和数据: https://mp.weixin.qq.com/s/gNxjVMjsDNb5qIF4kTQ5Ew

关于 Rebase

Webstie:  https://rebase.network

Rebase 社区是由一群 Web3 开发者们基于爱好利用业余时间建立的非营利性开发者社区,旨在链接 Web3 开发者,建立沟通交流桥梁,助力极客促进科技创新,推动社会进步。目前,Rebase 社区有专注于不同领域的工作小组,Web3 极客日报,Rebase大学,Rebase Hackathon,Who-Is-Hiring,Event-Pool,Rebase D. Ventures 和 Web3Camp 等。

如果你有兴趣参与其中,可以通过 Rebase 社区公众号同我们取得联系!

点赞 2
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

1 条评论

请先 登录 后评论
rebase
rebase
0xdCaD...D8f0
https://x.com/RebaseCommunity