区块链挖矿的底层机制

区块内容区块头包括三组数据:第一、父区块哈希值的数据。第二、挖矿难度值、区块时间戳以及Nonce。这一组数据记录与挖矿有关的内容。第三、Root hash(或Merkle Root)。其为一个由本区块

区块内容区块链挖矿的底层机制

区块头包括三组数据:

区块链挖矿的底层机制

第一、父区块哈希值的数据。

第二、挖矿难度值、区块时间戳以及Nonce。这一组数据记录与挖矿有关的内容。第三、Root hash(或Merkle Root)。其为一个由本区块所有交易信息经哈希变换生成的哈希值,一旦交易信息发生改变,则root hash也会发生变化,可以用来方便的验证区块是否被篡改。

区块链结构

每个区块通过区块头中父区块哈希值与它的上一个区块建立链,对于创世区块,其父区块哈希值为00…0000,由此构成区块链。

哈希

比特币网络采用SHA256算法,是一种压缩映射,其输出就是散列值,散列值的空间远小于输入的空间。hash值的生成过程可以表示为h=H(M),其中M是“任意”长度的消息,H是hash函数,h是固定长度的hash值。

哈希函数具备如下特性:

H可以用于“任意”长度的消息,“任意”是指实际存在的

H产生的hash值是固定长度的,这是hash函数的基本性质

对于任意给定的消息M,容易计算H(M)值,这是要求hash函数的可用性。

单向性:对于给定的hash值h,要找到M使得H(M)=h在计算上是不可行的

抗弱碰撞性:对于给定的消息M1,要发现另一个消息M2,满足H(M1)=H(M2)在计算上是不可行的

抗强碰撞性:找任意一对不同消息M1、M2,使H(M1)=H(M2)在计算上是不可行的

区块链的哈希值

每个区块的哈希值由上个区块的哈希值、本区块的交易记录、随机数等数据通过哈希函数计算得到。所以区块中任意数据的改动都会导致本区块的哈希值发生变化。

区块头信息确认后,再对区块头进行Hash,形成Block Hash,这样整个区块的内容就确定了,并且不能做任何修改。区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。

区块链挖矿的底层机制

区块链不可篡改

区块头信息确认后,再对区块头进行Hash,形成Block Hash,这样整个区块的内容就确定了,并且不能做任何修改。区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。区块的Block Hash一旦得出,对区块的任何修改都会使哈希变动。而区块链是一个个区块紧密相连的,任何变动都会使区块连接断裂。正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。

挖矿

1.挖矿节点要先构建好预备区块,比特币区块包含从交易池中取得的待确认交易,魔数,区块大小,区块头,交易计数器和交易信息。

2.构建好预备区块后,挖矿节点就会将区块头信息下传给矿工,矿工通过连续不断地调整区块头中的随机数来改变区块中的哈希值,当预备区块的哈希值比特币网络当前目标哈希值低时,这个区块构建完成了,是一个合法的新区块。

3.挖矿节点一般会比较及时地向比特币网络广播新区块,其他比特币节点在接收到广播信息后,会对新区块进行验证,新区块验证通过后,会加入本地。这时候,新区块可以确认创建完毕了。

区块链挖矿的底层机制

想了解更多web3的前沿知识,欢迎关注公众号:区块先知。我们致力于让一部分人先读懂web3。

原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/447874/