主页 > imtoken钱包下载安卓版 > #比特币挖矿part1#挖矿算法

#比特币挖矿part1#挖矿算法

imtoken钱包下载安卓版 2023-01-17 22:51:47

之前我一直认为挖矿就是尝试所有的nonce值比特币挖矿程序,然后再用SHA256算法计算一遍。后来发现自己把事情想的太简单了,就试着说一下比特币的挖矿算法的过程。

区块头

比特币挖矿程序

首先,挖矿算法的目标对象只是区块中的区块头,一共80个字节,我们来看看区块头的字段:

这里写图片描述

比特币挖矿程序

注意:

Target(难度目标):这个区块的工作量证明算法的难度目标实际上不包括区块头中的Padding+Length部分,这部分只是为了满足SHA256算法的使用条件字段的不同颜色表示该字段内容更改的频率。绿色:Version、Target、Padding+Length等内容(有约定俗成的标准)相对于块的速度变化频率非常低;黄色:hashPreBlock、hashMerkleRoot、Timestamp的频率与出块速度几乎一致;红色:像 Nonce 这样的变化频率比出块率快很多。挖掘算法流程

比特币挖矿程序

这里写图片描述

为什么要进行双重哈希(SHA256(1)然后是 SHA256(2)))

比特币挖矿程序

p>

与使用 Merkle-Damgård 范式构建的所有哈希一样,SHA256 哈希算法容易受到这种攻击。长度扩展攻击允许知道 SHA256(x) 的攻击者在不知道 x 的情况下计算 SHA256(x||y)。虽然尚不清楚长度扩展攻击如何使比特币协议容易受到损害,但据信中本聪决定谨慎行事,并在他的设计中包含双重哈希。

比特币挖矿程序

对这种双重哈希的另一种解释 [6] 是比特币挖矿程序,如果在遥远的将来发现针对 SHA25 的实际原像或部分原像攻击,128 轮 SHA256 可能会保持更长时间的安全6.

挖掘算法实现及编码方法