发布时间:2018-02-06 09:30:57 文章来源:互联网
微博 微信 QQ空间

区块链深度分析报告: 比特币区块链核心技术详解(5)

解密的过程为各个矿工在区块头所包含的叠加内容(参见“区块头”部分)基础上放置随机数字链(工作量,Proof of Work),经过SHA256反复计算后达成目标值。矿工解密运算Hash的有效性跟目标值密切相关,只有小于目标值的Hash才有效,不然则无效,必须重算。

每个区块头包含一个难度系数(Difficulty),此值决定了计算Hash难度。区块链协议规定,使用一个常量除以难度系数(Target=TargetMax/Difficulty),可得到目标值。难度系数越大,目标值就越小。随着全网算力提升,难度系数快速上升。例,第10000个区块难度系数为14,484.16,而第504,000个区块难度系数已上升为2,227,847,638,503.63。

为了将产出速率恒定在十分钟,比特币区块链白皮书内设计了难度系数的动态调节机制。难度系数每两周(2016个区块)调整一次。若2周内,区块平均生成速度是8分钟,就意味着比法定速度快了20%,因此难度系数就要调高20%;若平均生成速度是12分钟,就意味着比法定速度慢了20%,难度系数就要调低20%。

随机数(The Nonce):

随机数为只能使用一次的密码数字,若矿工通过哈希运算产生了一个大于目标数的哈希值,则其需选择随机值重新进行计算,直到找到小于或等于目标数的哈希值。

更具体和直接解释整个流程(3) 挖矿流程(2/2)

Merkle Root是区块头部分内的Hash值,代表了区块体部分内的所有交易。在比特币区块链中,每笔交易产生后,都已经被Hash成一段代码并广播给各节点。在各节点的区块中,可能包含数百笔到数千笔的交易,因此,为节省储存空间并减少资源耗费,比特币区块链的设计原理採用Merkle Tree机制,让这些数百到数千笔的交易Hash值经由两两一组形成一个新Hash值的方式,不断重複进行,直到最后产生一组最终的Hash值,也就是Merkle TreeRoot,这个最终的Hash值便会被记录到Block Header中,只有32 Bytes的大小。MerkleTree机制可大幅减少资料传输量与运算资源消耗,验证时,只需验证这个Merkle Tree的Root值即可。百度搜索“乐晴智库”,获得更多行业深度研究报告

另一视角

换一换