主页 > imtoken苹果版下载链接 > 比特币区块头存放的数据包括 PoW 共识机制

比特币区块头存放的数据包括 PoW 共识机制

imtoken苹果版下载链接 2023-09-12 05:11:28

在了解pow共识机制之前,我们先来了解一下比特币区块的结构。 下图是比特币区块的结构图:

11816181-6ac529fb02325e80.png

比特币区块结构图

从图中可以看出,比特币的结构分为区块头和区块体,而区块头又细分为:

Parent block header hash value:前一个块的hash值,使用SHA256计算(SHA256(parent block header)).32字节

Version:区块的版本号,表示该区块遵守的验证规则。4字节

时间戳:出块的大概时间,UNIX时间戳,精确到秒,必须严格大于前11个出块时间的中位数,全节点也会拒绝那些超过自身2小时时间戳的区块。4字节

Difficulty:该区块工作量证明算法的难度目标,使用特定算法编码。4字节

Nonce:为了找到满足难度目标的随机数,解决在算力飙升的情况下32位随机数不够用的问题,规定时间戳和coinbase交易信息可以进行更改比特币区块头存放的数据包括,从而扩展 nonce.4 字节中的位数

默克尔根:本区块交易的默克尔根的哈希值也是使用SHA256计算的(SHA256())。32字节

区块链技术与比特币_比特币区块头存放的数据包括_哈比特币区块链

这样,细心的同学会发现,区块头一共占用了80个字节。

除了代币交易记录(由 Merkle 二叉树组成)之外,区块体还有一个交易计数。

比特币任何一个节点想要产生一个新的区块,都必须使用自己节点拥有的算力来解决 pow 问题。 因此,我们先来了解一下POW工作量证明的三要素。

2. POW 工作量证明的三要素

介绍完前言中的比特币区块,我们来了解一下pow机制需要满足哪些要素?

1.工作量证明功能

比特币中使用的是SHA256算法函数,是密码学哈希函数族中输出值为256位的哈希算法。

2.块

区块链技术与比特币_哈比特币区块链_比特币区块头存放的数据包括

区块头在前言中已经详细介绍过,这里介绍一下区块体的默克尔树算法:

11816181-fc1868c972439ac3.png

Merkle树算法图

如上图所示,首先对L1--L4这4条交易记录计算hash(L1)-hash(L4),然后计算hash0=hash0-0+hash0-1和hash1=hash1-0+hash1-1 ,最后计算出根节点的哈希值top hash。

3.难度值

关于难度值,我们直接看公式:

新难度值=旧难度值*(过去2016个区块花费的时间/20160分钟)

目标值=最大目标值/难度值

区块链技术与比特币_哈比特币区块链_比特币区块头存放的数据包括

新难度值分析:抛开旧难度值不谈,按照比特币每10分钟的理想速度,过去2016个区块的总成本接近20160分钟,所以这个值会一直趋近于1。

目标值分析:最大目标值是一个固定的数字(详见资料,这里不再赘述)。 如果过去2016个区块花费的时间小于20160分钟,那么这个系数就小,目标值就调大,反之,目标值就调小,因此,比特币的难度和速度块生成将与块速度的适当调整成反比。

介绍完POW工作量证明的三要素之后,我们就可以来说明一下工作量证明的过程了

3. Pow工作量证明流程

11816181-4d6fedcc511c63f7.png

从流程图可以看出,POW工作量证明过程主要经过三个步骤:

1.生成Merkle根哈希

生成Merkle root hash在第二章第二个要素中已经讲解过,即节点自己生成一个token交易,通过Merkle树算法生成Merkle root hash和其他所有交易一起打包比特币区块头存放的数据包括,所以为什么说区块是工作量证明的三要素之一。

比特币区块头存放的数据包括_哈比特币区块链_区块链技术与比特币

2.组装区块头

区块头会作为输入参数来计算工作量证明的输出,所以第一步计算的默克尔根哈希和区块头的其他组成部分被组装到区块头中,这就是为什么我们要花前言中很多时间来提前解释比特币的区块头。

3.计算工作量证明的输出

下面我们直接使用公式和一些伪代码来理解工作量证明的输出:

一世。 工作量证明的输出 = SHA256(SHA256(区块头))

二. 如果(工作量证明的输出=目标值),改变随机数,递归i的逻辑,继续和目标值比较。

注:目标值的计算见第二章要素3的难度值。

以上流程图和分析就是pow工作量证明的全过程。

区块链技术与比特币_比特币区块头存放的数据包括_哈比特币区块链

4.pow共识记账

第三章阐述了单节点工作量证明过程。 有了这个计算过程,我们就不得不用它了。 在比特币平台中,中本聪通过POW工作量证明让全网节点达到51%及以上的共识记账,下面将介绍POW工作量证明共识是如何记账的?

首先,客户端产生新的交易并广播到全网

二、每个节点收到将交易包含在区块中的请求

三、每个节点通过第3章描述的POW工作量证明

第四,当一个节点找到证明时,它向全网广播

五、其他节点同意该区块的有效性当且仅当该区块中的交易有效且之前不存在

六、接受区块并在区块末尾创建一个新区块

大致时序图如下:

11816181-79f194d160b2b377.png

POW工作量证明共识机制时序图