8、比特币交易解析与序列化全解

比特币交易解析与序列化全解

1. 版本(Version)

在很多事物中,版本号都有着重要意义。它能为接收者提供有关该版本对应事物的关键信息。就像操作系统,Windows 3.1、Windows 8 和 Windows 10 这些不同的版本号,代表着不同的功能特性和可调用的 API。

比特币交易同样有版本号。一般情况下,比特币交易版本为 1,但在某些特定场景下会是 2。例如,使用 BIP0112 中定义的 OP_CHECKSEQUENCEVERIFY 操作码的交易,就要求版本号大于 1。

有时候看到的十六进制版本值为 01000000,乍一看不像 1,但按照小端字节序(little - endian)来解读,它实际就是 1。

练习 1 :编写已定义的解析方法中关于版本解析的部分。要完成这个任务,需将 4 个字节转换为小端字节序的整数。

2. 输入(Inputs)

比特币交易的输入指向之前交易的输出。这意味着,要花费比特币,必须先接收过比特币,就像现实中得先有钱才能花钱一样。每个输入需要具备两个要素:
- 对之前收到的比特币的引用。
- 证明这些比特币是你可以花费的。

第二个要素借助了 ECDSA(椭圆曲线数字签名算法)。为防止他人伪造,大多数输入都包含只有私钥所有者才能生成的签名。

输入字段可以包含多个输入。这就好比支付一顿 70 美元的餐费,可以用一张 100 美元的钞票(一个输入),也可以用一张 50 美元和一张 20 美元的钞票(两个输入),甚至可以用 14 张 5 美元的钞票或 7000 个便士(分别对应 14 个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值