目录
一、区块结构
数据区块是区块链的基本元素。比特币系统的每个数据区块主要由区块头(Block Header)和区块体(Block Body)两部分组成,其中区块头记录当前区块的元数据,而区块体则存储封装到该区块的实际交易数据。
数据项 | 数据说明 | 大小 |
Block Size | 区块大小 | 4字节 |
Block Header | 区块头 | 80字节 |
Transaction Counter | 交易数量 | 1~9字节 |
Transactions | 交易列表 | 可变 |
下图是:比特币系统的区块结构图
二、区块头
比特币系统区块头的数据项及说明:
数据项 | 说明 | 更新时间 | 大小 |
Version | 版本号,表示本区块遵守的验证规则 | 版本升级时 | 4字节 |
Pre-block | 引用区块链中夫区块的哈希值 | 创建一个新区块时 | 32字节 |
Bits | 压缩格式的当前目标哈希值 | 当挖矿难度调整时 | 4字节 |
Nonce | 32位数字(从0开始) | 共识过程中实时更新 | 4字节 |
Kerkle-root | 基于一个区块中所有交易的哈希值 | 交易列表发生变化时 | 32字节 |
Timestamp | 该区块产生的近似时间,精确到秒的Unix时间戳 | 构建区块时 | 4字节 |
三、区块体
数据项 | 数据描述 | 大小 |
Version No | 版本号,目前为1,表示这笔交易参照的规则 | 4字节 |
In-counter | 输入数量,正整数VI=VarInt | 1~9字节 |
list of inputs | 输入列表,每区块的第一个交易称为“Coinbase”交易 | <in-counter>许多输入 |
Out-counter | 输出数量,正整数VI=VarInt | 1~9字节 |
list of outputs | 输出列表,每区块第一个交易的输出是给矿工的奖励 | <out-counter>许多输出 |
lock_time |
锁定时间,如果非0并且序号小于0XFFFFFFFF,则是指块序号; 如果交易已经终止,则是指时间戳 |
交易主要可以分成三部分:元数据、一系列的输入和一系列的输出。除了第一笔Coinbase交易是矿工的挖矿收入之外,其他每一笔交易都有一个或多个输入,以及一个或多个输出。Coinbase交易没有输入,只有输出。
(1)元数据
主要存储一些内部处理的信息,包含版本号、这笔交易的规模,输入的数量、输出的数量、交易锁定时间,以及作为该交易独一无二的ID的哈希值。其他区块可以通过哈希指针指向这个ID。
(2)交易输入
每笔交易的所有输入排成一个序列,每个输入的格式相同,当交易被序列化以便在网络上传播时,输入将被编码为字节流。
数据项 | 描述 | 大小 |
Previous Transaction hash | 指向交易包含的未花费的UTXO的哈希指针 | 32字节 |
Previous Txout-index | 未花费的UTXO的索引号,第一个是0 | 4bytes |
Txin-script length | 解锁脚本长度 | 1~9字节(可变整数) |
Txin-script/scriptSig | 一个达到UTXO锁定脚本中的条件的脚本 | 变长 |
sequence_no | 目前未被使用的交易替换功能,通常设成0xFFFFFFFF | 4字节 |
(3)交易输出
每个输出的内容分成两部分,一部分是特定数量的比特币,以“聪”为单位(最小的比特币单位),另一部分是锁定脚本,即提出支付输出所必须满足的条件以“锁住”这笔总额。
数据项 | 描述 | 大小 |
Value | 用“聪”表示的比特币值 | 8字节 |
Txout-script length | 锁定脚本长度 | 1~9字节(可变整数) |
Txout-script/scriptPubKey | 定义了支付输出所需条件的脚本 | 变长 |
四、交易类型
(1)生产交易
每个区块的第一笔交易都是生产新币的交易。该交易没有输入地址,仅有一个输出地址,其作用是将系统新生成的加密货币奖励给创造当前区块的矿工。
(2)通用地址交易
这是区块链系统中最常见的交易,由N个输入和M个输出构成,其中N>0,M>0。根据N和M的不同取值,可以进一步细分为一对一转账交易、一对多分散交易、多对一聚合交易和多对多转账交易。
(3)合成地址交易
合成地址交易是一类特殊交易,其接收地址不是通常意义的地址,而是一个以3开头的合成地址。合成地址一般是M of N的多重签名地址,其中1<=N<=3、1<=M<=N,通常选择N=3。合成地址的交易构造、签名和发送过程与普通交易类似,但其地址创建过程需要三对公钥和私钥,其中公钥用于创建地址、私钥用于签名。
来源:CSDN
作者:振哥在,世界充满爱!
链接:https://blog.csdn.net/qq_30507287/article/details/103791110