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

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

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

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

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

0200000000010132e88b831542e2ef752725db3bc12f1985f58a8973216ecb8358a39b51542d890900000000fdffffff01220200000000000016001429905f39cb0ce73cc04316e9a6d6cf043df853730340d9e4a42ba1cde3ee8e6166ad3bb314944ece41bb132ae0908283af67bd23e6b9a70cd6d75205ed964bb1d16701b1d2163133cdc873fe9b509ed81362aba746bb8820117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423eac062a34852d8801750063036f7264010118746578742f706c61696e3b636861727365743d7574662d38003a7b2270223a226272632d3230222c226f70223a226d696e74222c227469636b223a2273617473222c22616d74223a22313030303030303030227d6821c0117f692257b2331233b5705ce9c682be8719ff1b2b64cbca290bd6faeb54423e00000000

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

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

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

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

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

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

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

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


原链接:

Subscribe to quentangle
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.