什么是比特币挖矿?

比特币挖矿是指比特币节点通过打包交易产生新区块,并由此获得比特币收益的过程。

要了解比特币挖矿,需要涉及矿工、比特币代币经济模型、PoW共识算法、矿机、比特币网络安全等诸多概念。因为这些概念对应的就是一个完整的比特币挖矿流程,即为我们解答,比特币挖矿过程中:谁来挖、挖什么、怎么挖、用啥挖,以及为什么挖的问题。

 

1.谁来挖?

在了解矿工前,首先需要了解的一个概念是比特币节点。通俗来讲,比特币节点就是安装并运行比特币软件的一台台计算机或硬件设备,也可以说是每台计算机后面的普通用户。但不管比特币节点的实体到底是什么,其本质作用只有一个:参与和维护比特币网络系统的安全运行。

为了实现该目标,不同的比特币节点会有不同的任务分工或功能。譬如,所有的比特币节点都会负责参与验证交易的真实性及信息传递;一部分节点会主要负责存储比特币区块链完整账本;还有一部分节点会专门从事打包交易数据并生成新区块的工作,而这部分节点即是我们常说的比特币矿工。

 

2.挖什么?

比特币矿工在挖什么?毋庸置疑,答案自然是比特币。

在比特币网络系统运行中,矿工主要负责打包交易数据生成新区块。就和公司给员工发薪水一样,为激励矿工打包区块,比特币系统会为其支付报酬,即挖矿奖励——比特币。值得注意的是,这里的挖矿奖励实际上包含两个部分:区块奖励和交易手续费奖励。其中,交易手续费奖励是指被打包进该区块的所有交易的手续费用总和,其数额会随交易数量及手续费变化而变动。一般在讨论,或者说至少在目前讨论比特币挖矿时,这部分奖励可以忽略不计。人们更关注的是第一部分——区块奖励。

区块奖励是指当前区块中第一笔交易Coinbase交易中所包含的系统奖励,即上述所言,比特币系统为奖励打包区块而向矿工支付的报酬。根据比特币协议,最早比特币系统开始运行时(2009年),一个区块包含的奖励为50枚BTC,此后每挖出210000个区块(约4年时间)将进行减半。截至目前,比特币已完成3次减半,单个区块奖励现为6.25枚BTC。

 

3.怎么挖?

不同于现实生活中重金属物理挖矿,比特币挖矿实际上就是安装运行比特币客户端软件。挖矿的过程实际上就是打包区块的过程,该过程则要通过比特币工作量证明算法(PoW)实现。PoW工作原理是:先给定一个难度值,随后通过SHA-256算法算法不断计算区块哈希值,只要该哈希值满足比难度值小的要求,就意味着挖矿成功。

如此前顶峰课堂讲解区块概念时所言,要计算一个区块的哈希值,需要对区块头数据进行哈希计算,即对区块版本、前个区块哈希、Merkle Root哈希、时间戳、Bits难度和Nonce随机数进行哈希计算。和比特币挖矿直接相关的则主要涉及两个概念:Nonce随机数和Bits难度值。具体而言,比特币矿工在进行区块打包时,将首先确定区块版本、前个区块哈希、Merkle Root哈希、时间戳、Bits难度数据,随后不断变化Nonce随机数进行哈希计算,直到计算出一个哈希值小于Bits难度值,则该区块有效,矿工完成挖矿。从本质上看,挖矿过程实际上是计算机利用算法解一道数学题的过程,因此该过程也常被形象地称作解题过程。

 

4.用啥挖?

根据PoW算法,我们已经知道,要想成功挖矿,必须解开一道高难度数学题。当然,所谓的高难度仅仅是针对计算机而言,解题并不需要人工计算,而是由计算机执行,也就是我们常说的矿机。比特币挖矿市场中,主要的矿机包括ASIC矿机、GPU矿机(我们常说的显卡挖矿)。其中,采用SHA256算法的比特币使用ASIC矿机挖矿效率最高,因此当前比特币市场中的主流矿机均是ASIC矿机。由于单个矿机算力很小,成功解题挖到比特币的概率微乎其微,由此衍生,市场中则出现了比特币矿场、矿池等生态。

 

5.为什么挖?

根据比特币协议,比特币之所以需要进行挖矿,主要有以下几个原因:

1.比特币挖矿属于比特币代币发行机制中的重要一环。挖矿过程实际上就阐明了比特币新币发行和分配的规则。

2.比特币挖矿属于比特币点对点支付系统验证交易有效性完整机制的重要组成部分。

3.比特币挖矿实际上也是一种在有限的吞吐量下对交易进行优先排序的方法。

4.比特币挖矿机制为矿工提供激励,促使他们参与并维护比特币网络运行,从而有助于保护网络安全,免受攻击者的影响。也就是我们常说的,参与比特币挖矿的节点越多,网络算力越强,整个网络也就越安全。