理解比特币的raw transaction (2) OP_RETURN类型输出

1. 写在前面

上一篇博客中,我们介绍了简单的P2PKH类型输出。这一篇博客,我们将介绍OP_RETURN类型的输出。

1.1 什么是OP_RETURN类型的交易

OP_RETURN操作码的引入主要是用来规范向比特币交易中写入额外数据的行为。在OP_RETURN引入之前,用户采用了各种各样奇葩的方式向交易中写入额外的数据(非转账数据),这导致交易中的内容显得非常混乱。于是,比特币核心开发者们于2013年10月24日正式宣布引入OP_RETURN操作码,用于在比特币上记录一些额外数据。

一笔交易的output中既可以有普通的P2PKH类型的,也可以有OP_RETURN类型的。本篇博客在举例说明时的交易中就是两种类型的output都有。
我们仍然首先介绍OP_RETURN类型的output的一般格式,然后以一个简单的transaction为例,理解其中各个字段的含义。

2. OP_RETURN类型output的一般格式

2.1 transaction的总体描述

transaction的总体描述
如上图所示,蓝色框中的是简单的P2PKH类型output,黄色框中的是OP_RETURN类型的output。可以发现两类output的格式是非常相近的。

2.2 scriptOPRETURN字段

scriptOPRETURN字段描述

3. 举例描述

本文以测试网testnet中的一个交易1037930f242763567b7c163e0db4b8e679934aa6317386a455cb6984c81f022d来举例。该交易的raw transaction可以从本地同步的测试网节点中获得,也可以通过查询smartbit区块浏览器获得。信息如下所示:

01000000017df4eee40fef1cf0ac17bb9e723489a078511d8b402b1063d00a5f42dd5fa97b010000006a4730440220779202bedffce6d14c1d3918215b46de57aa3efb873455b0697ab9002a6226d3022039d684012fa8c92d8fe100cb23ec7c07a0129a58b55e82e507c78484b1ef378f0121027137d153419cbfe555b69a17c862978afa56cc2562568cfbae842c47636991a4ffffffff02400d0300000000001976a914e20cf24f62878ad5da120bd1efe6bcd6b1e13ea388ac0000000000000000126a10486f772069732065766572796f6e652100000000

对该信息按照上图中字段进行划分,结果如下所示:
举例说明
其中data的内容486f772069732065766572796f6e6521转换成ASCII码为“How is everyone!”,可以借助于在线工具rapidtables完成转换。

4. 参考链接

发布了51 篇原创文章 · 获赞 23 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/u014633283/article/details/88605726