共识机制-POW

哈希函数的三个特性

  1. 碰撞阻力(Collision-resistance)
    定义:碰撞的定义是指对于不同的输入,产生相同的输出。碰撞阻力是指暂时无法找到两个不同的输入值,使得经哈希计算后,具有相同的输出。

  2. 隐秘性(Hiding)
    定义:​对于一个给定的输出,无法反推出其输入内容。

  3. 谜题友好(Puzzle-friendliness)
    求解哈希函数只能用穷举法一个一个去试,不能通过其他策略更快地得到结果。

比特币的工作量证明是通过变动区块头(Block header)中的Nonce值,不断计算具有不同Nonce值的区块头哈希值,直到找到一个哈希值小于指定的难度值,通过发布这个结果来证明自己完成的工作量。

block.h 文件中

class CBlockHeader
{
public:
// header
int32_t nVersion;
uint256 hashPrevBlock;
uint256 hashMerkleRoot;
uint32_t nTime;//当前时间戳
uint32_t nBits;//当前挖矿难度,nBits越小难度越大
uint32_t nNonce;
...
}