天道酬勤,学无止境

CPU挖矿

比特币CPU挖矿、GPU挖矿、矿池及矿机挖矿技术原理

比特币挖矿原理   比特币的区块头,共含6个字段,如下:   int32_t nVersion,4字节,版本号,一般固定不变,仅在升级时改变。  uint256 hashPrevBlock,32字节,前一个区块的区块头哈希,由前一个区块决定。  uint256 hashMerkleRoot,32字节,包含进区块的所有交易构造的Merkle根,调整区块中的交易次序、增删交易、或修改Coinbase交易时改变。  uint32_t nTime,4字节,时间戳,后一个区块时间略早于前一个区块是被允许的,但必须在合理的时间区间,一般会直接使用机器当前时间戳。  uint32_t nBits,4字节,挖矿难度,由全网决定,每2016个区块按算法重新调整。  uint32_t nNonce,4字节,随机数,提供2^32种取值。即4,294,967,296。   其中nVersion、hashPrevBlock、nBits是固定的,其他hashMerkleRoot、nTime、nNonce为可变的。   比特币挖矿原理即,不断变更区块头中的可变值,使得对区块头做双重SHA256哈希,结果小于挖矿难度目标值。即:  SHA256D(BlockHeader) < F(nBits)  其中SHA256D(BlockHeader)即对区块头做双重SHA256哈希,F(nBits

2021-03-26 21:49:50    分类:博客    CPU挖矿   GPU挖矿   矿池   共识算法