比特币挖矿机是获取比特币的方式之一。比特币(Bitcoin)是一种由开源的P2P软件产生的网络虚拟货币。它不依靠特定货币机构发行,通过特定算法的大量计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值 [1] 。
任何一台电脑都能成为挖矿机,只是受益会比较低,可能十年都挖不到一个比特币。很多公司已经开发出专业的比特币挖矿机,这种搭载特制挖矿芯片的矿机,要比普通的电脑运算速率高几十倍或者几百倍 [1] 。
原理
比特币系统由用户(用户通过密钥控制钱包)、交易(交易都会被广播到整个比特币网络)和矿工(通过竞争计算生成在每个节点达成共识的区块链,区块链是一个分布式的公共权威账簿,包含了比特币网络发生的所有的交易)组成 [2] 。
比特币矿工通过解决具有一定工作量的工作量证明机制问题,来管理比特币网络—确认交易并且防止双重支付。由于散列运算是不可逆的,查找到匹配要求的随机调整数非常困难,需要一个可以预计总次数的不断试错过程。这时,工作量证明机制就发挥作用了。当一个节点找到了匹配要求的解,那么它就可以向全网广播自己的结果。其他节点就可以接收这个新解出来的数据块,并检验其是否匹配规则。如果其他节点通过计算散列值发现确实满足要求(比特币要求的运算目标),那么该数据块有效,其他的节点就会接受该数据块 [3] 。
中本聪把通过消耗CPU的电力和时间来产生比特币,比喻成金矿消耗资源将黄金注入经济。比特币的挖矿与节点软件主要是透过点对点网络、数字签名、交互式证明系统来进行发起零知识证明与验证交易。每一个网络节点向网络进行广播交易,这些广播出来的交易在经过矿工(在网络上的计算机)验证后,矿工可使用自己的工作证明结果来表达确认,确认后的交易会被打包到数据块中,数据块会串起来形成连续的数据块链。每一个比特币的节点都会收集所有尚未确认的交易,并将其归集到一个数据块中,矿工节点会附加一个随机调整数,并计算前一个数据块的SHA256散列运算值。挖矿节点不断重复进行尝试,直到它找到的随机调整数使得产生的散列值低于某个特定的目标 [3] 。
挖矿过程
挖矿是增加比特币货币供应的一个过程。挖矿同时还保护着比特币系统的安全,防止欺诈交易,避免“双重支付”,“双重支付”是指多次花费同一笔比特币。矿工们通过为比特币网络提供算法来换取获得比特币奖励的机会。 矿工们验证每笔新的交易并把它们记录在总帐簿上。每10分钟就会有一个新的区块被“挖掘”出来,每个区块里包含着从上一个区块产生到目前这段时间内发生的所有交易,这些交易被依次添加到区块链中。我们把包含在区块内且被添加到区块链上的交易称为“确认”交易,交易经过“确认”之后,新的拥有者才能够花费他在交易中得到的比特币 [2] 。
矿工们在挖矿过程中会得到两种类型的奖励:创建新区块的新币奖励,以及区块中所含交易的交易费。为了得到这些奖励,矿工们争相完成一种基于加密哈希算法的数学难题,也就是利用比特币挖矿机进行哈希算法的计算,这需要强大的计算能力,计算过程多少,计算结果好坏作为矿工的计算工作量的证明,被称为“工作量证明”。该算法的竞争机制以及获胜者有权在区块链上进行交易记录的机制,这二者保障了比特币的安全 [2] 。
矿工们同时也会获取交易费。每笔交易都可能包含一笔交易费,交易费是每笔交易记录的输入和输出的差额。在挖矿过程中成功“挖出”新区块的矿工可以得到该区块中包含的所有交易“小费”。随着挖矿奖励的递减,以及每个区块中包含的交易数量增加,交易费在矿工收益中所占的比重将会逐渐增加。在2140年之后,所有的矿工收益都将由交易费构成 [2] 。
挖矿是一种将结算去中心化的过程,每个结算对处理的交易进行验证和结算。挖矿保护了比特币系统的安全,并且实现了在没有中心机构的情况下,也能使整个比特币网络达成共识。 挖矿这个发明使比特币变得很特别,这种去中心化的安全机制是点对点的电子货币的基础。铸造新币的奖励和交易费是一种激励机制,它可以调节矿工行为和网络安全,同时又完成了比特币的货币发行 [2] 。
收益
比特币的发行和交易的完成是通过挖矿来实现的, 它以一个确定的但不断减慢 的速率被铸造出来。每一个新区块都伴随着一定数量从无到有的全新比特币,它作为coinbase交易奖励给找到区块的矿工。每个区块的奖励不是固定不变的 ,每开采210000个区块,大约耗时4年,货币发行速率降低50{b2012ba45bed8df9e27a732d113bf0adaf0cdaf119415d399cb31156a09f2387}。在比特币运行的第一个四年中,每个区块创造出50个新比特币。每个区块创造出12.5个新比特币。除了块奖励外,矿工还会得到区块内所有交易的手续费 [4] 。
挖矿机的风险
电费问题
显卡“挖矿”要让显卡长时间满载,功耗会相当高,电费开支也会越来越高。国内外有不少专业矿场开在水电站等电费极其低廉的地区,而更多的用户只能在家里或普通矿场内挖矿,电费自然不便宜。甚至云南某小区有人进行疯狂挖矿导致小区大面积跳闸,变压器被烧毁的案例 [5] 。
硬件支出
挖矿实际是性能的竞争、装备的竞争,有些挖矿机是更多这样的显卡阵列组成的,数十乃至过百的显卡一起来,硬体价格等各种成本本身就很高,挖矿存在相当大的支出。除了烧显卡的机器,一些ASIC(应用专用集成电路)专业挖矿机也在投入战场,ASIC是专门为哈希运算设计的,计算能力也相当强劲,而且由于它们的功耗远比显卡低,因此更容易形成规模,电费开销也更低,单张独显很难与这些挖矿机竞争,但与此同时,这种机器的花费也更大 [6] 。
货币安全
比特币的支取需要多达数百位的密钥,而多数人会将这一长串的数字记录于电脑上,但经常发生的如硬盘损坏等问题,会让密钥永久丢失,这也导致了比特币的丢失 [7] 。
系统风险
系统风险在比特币这个里面非常常见,最常见的当属于分叉。分叉会导致币价下跌,挖矿收益锐减。不过很多情况表明,分叉反而让矿工收益,分叉出来的竞争币也需要矿工的算力来完成铸币和交易的过程,为了争取更多的矿工,竞争币会提供更多的区块奖励及手续费来吸引矿工。风险反而成就了矿工 [8] 。
矿机种类
ASIC矿机
ASIC矿机是指使用ASIC芯片作为核心运算零件的矿机。ASIC芯片是一种专门为某种特定用途设计的芯片,必须说明的是它并不只用于挖矿,还有更广泛的应用领域。这种芯片的特点是简单而高效,例如比特币采用SHA256算法,那么比特币ASIC矿机芯片就被设计为仅能计算SHA256,所以就挖矿而言,ASIC矿机芯片的性能超过当前顶级的电脑CPU。因为ASIC矿机在算力上有绝对的优势,所以电脑、显卡矿机开始逐渐被淘汰 [6] 。
GPU矿机
GPU矿机,简单的解释就是通过显卡(GPU)挖矿的数字货币挖矿机。在比特币之后,陆续出现了一些其他数字资产,比如以太坊、达世币、莱特币等等,其中一些币所用的算法与比特币并不相同,为了达到更高的挖矿效率,矿工们做了不同的测试,最后发现SHA256算法的数字货币使用ASIC挖矿效率最高。而Scrypt 等其他算法的数字货币用GPU显卡挖矿效率最高,于是催生出了专门的GPU矿机 [6] 。
IPFS矿机
IPFS类似于http,是一种文件传输协议。IPFS要想运行,需要网络中有许许多多的计算机(存储设备)作为节点,广义的说所有参与的计算机,都可以称作IPFS矿机。而IPFS网络为了吸引更多的用户加入成为节点,为网络做贡献,设计了一种名叫filecoin的加密货币,根据贡献存储空间与带宽的多少,派发给参与者(节点)作为奖励。狭义的说,专门以获取filecoin奖励为目的而设计的计算机,称为IPFS矿机。由于IPFS网络需要的是存储空间以及网络带宽,所以为了获得最高的收益比,IPFS矿机通常会强化存储空间、降低整机功耗等方面。比如装备10块以上大容量硬盘,配备千兆或更高速度的网卡,使用超低功耗的架构处理器等等 [6] 。
FPGA矿机
FPGA矿机,既使用FPGA芯片作为算力核心的矿机。FPGA矿机是早期矿机之一,首次出现在2011年末,在当时一度被看好,但活跃期并不长,后逐渐被ASIC矿机与GPU矿机取代。FPGA(Field-Programmable Gate Array),中文名叫现场可编程门阵列。比较通俗的理解是,FPGA就是把一大堆逻辑器件(比如与门、非门、或门、选择器)封装在一个盒子里,盒子里的逻辑元件如何连接,全部由使用者(编写程序)来决定 [6] 。
如果FPGA里面写的是挖矿程序,那么造出来的就是FPGA矿机,而且由于FPGA灵活度高,所以不只是可以支持比特币的SHA256算法,也可以支持GPU矿机擅长的Scrypt算法。FPGA矿机活跃的时期,相比同时代的CPU、GPU矿机,FPGA虽然算力性能不占优,但功耗要低很多,综合功耗比很高 [1] 。