起源

2021 年 比特币进行了一次升级,命名为 Taproot。

Inscriptions 是 Taproot 升级中一个重要的特性,它允许在比特币交易中添加附加数据,实现附加数据上链。

Ordinals 协议诞生

2023年1月21日,Casey Rodarmor 推出 Ordinal 协议,为比特币最小单位聪进行编号,从而使每个聪成为唯一的,使用 ord 软件就可以追踪每个聪,并为其添加内容。因为添加的内容不同,所以聪之前就产生了区别,变成了非同质化的。

BTC-NFT 协议 添加图片
BRC-20 协议 添加文本
...
bitcoin.drawio.png

Ordinals 协议是一个为聪编号的系统,赋予每个聪序列号,并在交易中追踪它们。简而言之,用户可以通过 Ordinals 附加额外的数据,使每个聪都变得独一无二。

上链

上链文件可以是上面说的,图片、文本、json、音频等文件。文件大小不能超过 4MB,数据越大需要支付的费用越多。

软件特点是否收费
ord需要 Bitcoin core 软件并同步全节点数据,等待时间长,需要会用命令行工具交易费
unisat使用简单,操作方便交易费 + 服务费
其他服务--

2023-06-17T15:23:43.png

从图中可以看出,利用 unisat 可以很方便把文件上链。根据上链类型的文件的不同,我们就可以区分发行 NFT、发行 Token、Mint token、注册域名等操作。附加数据上链的行为叫做:inscribe,附加的数据叫做:inscriptions。

inscribe 本质就是把一个文件附加到一个 1 sat 上。但是由于粉尘交易不被允许,所以每次转账至少要 > 546 sat。

当然除了使用 unisat 进行 inscribe,我们也可以使用 ord 命令来操作:

2023-06-18T01:48:50.png

下面我将列举常用的 inscribe 文件类型:

BRC20 协议

这个协议本质上就是规定了一个 json 格式的文件,类似这样

{
    "p":"brc-20",
    "op":"deploy",
    "tick":"kfmm",
    "max":"21000000",
    "lim":"100"
}

如果转账的所有 sat 中的一个 sat 附加了这个 json 文件,就是发行了一个 BRC20 代币。

ORC20 协议

本质上和 BRC20 一样,都是一个指定格式的 json 文件,不一样的是 json 数据定义的内容

{ 
  "p": "orc-20",
  "tick": "orc",
  "name": "kfmm",
  "op": "deploy",
  "max": "21000000",
  "lim": "10000",
  "dec": "18"
}

.sats 域名

使用域名可以帮助我们输入简短的地址就可以完成交易,例如 kangfenmao.sats,在交易过程中,接收方输入这个域名,就可以对我发起一次转账。

如何铸造这个域名

我们需要用 ord 命令行工具,或者使用 unisat 等网站发起一笔交易,并将下面的 json 文件附加上去。

{
    "p":"sns",
    "op":"reg",
    "name":"kangfenmao.sats"
}

如何通过域名获取钱包地址

索引器会全表扫描区块数据,然后找到第一个附加上面 json 数据的 sat,将这个 sat 所有者的钱包地址作为实际转账地址。

索引 BRC20 代币

当很多人上链了 BRC20 json 数据后,如何才能从链上读取到这些数据呢?目前还没有很简单的办法能读到这些数据,要想读取这些数据需要同步比特币网络全部区块数据(接近500GB),然后扫描全部区块,找到附加文本信息为 BRC20 格式的 sat,然后进行统计。

统计中可以得到很多信息,比如:

链上存在的 BRC20 代币一共有哪些
每一个 BRC20 代币发行者
每一个 BRC20 代币 mint 数据
每一个 BRC20 代币交易数据
...

将以上信息进行统计就可以得到一些图表

2023-06-17T14:48:44.png

所有数据在比特币网络上都是静态数据,矿工不会帮助计算,只会原样打包

交易数据如何计算:

所有数据计算都是在链下进行的,扫描全部区块数据,根据操作类型进行累积计算,如果是 receive 就增加数量,如果 send 就减少数量,追踪全表数据扫描完成后得到最终余额。

注意:

  • 如果两个人发行了同样内容的 ERC20 代币,以第一个发行者为准
  • 如果 mint 数量超过了最大的发行数,后面 mint 数量作废
  • inscribe {"p":"brc20","op":"mint","tick":"kfmm"} 就完成了一次 mint
  • inscribe {"p":"orc-20","tick":"orc","op":"send","n":"5"},然后再转账给别人,就完成了一次转发

Mint 计算

如果要计算一个 BRC20 代币是否 mint 完毕,首先找到发行这个币的 json 数据,读取名字、总量等信息。然后继续扫描币名相同、操作为 mint 的 json 数据,用总数减去这个 mint 数量后,继续找到下一个同样的数据。当总量被减到 0 的时候,代表这个币已经 mint完毕。如果这个时候我们继续发布 mint json 数据,将被作废。

如何建立一个全节点

在这个网站下载 Bitcoin Core: https://bitcoin.org/en/bitcoin-core/

这里使用图形客户端来举例:

2023-06-18T01:55:21.png

我们下载安装后,即可开始数据同步,数据同步需要同步将近 500GB 数据,根据网络速度,同步完成大概需要1-2天时间。

2023-06-18T01:55:47.png

在设置中勾选启用 RPC 服务器后,我们这个节点就可以对外提供数据服务了。这样我们就可以使用 ord 命令行工具调用这个 RPC 节点进行数据上链操作了。当然,有了全部数据,我们也可以对数据进行分析,得到更多的汇总信息。

ord 命令行工具使用:

https://docs.ordinals.com/guides/inscriptions.html
https://www.bilibili.com/video/BV1fP411f7Hj

相关网站

Ordinals官网

https://ordinals.com

BRC-20协议

https://domo-2.gitbook.io/brc-20-experiment

比特币区块实时查询

https://mempool.space

数据分析

https://dune.com/domo

https://dune.com/dgtl_assets/bitcoin-ordinals-analysis

验证铭文真实性

https://ord.tools

域名铭文查询

https://vip.idclub.xyz

BTC铭文浏览器

https://www.ordscan.xyz

钱包

https://www.xverse.app

https://ordinalswallet.com

https://unisat.io/download

MINT工具

https://unisat.io

https://idclub.xyz

https://looksordinal.com

https://ordinalsbot.com

https://ordswap.io

https://inscribenow.io

交易市场

https://ordinals.com

https://ordinals.market

https://gamma.io

https://beta.ordx.io

https://www.ordinalhub.com

https://openordex.org

UTXO

https://www.liaoxuefeng.com/wiki/1207298049439968/1207298275932480

发表评论