主页 > 卜八资讯 > 比特币为什么要用这么多显卡?

比特币为什么要用这么多显卡?

近几个月来,包括比特币在内的各种虚拟货币大行其道,尤其是这个比特币更是如此,其单价甚至超过了10000元人民币,价格可以说跟乘着火箭差不多。导致的结果就是AMD的显卡被矿工们抢光,市场上的400系与500系显卡也基本被一扫而光。

从比特币的本质说起,比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到无限个(其实比特币是有限个)解中的一组。而每一个特解都能解开方程并且是唯一的。

为什么要用显卡挖矿?而不用cpu?

相比较于CPU的复杂运算,显卡使用的GPU进行的是通用计算。因此可以堆叠成百上千个流处理器,每一个流处理器就像是小小的CPU,虽然其运行复杂程序的能力远远没有CPU来的给力,但是架不住流处理器多,因此实际性能尤其是单精度浮点性能要比CPU强的多。挖包括比特币之内的动作大家可以认为是利用显卡在做不断地通用计算,并且这个计算复杂度比较低而且相当重复,显卡使用的流处理器正好适合这样的算法。就像是不断地解方程组,显卡是2000位中学生,而CPU则是8名数学博士。虽然数学博士的数学知识远远超过中学生,但是像解虚拟货币这样的中等方程组的速度8名数学博士肯定不如2000名中学生来的快。因此显卡越多,运算数量也大大增加。

我们戏称“挖比特币”是“挖矿”,那么“挖矿”的人就是“矿工”,“矿工”手上的工具那就是显卡。

要解答“为什么需要显卡,不用CPU去挖”,那么我们需要理解“挖矿”到底是怎么挖的。

区块链与“挖矿”

如果要用几千字就介绍完区块链,那是不现实的。小编决定用简短的讲解与比喻的方法,简单地说一下区块链与“挖矿”。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。

说人话,简单来说,我们可以把区块链当成一本本的账本。每一个账本都记录着区块链网络上的交易。那么“挖矿”就是“打包”这个区块链网络上十分钟里全部的交易,把所有交易记入账本,生成一个区块。生成区块之后,负责“打包”的矿工就会获得相应的奖励(现在是12.5个比特币,今天比特币的市价超过25000元,收入可以说相当丰厚)。

那么问题来了,矿工不止一个,到底怎么决定给那个矿工呢?在区块链网络中,使用一种方法:工作量证明(Proof Of Work,简称POW)来决定“打包权”。

工作量证明(POW)

工作量证明,简单理解就是一份证明,用来确认你做过一定量的工作。监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。

相当于,你去企业应聘,你需要证明你有才能,但是企业不可能付出很长的时间去验证。那么可能要求你亮出您的学历证明、或者是工作成就证明。你获取这些证明的过程很困难,但是企业认证所花费的时间与代价却不大。

在区块链网络上也是这样,矿工需要寻找一个合适的哈希函数,去证明自己经过了大量运算。对于比特币这种加密系统所使用的哈希函数,它具备以下的性质:

  • 免碰撞,即不会出现输入x≠y,但是H(x)=H(y)

  • 隐匿性,也就是说,对于一个给定的输出结果H(x),想要逆推出输入x,在计算上是不可能的。
  • 不存在比穷举更好的方法,可以使哈希结果H(x)落在特定的范围。

那么矿工需要做的就是经过大量哈希运算,获得一个符合特定范围的哈希码,获得“打包权”。(注:比特币网络中任何一个节点,如果想生成一个新的区块并写入区块链,必须解出比特币网络出的工作量证明的迷题。这道题关键的三个要素是工作量证明函数、区块及难度值。这三个因素,每一个发生变动都会引起所需要的运算力大幅度变化)

为什么使用显卡

我们知道,矿工的工作就是用穷举的方法,获得一个在指定范围的哈希码。这样的工作技术含量并不高,但是需要占用大量的运算能力。CPU的核心不多,但是擅长于复杂的运算;GPU核心很多,擅长并行运算,能够同时解决多个简单的运算。

让我们来看看老黄今年发布的GTX1080Ti的恐怖性能。

(图片来源太平洋电脑网)

120亿个晶体管、3584个流处理器、224个纹理单元、88个ROP,除了用来“吃鸡”。这个显卡用来运算哈希函数也是顶级的(有矿工说按照性价比来说,这么贵的1080Ti不是最好的选择)。

但是,不要以为有GTX1080Ti就能够挖到了,国内专业的“矿场”每个月电费都是百万级的,你可以想象里面有多少块显卡。

(图片来源网上)

所以,用家用电脑挖矿,连电费赚不回来。当然,如果你想手算哈希码的话,你相当于向诺贝尔奖出发,因为一台计算机以每秒10000次的速度进行哈希运算,要经过10^27年才能完成2^128次哈希!。现在想挖到一个比特币,是需要进行差不多百万次的哈希运算。