【超硬核】逐个字节分析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的交易你也会分析了,可以不用浏览器也知道铭文的内容了,虽然你并不想自己去解析。🤣