基础知识
BTC 是 UTXO 模型,每个 utxo 具有唯一性,且天生可溯源。
1 BTC = 10^8 (聪),也就是最小单位是聪,简称 sats;
由来
2023 年年初,加密领域最重要的故事都发生在了比特币上一月份,去中心化协议 Nostr 从比特币社区诞生。二月份,比特币上的 NFT 协议 横空出世。3 月 8 日,无聊猿母公司 Yuga Labs 在 上开始拍卖 BTC NFT, 发行的 300 枚 NFT,288 枚拍出了总值 1650 万美金的价格。而这个由 Casey [1]在 2023 年 1 月发布的 协议[2],提出了一个想法:我们能否按照一定顺序排列这些 “聪”。给它们分配一个介于 0 和 2,100,000,000,000,000 之间的序数,然后,把它们连接到其他信息: 图片、文字、视频甚至一串代码。从而每个聪都变得独一无二,不可替代。这就相当于让比特币拥有了原生的、创造 NFT 的能力。听起来是不是很神奇。其实这个协议在很大程度上依赖于 2017 年的 和 2021 年 [3] 的升级。 升级为比特币网络带来了更高级别的隐私、安全和可扩展性。虽然通过技术手段将数据附加到比特币一直是可能的,但你可以基本上只能灌 4Mbs 的数据,再多就不行了。 是一个开源项目,在 上[4]开发。该项目包括一个描述序数方案的BIP[5],一个与比特币核心节点通信以跟踪所有 sats 位置的索引,一个允许进行序数感知交易的钱包[6],一个用于区块链交互式探索的区块浏览器[7]。可以从两个部分理解:
利用一个 的技术方案给比特币的聪(,比特币最小单位)打编号,比特币本来是同质化代币 FT,但是就像个大央行发行法币,给法币打上编号一样,Casey 给比特币的聪也打上了编号; 铭刻,当每个聪被打上变化之后,就可以绑定任意一段限制大小的代码,也就是将艺术品和聪绑定,从而发行、流转。
虽然 NFT 是基于 理论的,但现在的 NFT 能够实现也有赖于 2017 年和 2021 年对比特币协议进行的隔离见证 () 和 的技术更新。值得注意的是,这些更新并不是为了启用这些新型 NFT 的目的而被开发的。但是,由于这两次更新都增加了一个区块存储数据量 —— 这意味着现在有空间可以存储图像、视频,甚至游戏 —— 无意中让 NFT 的部署成为了可能。
隔离见证 ()
是 2017 年的一次更新,导致了 BTC 的软分叉。该更新通过添加可以支持任意数据的“见证数据”部分,有效地将比特币交易分为两部分。
见证数据最初是作为以下几种方式的方案创建的:
绕过块大小限制的严格限制允许可选的、任意数据传输防止无意的交易延展性 在技术意义上, 的实施意味着交易不再需要包含见证数据(通常是发送者的数字签名)。相反,在块的末尾为见证数据创建了一个额外的空间,使其作为一个单独的结构。它支持任意数据传输,并且让“区块权重”变小(因为 中见证数据被存在了一个独立的数据结构中,所以交易签名数据不再计入区块权重中),巧妙地将大量数据保持在比特币的块大小限制内,以避免硬分叉。
这是 NFT 的第一个先决条件,因为它扩大了交易中可以包含多少任意数据的限制。
于 2021 年 11 月实施,是一项多方面的升级,旨在提高比特币的隐私性、可扩展性和安全性。通过这个升级, 创建了一个更简单的系统来存储任意见证数据,并放宽了对比特币交易中可以放置多少任意数据的限制。此次升级的最初目标是进一步增强基于比特币的智能合约,例如见证数据中经常使用的时间锁定合约。这些变化是 NFT 的关键推动因素,序数 NFT 将 NFT 数据存储在 脚本中。升级使得构建和存储任意的见证数据变得更加容易,为”ord”标准奠定了基础。并且随着数据要求的放宽,假设单个交易可以用其交易和见证数据填满整个区块,达到 4MB 的区块大小限制,这极大地扩展了可以放在链上的媒体类型。
基本原理
我们都知道,每个比特币都可以被分成 100,000,000 个单位,称为 (或 sats),中文叫「聪」。换句话说 作为记帐单位,比特币的最小单位是 0. (一亿分之一)比特币,称为“1 聪”。1 比特币可以被分为 1 亿聪,这意味着每聪价值 0. 比特币。 协议提出了一种以比特币最小单位 聪 为基础的设计, 允许在 聪 中嵌入各种信息,如图片 文本 视频等( 叫做 铭文), 并将上传的铭文与特定的 聪 相连, 这个过程被称为 铭刻( )。 是 sats 的编号方案,允许跟踪和传输单个 sats。这些数字称为序数[8]。sats 按照它们被开采的顺序编号,并从交易输入转移到交易输出,采用先进先出。编号方案和转账方案都依赖于 顺序,编号方案依赖于挖矿的顺序,而转账方案依赖于交易输入和输出的顺序,因此命名为。序数理论不需要单独的令牌、不需要对比特币做任何更改,立马可以使用并生效。 提出了序数()理论,序数是按照聪被开采的顺序将其从 0 开始编号,比如第一个区块中的第一个聪的序号为 0,第二个聪的序号为 1,最后一个聪的序号为 ,从而每个聪具备了 ID 属性。整个 协议最核心的地方有两点:
每个聪的编号,就跟身份证号一样,具有唯一性。先进先出。让我们举个例子
下图中,左侧有两笔 Input,地址 1 和 地址 2 共有 5 聪,在这笔交易中,4 聪被发送到了一个 3oPz 开头的地址,另外还剩 1 聪作为矿工费付给矿工
假设上述交易中,我们利用 协议给每个聪安排了一个 “身份”(序号),那么交易完成后,地址 1 和 地址 2 的 4 个有编号的聪 Ord A->D 就跑到了地址 3 那里,最后一个聪则给了矿工。
所谓 “先进先出” ,意思就是每个聪的编号排序,是按照它在交易输出中的索引决定的。比如下图中的交易输出中(),地址 3 被排在矿工地址前面,那么从地址 1 和地址 2 转过来的聪,先由地址 3 继承,然后才是矿工地址。
聪编号规则每个聪会被编号,从创世块的第一个聪开始,序号按照它们被开采的顺序分配给 聪。第一个区块中的第一个聪的序号为 0,第二个聪的序号为 1,第一个区块的最后一个聪的序号为 4,999,999,999。因为最开始 btc 挖矿奖励为 50 个 BTC。所以可以将任意内容附加到每个聪上,将他们变为比特币原生的数字工件; (可理解为 nft)序数有几种不同的表示形式:整数表示法:22659序号,根据开采聪的顺序分配。十进制表示法:.16797第一个数字是聪被开采的块高度,第二个是聪在块内的偏移量。学位记法:3°′214″16797‴。百分位符号:99.%。 在比特币供应中的位置,以百分比表示。聪的总供应量关于稀有度的查询
神话级
总结
无论是对于 NFT 市场还是对于 BTC, 都带来了独特的影响力。以太坊 NFT 市场在交易市场 Blur 引起的混战之后,走向一个明显的熊市,但是 带来了新的叙事:首先,相比以太坊上 NFT 存储在链下,比特币 NFT 存储都在链上,艺术品第一次可以永恒存储一个人类公开账本上,人类从未放弃对于“永恒”的追求,毫无疑问,BTC NFT 会带来新的热潮;其次, 一个重要特点是给比特币打编号,也就滋生了一种类似“靓号”文化,给 NFT 社区带来共同的叙事—— 社区和社区之间不再是“猴子”和“蝴蝶”,编号会成为一个重要的,当然也是新的叙事。 对于比特币生态也会带来新的生命力。除了区块奖励之外,矿工们在 协议下还可以赚到交易费了,毫无疑问,未来矿工们有了更大的动力去开机。同时,未来 BTC 带来的 NFT 交易,有可能促进闪电网络的进一步发展。更重要的是,BTC NFT 如果进一步繁荣,也会带来周边服务的发展 —— 无论是钱包还是交易所都处于“待建”阶段,对于开发者们,存在着巨大的发现需求,提供服务的机会。当然,对于 ,比特币社区也有很大的争议,一些 BTC Maxi 认为不应该把非金融属性的数据写入区块,让 BTC 偏离了“黄金”的底层叙事,更有一些人担心给比特币打编号会让比特币由同质化代表转向非同质化代币,失去了隐私性。无论如何,就像 NFT 写入比特币这个公开帐本,是不可扭转一样,比特币 NFT 在加密历史上,一定是一个不可逆转甚至难以阻拦的重要趋势。
扩展知识Dust Limit
关于每次铭刻都是花费 546 stats 的原因在比特币中,交易输出( )的最小值通常为 546 。这个值基于比特币协议中的“dust limit”概念。Dust limit(尘埃限制)是指在比特币网络中,交易输出的最低有效值,低于这个值的交易输出可能会被矿工视为无效或不值得被处理。Dust limit 的目的是防止用户在网络中创建大量小额交易,从而拥塞网络和浪费存储空间。根据比特币的协议,一个标准的交易输出包含一个 P2PKH(Pay-to–Key-Hash)或 (Pay-to—Key-Hash)输出脚本。对于这些类型的交易输出,最低有效值为 546 。如果一个交易输出的价值低于这个值,那么创建该交易的成本(即矿工费)可能会高于交易本身的价值。因此,很少有矿工愿意处理这样的交易。请注意,546 的值可能会随着比特币网络的变化而变化。实际的 dust limit 取决于交易的大小和当前的网络费率。总之,比特币的 546 规定是为了防止网络中的无效交易和拥塞。
两阶段提交
所有的 花费都必须来自现有的 输出。这也就是为什么铭刻信息到区块链需要一个两阶段的承诺/揭示过程。首先,在”承诺”交易中,创建一个承诺到包含铭刻内容的脚本的 输出。这一步是预先准备并承诺要写入特定信息的步骤。其次,在”揭示”交易中,由承诺交易创建的输出被消费,从而在链上揭示铭刻内容。这一步是实际执行写入的步骤,因为它消费了承诺阶段创建的 输出,并将预先承诺的信息公之于众。这个过程之所以需要,是因为 交易并不直接支持任意数据的写入,而是要求所有的花费都来自现有的 输出。而通过承诺/揭示的方式,我们可以实现将任意信息刻录到区块链,只不过需要两个阶段完成:首先在承诺阶段预先准备好输出和信息,然后在揭示阶段实际写入信息。
交易解析
铭刻了一个 hello world:////
“ord” OP_1 “text/plain;=utf-8” OP_0 “Hello, world”原始内容
解析内容
ord
d38 text/plain;=utf-8
Hello, world
68 解析工具
铭刻了一个 nice to meet you
:////自己刻了一下铭文
转给我的 brc20 stat 数量 mint doge 数量 doge 数量 2200