我们戏称“挖比特币”是“挖矿”,那么“挖矿”的人就是“矿工”,“矿工”手上的工具那就是显卡。
要解答“为什么需要显卡,不用CPU去挖”,那么我们需要理解“挖矿”到底是怎么挖的。
区块链与“挖矿”
如果要用几千字就介绍完区块链,那是不现实的。小编决定用简短的讲解与比喻的方法,简单地说一下区块链与“挖矿”。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。
说人话,简单来说,我们可以把区块链当成一本本的账本。每一个账本都记录着区块链网络上的交易。那么“挖矿”就是“打包”这个区块链网络上十分钟里全部的交易,把所有交易记入账本,生成一个区块。生成区块之后,负责“打包”的矿工就会获得相应的奖励(现在是12.5个比特币,今天比特币的市价超过25000元,收入可以说相当丰厚)。
那么问题来了,矿工不止一个,到底怎么决定给那个矿工呢?在区块链网络中,使用一种方法:工作量证明(Proof Of Work,简称POW)来决定“打包权”。
工作量证明(POW)
工作量证明,简单理解就是一份证明,用来确认你做过一定量的工作。监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。
相当于,你去企业应聘,你需要证明你有才能,但是企业不可能付出很长的时间去验证。那么可能要求你亮出您的学历证明、或者是工作成就证明。你获取这些证明的过程很困难,但是企业认证所花费的时间与代价却不大。
在区块链网络上也是这样,矿工需要寻找一个合适的哈希函数,去证明自己经过了大量运算。对于比特币这种加密系统所使用的哈希函数,它具备以下的性质:
那么矿工需要做的就是经过大量哈希运算,获得一个符合特定范围的哈希码,获得“打包权”。(注:比特币网络中任何一个节点,如果想生成一个新的区块并写入区块链,必须解出比特币网络出的工作量证明的迷题。这道题关键的三个要素是工作量证明函数、区块及难度值。这三个因素,每一个发生变动都会引起所需要的运算力大幅度变化)
为什么使用显卡
我们知道,矿工的工作就是用穷举的方法,获得一个在指定范围的哈希码。这样的工作技术含量并不高,但是需要占用大量的运算能力。CPU的核心不多,但是擅长于复杂的运算;GPU核心很多,擅长并行运算,能够同时解决多个简单的运算。
让我们来看看老黄今年发布的GTX1080Ti的恐怖性能。
(图片来源太平洋电脑网)
120亿个晶体管、3584个流处理器、224个纹理单元、88个ROP,除了用来“吃鸡”。这个显卡用来运算哈希函数也是顶级的(有矿工说按照性价比来说,这么贵的1080Ti不是最好的选择)。
但是,不要以为有GTX1080Ti就能够挖到了,国内专业的“矿场”每个月电费都是百万级的,你可以想象里面有多少块显卡。
(图片来源网上)
所以,用家用电脑挖矿,连电费赚不回来。当然,如果你想手算哈希码的话,你相当于向诺贝尔奖出发,因为一台计算机以每秒10000次的速度进行哈希运算,要经过10^27年才能完成2^128次哈希!。现在想挖到一个比特币,是需要进行差不多百万次的哈希运算。