主页 > 华为手机如何下载imtoken钱包 > 比特币挖矿为什么要计算哈希

比特币挖矿为什么要计算哈希

目前比特币系统使用哈希函数进行挖矿,看来至少要考虑三个方面。首先,哈希函数可以保证区块中数据的完整性。通过使用哈希函数和默克尔树数据结构,区块链上的数据是不可变的。其次,所有区块通过哈希函数链接在一起形成区块链。当比特币系统面临分裂时,采用最后续的区块链作为链设计,保证区块链系统的安全性。第三方面,上述哈希函数也用于挖矿。由于散列函数的单向性,没有人可以从结果中推回原始数据。他们只能一一通过详尽的测试,以确保所有节点在获得记账权和激励方面的公平性。

当一个区块包裹节点试图包裹一组交易时为什么需要比特币,它需要找到一个随机数并计算一个 SHA256 哈希值以及区块头中的其他信息(时间戳、coinbase、默克尔根哈希)。比特币协议对这个哈希值有一个较难的要求,比如哈希值的前几个位置必须为零(哈希值的约束实际上是通过调整难度系数来计算的,即使在算力增加的情况下,比特币仍然需要十分钟来计算合格的哈希值)。

因此,在包块之前,必须重新测试随机数并不断计算哈希值,才能计算出满足难度条件的哈希值。这个过程就是比特币的工作量证明。通过调整难度系数,块的打包速度保持在 10 分钟左右。所谓挖矿为什么需要比特币,就是对随机数进行重新测试,计算出满足难度条件的哈希值的过程。一旦找到这个随机数,它就有资格打包区块,然后赚取交易费用和比特币奖励。

这种激励条件激发了人们对挖矿的热情,并不断将越来越多的计算资源投入比特币网络。起初,人们使用计算机 CPU 进行哈希计算,然后使用 GPU 进行计算,最后生产出专用的 ASIC 矿机。组织模型也变得更加精确和庞大。一开始,个人将他们的计算机连接到比特币网络进行挖矿。此时,包裹区块的节点与计算哈希的节点同在。后来发现难点是hash计算,于是把打包块和hash计算分开,随机数分发中心把随机数分发给多个hash计算节点进行分布式hash计算。