比特币区块结构

区块

区块是本文章重点讲述的内容, 每个区块主要用于存储交易信息 。区块结构如下:

大小 字段名称 描述
4字节 区块大小 用字节表示区块大小
80字节 区块头 组成区块头所包含的字段
1-9字节(不固定) 交易数量 交易数量
不固定 交易信息 记录当前区块里的交易信息

区块头结构如下:

大小 字段 描述
4字节 版本 版本号,跟踪使用软件/协议
32字节 父区块哈希值 上一个区块哈希值
32字节 Merkle根 该区块中交易的Merkle树根的哈希值
4字节 时间戳 该区块产生时间
4字节 难度目标 该区块工作量证明的难度目标
4字节 Nonce 工作量证明的计数器

用表格描述区块结构是清晰的,但不够直观。下面使用一张图来表示区块结构:

区块结构.png

这张图清晰明了介绍区块包含信息和组成。

区块是通过什么链接起来的? 区块头的父区块哈希 ,就是使用它把一个个链接起来。一直连到创世区块, 创世区块也就是第一个区块

每个区块都有父区块哈希值,有没有想过当前区块哈希是产生的?

当前区块哈希值不包含在区块的结构 ,当从比特币网络被接收到该区块时,再由每个节点计算出区块哈希值。区块的哈希值可能存储到某个设备或者数据库,以便于索引和更快地从磁盘检索区块。

从区块结构的角度,讲解区块链的定义 :区块链是有序地把一个个区块链接起来 。区块结构包括:区块大小、区块头、交易数量、交易笔数。区块头包含字段有:版本号、父区块哈希值、Merkle根、时间戳、Nonce、难度目标。还有当前区块哈希值不包含在区块的结构。