比特币挖矿难题的目的

Purpose of bitcoin mining puzzle

我理解比特币挖矿需要花费很长时间来猜测 nounce,直到能够生成带有前导零的哈希值。

我这里有两个特别的问题 --

  1. 为什么比特币挖矿的计算成本如此之高?如果目的只是随机选择一个获胜者来放置区块,为什么不使用简单且更快的工作量证明算法呢? (一个例子可能是生成一个介于 0-1 之间的随机数,并且具有 smallest/largest 值的随机数赢得这一轮)。通过降低拼图的计算成本,我们应该在全球范围内节省大量电能。

  2. 选择一个谜题来生成带有前导零的哈希结果有什么特别的优势吗?

  1. 算法的难度恰恰是比特币网络上cheat/steal难的地方。如果算法很简单,那么任何人都可以重新创建旧块并删除旧支出,例如,看起来他们在购买东西后从未花费过任何比特币。目的不是随机挑选获胜者,目的是奖励做最多工作的矿工。获胜者确实是随机的,但您做的工作越多(算力越多),您获胜的可能性就越高。概率等于您花费的算力占网络总算力的比例。

  2. 前导零并不是使散列有效的原因,它必须低于阈值。前导零恰好发生,因为数字很低。这就像写 1000 或 001000,它仍然是相同的数字,但哈希是 32 个字节,所以前导零在那里,所以你可以看到所有 32 个字节。

我强烈推荐阅读 Bitcoin Whitepaper on proof-of-work. Also check out the Bitcoin Wiki - PoW