【超硬核】逐个字节分析Ordinal的铸造交易

作者:团长(https://twitter.com/quentangle_

通过本文我们可以清楚的知道自己的的铭文在哪里,以及它是以什么样的形式构建的。

我们随便在Ordinals的浏览器上找到一个Inscription交易,比如2c69dcbfed33a02154e45285db2494aa3a9083ff39f31e90edeecd4791731c32

获取到这个交易的rawtransaction(通过btc.com或其他比特币浏览器网站就可以获取到)是这样的

下面我们就来分析一下这些数字都是什么意思。开始之前我们需要先介绍一些编程的基础概念:

  • 位(bit):计算机处理的最小二进制单位,即0或1

  • 字节(byte):每个字节由8个bit组成,0001 0001

  • 十六进制(hex):每数到16就往前进一位的计数方式,1~9的数字和十进制一样,10~15的标记分别用abcdef标识,比如3a换成十进制就是3*16+10=58。之所以用十六进制,是因为十六进制的f换成二进制刚好是1111,也就是说一个字节的内容可以用两个十六进制字符完整表示。

上面的rawtransaction中也是由许多个十六进制的数字表示的,其中每两个可见字符就是一个十六进制字节。

post image

其中witness taproot script中就保存了我们铸造的铭文,我们来进一步分析:

post image

我们可以看到中OP_FALSE开始就完全是Ordinals协议定义的内容了,这里面就存储了铭文的知己内容。这里的内容是纯文本,如果是图片的话,Inscription字段就会很长。

好了,现在任何一个Ordinals的交易你也会分析了,可以不用浏览器也知道铭文的内容了,虽然你并不想自己去解析。🤣


原链接:

https://buidler.space/Ordinal-cb9a4b807ad54e7e97638f7e354ed7a9