区块链之区块结构-学习笔记

目录

一、区块结构

二、区块头

三、区块体

四、交易类型

(1)生产交易

(2)通用地址交易

(3)合成地址交易


一、区块结构

        数据区块是区块链的基本元素。比特币系统的每个数据区块主要由区块头(Block Header)和区块体(Block Body)两部分组成,其中区块头记录当前区块的元数据,而区块体则存储封装到该区块的实际交易数据。

比特币系统的区块结构
数据项数据说明大小
Block Size区块大小4字节
Block Header区块头80字节
Transaction Counter交易数量1~9字节
Transactions交易列表可变

 

下图是:比特币系统的区块结构图

二、区块头

比特币系统区块头的数据项及说明:

比特币系统区块头的数据项及说明
数据项说明更新时间大小
Version版本号,表示本区块遵守的验证规则版本升级时4字节
Pre-block引用区块链中夫区块的哈希值创建一个新区块时32字节
Bits压缩格式的当前目标哈希值当挖矿难度调整时4字节
Nonce32位数字(从0开始)共识过程中实时更新4字节
Kerkle-root基于一个区块中所有交易的哈希值交易列表发生变化时32字节
Timestamp该区块产生的近似时间,精确到秒的Unix时间戳构建区块时4字节

三、区块体

数据项数据描述大小
Version No版本号,目前为1,表示这笔交易参照的规则4字节
In-counter输入数量,正整数VI=VarInt1~9字节
list of inputs输入列表,每区块的第一个交易称为“Coinbase”交易<in-counter>许多输入
Out-counter输出数量,正整数VI=VarInt1~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的索引号,第一个是04bytes
Txin-script length解锁脚本长度1~9字节(可变整数)
Txin-script/scriptSig一个达到UTXO锁定脚本中的条件的脚本变长
sequence_no目前未被使用的交易替换功能,通常设成0xFFFFFFFF4字节

(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。合成地址的交易构造、签名和发送过程与普通交易类似,但其地址创建过程需要三对公钥和私钥,其中公钥用于创建地址、私钥用于签名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值