深度剖析比特币Ordinals、铭文和BRC20
作者:金色财经0xnaitive
比特币Ordinals Theory由开发人员Casey Rodarmor 2022年开发,直到2023年2月提交BIP后开始在比特币社区流行。
Ordinals主要利用了2个想法,1、给每个satoshi排序,分配一个介于0和 2,100,000,000,000,000之间的序数“ordinals”,。2、segwit和Taproot。2021年的segwit更新可以在比特币交易本身中包含元数据(被称为铭文Inscriptions),并使用taproot的script-path spend scripts 。铭文内容可以利用4MB的区块空间。
序数ordinals让satoshis拥有数字序列,从而拥有了非同质化属性。Inscriptions让诸如图片、文字、视频甚至游戏数据包含在比特币交易中,可以和拥有序数的satoshis链接起来。
Ordinals Theory:Ordinals + Inscriptions = Digital Artefacts。
实际上如何工作?
在“铸造”Digital Artefacts时,需要创建一个比特币交易,在其中一个输出地址中存储一些额外的数据(铭文)。这些额外数据可以是文本、图像、SCG 或 HTML,数据大小仅受区块大小的限制。
在序数理论之前,添加到比特币交易中的任何额外数据通常都是使用OP_RETURN完成,这是一种不可花费的输出,可以在其中包含最多80字节的元数据。而且OP_RETURN可修剪,这意味着可以从全节点删除数据。
Ordinal方法不使用OP_RETURN,而是利用2021年segwit更新在交易本身中包含元数据,segwit允许在协议级别的1MB区块限制“外部”存储多达 3MB 的见证数据,并使用taproot的script-path spend scripts 。这为铭文内容提供了4MB的区块空间。
一句话理解:铭文数据存储在比特币原始交易数据中。
digital artefacts使用两阶段过程从Taproot 的输出(“bc1p …”地址)铸造。最初,taproot输出必须提交给包含铭文内容的脚本。此内容在所谓的“envelope”中序列化,envelope包夹在“OP_FALSE OP_IF … OP_ENDIF”操作码之间 。
此外,Taproot和MAST升级的一个关键部分是这个脚本在它被花费之前不会在链上显示,因此你需要创建另一个交易来显示信息。在这个显示交易中,提交交易创建的输出被花费,从而显示链上的铭文内容。
示例:创建文本“Hello, world!”的铭文
如何发送digital artefacts?
要了解如何发送digital artefacts,来看一个具有三个输入和两个输出以及不同数额的示例:
上面我们可以看到总共有 6 satoshis 来自 3 个不同地址,5 satoshis 被发送到 2 个不同地址,其中 1 satoshis 作为费用支付给矿工。
然后我们可以为输入的每个 satoshi 分配序数,然后按照先进先出算法将它们分配给输出,任何剩余的序数然后转到矿工。
值得注意的是,并不是所有的序数都有分配给他们的铭文,所以这并不意味着在这次交易中有 6 个铭文被转移,可能有 1 个,没有或最多 6 个。
无聊猿铭文案例
我们直接以一个铭文为例,可以更多地了解铭文数据以及序数如何发挥作用:
https://ordinals.com/inscription/2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511i0
这个重新创建的无聊猿是在这个交易哈希中创建:2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511
并且与地址相关:bc1pc837xc4vfq66g2wm3hy6rd4nxjlkwcl46m4wn2n6u0afd45h472sx8924n(从“bc1p”前缀可以清楚地看出启用 Taproot 的地址类型),但特别是具有序号的 satoshi:1598601235315166
可以在此处查看对图像进行编码的见证数据:https://blockstream.info/tx/2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511 ?expand
你可能会注意到在铭文信息中还有一个值为“cnhzpcdknwl”的名称字段。
这是因为每个序数都映射到一个由字母 A 到 Z 组成的名称,satoshi被开采的时间越长,名称越短。
铭文与以太坊上的NFT有何差别?
在以太坊中,nft代币标准(通常是ERC721、ERC1155)为每个 NFT 都被赋予一个 tokenID 以唯一表征它,其元数据可能是中心化存储的,可能会被删除。
比特币铭文完全存储在比特币链上,不可篡改且完全去中心化。
BRC20代币
BRC -20 代币标准是由 Twitter 用户@domodata于2023年3月8日创建的借助铭文功能试验比特币上同质化代币的标准。“BRC-20”名字借鉴于以太坊ERC-20代币标准。
BRC20代币在比特币上铭文存储的是JSON数据,目前仅有部署、铸造和转移三种功能。
划重点:BRC20代币每一次部署、铸造和转移都产生一个新的铭文。
以第一个BRC20代币Ordi发行者为例:ordiscan.com/address/bc1pxaneaf3w4d27hl2y93fuft2xk6m4u3wc4rafevc6slgd7f5tq2dqyfgy06/brc20
BRC20代币JSON代码
部署代币:
铸造代币:
转移代币: