CPU、GPU、FPGA、ASIC,区块链挖矿技术哪家强?

2019-12-26 14:33:46 浏览数 (1)

区块链火了!10月24日,中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习,明确区块链技术的集成应用在新的技术革新和产业变革中所起到的重要作用。

顶层信号刚刚释放,区块链的代表技术比特币迅疾冲破10000美元大关,线上线下关于区块链的讨论铺天盖地,周一开盘,区块链概念股火速井喷,超百只区块链概念股涨停!包括人民日报在内的大量媒体都在科普区块链这项技术。

我不是区块链专家,就不在这里再做赘述,本文将探讨数字货币背后的矿工:芯片。

什么是挖矿

很多媒体都用一些通俗易懂的形式在解释比特币、挖矿等各种技术,公众号侠客岛的文章中将比特币比作打麻将,我觉得这个比喻非常符合比特币挖矿的彩票赌博性质。

如果把比特币挖矿比作打麻将,麻将桌上四个矿工随机摸牌,拼凑出可以胡牌的牌面,谁先胡牌,谁就拥有了比特币的记账权。因为发牌是随机的,胡牌的过程也存在一定的随机性,矿工就是要做的是开动脑筋,用一定的计算策略,组合手中的牌。与打麻将一样,比特币挖矿其实就是一个赌博的过程。

现有的比特币矿机为了赢得记账权,需要使用一个算法不断生成一个256位的随机数,生成的随机数要比当前规定的目标数字小才算“胡牌”。随着时间的推进,目标数字也在变化,现在大约两星期变化一次,每次变化,将导致矿机成功的概率变小。目标数字会随着新比特币的产生而发生变化,这导致了挖矿难度随着时间而越来越难。这种机制保障了货币总量永远不会被超量发行,也就不会出现通货膨胀的问题。

例如,目标是形如下面的256位数字:

代码语言:javascript复制

000000000000000000148edf0000000000000000000000000000000000000000

比特币矿工要做的就是使用一个名为SHA-256的随机数生成算法,计算出一个随机数,与一个目标数字比较,如果小于目标数字,这位矿工非常幸运,他将获得记账权。但绝大多数情况,随机数都比这个目标数字大,所以矿工只能重新计算一遍。为了能获得更多的记账权,矿工就这样一遍遍的重复再重复。

比特币之所以设计这个不断重复计算随机数的过程,是为了制造一定的获取门槛,让矿工解决随机数难题后才能获得数字货币价值。就像现实世界中的工人计件发工资一样,在虚拟世界中,衡量一个矿工是否卖力干活,需要这样一个工作量证明(Proof of Work,PoW)。

工作量证明的算法早在比特币出现之前就被提出,该算法主要解决资源滥用的问题,但是会消耗时间、计算力和相应的电能。算法的初衷是制作一些费时费力费钱的门槛,将那些不劳而获分子拒之门外。但随着资本推动比特币价值的飙升,人们开始投入极大的电力和计算资源来进入这个赌博游戏,挖矿机芯片也随之不断演进。

从CPU到ASIC

2009年,第一桶比特币按照上述的挖矿算法产生。在初期,比特币和区块链技术非常小众,使用普通的笔记本电脑和CPU处理器就可以挖矿。随着区块链技术的推广,资本入局,比特币价值飙升,如果继续使用CPU,资本无法承担矿机所需的硬件成本和电能费用,挖矿难度也越来越大,人们开始使用一些更高效率的芯片,开始是GPU,后来是FPGA。2013至2014年,大规模矿机已经逐渐从FPGA开始全面转向了ASIC。10年,比特币矿机由CPU变为GPU和FPGA,最终被ASIC一统江湖,从比特币矿机的发展,我们可以一窥芯片算力领域的演进过程。

那么,CPU、GPU、FPGA和ASIC这些芯片有哪些区别呢?

CPU

CPU芯片大家都比较熟悉,其英文全称为Central Processing Unit,是计算机的中央处理器。CPU名字中的“中央”二字也确实名副其实,计算机中很多芯片,包括GPU、FPGA等等,只有CPU是这些芯片的统一管理者。我之前的文章中介绍了现代CPU的工作原理。

如果把计算机比作一个大工厂,CPU就像经理一样将管理工厂中的方方面面。

GPU

GPU全名为Graphics Processing Unit,又称视觉处理器、图形显示卡。GPU负责渲染出2D、3D、VR效果,主要专注于计算机图形图像领域。后来人们发现,GPU非常适合并行计算,可以加速现代科学计算,GPU也因此不再局限于游戏和视频领域。因为深度学习和人工智能的兴起,GPU声名鹊起,大红大紫。我之前的系列文章详细介绍了GPU运行原理和编程入门教程。

比起CPU经理的身份,GPU就像是工厂中的一个班组的基层工人,每人只专注做一件事,整个小组一起可以做非常多的工作任务。我之前的文章中专门写过GPU的一些基础知识。

ASIC 与 FPGA

ASIC:专用集成电路(Application Specific Integrated Circuit,ASIC),针对单一用途而设计的集成电路产品。ASIC名字中的“Application Specific”表示这种芯片是为某个应用专门设计的。

FPGA,现场可编程门阵列(Field Programmable Gate Array),它是ASIC领域中的一种半定制化的芯片。

ASIC和FPGA都是针对特定任务的芯片,这些芯片解决特定任务的速度非常快。上面这张GIF图很形象地演示了“特定任务”。专用芯片抛弃了CPU通用计算中大部分对其特定任务无用的部分,只专注一件事情,而且通过“芯海战术”,在特定任务上的他们表现被发挥到极致。

FPGA名字中“可编程”意味着可以把FPGA当成一个程序。原来设计芯片的传统做法要设计完电路,再把电路转换成版图,版图做成掩膜版,再去生产封装测试,这样才可以用。一般周期没有三到六个月是不可能的。有了FPGA,电路设计完以后不需要做版图了,把这个电路图直接灌到FPGA里面去了。FPGA可定制化,且生产交付速度快,因此可为某种特殊的计算任务单独定制。

与FPGA的区别在于,ASIC已经固定了,无法快速定制化,需要花很长时间完成从设计电路到生产交付的过程。ASIC的缺点是扩展性差,优点是计算速度更快。芯片领域,一般都会用FPGA先做验证,证明这个芯片的所有的功能都是对的。进入量产阶段时,再将电路做成ASIC,因为ASIC各方面的成本更低。

前文提到,挖矿就是在计算随机数,这个计算过程高度固定化,所以为了完成这个特定的计算任务,使用ASIC的计算速度更快,电能消耗都很低,反而是使用CPU这样的通用处理器有些大材小用。著名区块链创业公司比特大陆就是在大规模生产销售这种矿机ASIC。除了用于挖矿,还有很多芯片公司针对人工智能这个市场,设计生产专用芯片,解决某个领域的特定问题,比如Google的TPU、寒武纪、地平线等。

可以说,区块链矿机发展史也是计算机芯片技术的进化史,矿机是当前最先进算力的忠实代言人。

资源浪费与ASIC免疫

需要注意的是,矿机ASIC芯片只能进行挖矿,无法做其他任何事情。挖矿中涉及到的随机数生成其实是一种无任何社会和经济意义的活动,它除了能挖出数字货币外,没有其他任何功效。

可怕的是,大量人力、芯片和电能资源都投入到了挖矿之中,2018年比特币挖矿的电能消耗和整个匈牙利的电能消耗相当。而且矿机ASIC只能处理某个特定的任务,比如解SHA-256哈希算法,换做另外任何一个算法,这款ASIC将没有任何价值。CPU和GPU这种通用性更强的芯片还可以用来解决很多其他更有意义的计算任务。还记得共享单车潮水退去,那些堆积如山的废旧单车吗?区块链社区上流传着一个小视频,某个矿场堆满大量废弃的矿机,工人们用手推车将矿机扔到这堆垃圾之上。因为不能做别的任何计算,这些矿机已经成为了电子垃圾。

面对这种资源浪费行为,一些人提出了ASIC免疫(ASIC Resistance)的思想,旨在抵抗之前那种消耗大量资源来挖矿的行为。ASIC Resistance的初衷主要包括:

  1. 使用更为通用的芯片,避免专用芯片横行,造成芯片资源的浪费。
  2. 避免几家寡头控制了专用芯片技术,独享挖矿成果,与区块链去中心化思想背道而驰。

一些人提出了新的工作量证明方法,以避免比特币那种暴力赌博的行为,比如Proof of Stake(PoS)、Proof of Authority(PoA)等。道高一尺,魔高一丈。新算法提出后,投机的芯片厂商总能制作出一种ASIC硬件来求解这个算法。ASIC Resistance似乎成为一个待解的难题。

0 人点赞