本节书摘来华章计算机《Node.js区块链开发》一书中的第3章 ,第3.2节,朱志文 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.2 PoW:工作量证明机制
1.基本原理
PoW(Proof of Work)是比特币采用的共识机制,也是最早的一种机制。理解起来也很简单,就是“按劳取酬”,你付出多少劳动(工作),就会获得多少报酬(比特币等加密货币)。在网络世界里,这里的劳动就是你为网络提供的计算服务(算力×时长),提供这种服务的过程就是“挖矿”。
那么“报酬”该怎么分配呢?如果是真的矿藏,显然在均匀分布的前提下,人们“挖矿”所得的“报酬”与各自提供的算力成正比,通俗一点说就是,能力越强、付出的越多,获得的就越多。
2.优点
机制本身当然很复杂,有很多细节,比如“挖矿”难度自动调整、区块奖励逐步减半等,这些因素都是基于经济学原理设置的,以吸引和鼓励更多的人参与。
理想状态下,这种机制可以吸引很多用户参与其中,特别是越先参与的,获得的就越多,会促使区块链产品的初始阶段迅速发展,节点网络迅速扩大。在CPU挖矿的时代,比特币吸引了很多人参与“挖矿”,这点就是很好的证明。通过“挖矿”的方式发行新币,把比特币分散给个人,实现了相对意义上的公平(比起那些不用挖矿,直接IPO的币要公平得多)。
3.缺点
1)算力是计算机硬件(CPU、GPU等)提供的,需要耗费电力,是对能源的直接消耗,与人类追求节能、清洁、环保的理念相悖。不过,如果非要给区块链产品找寻“货币价值”的意义,那么这方面应该是最有力的证据。
2)这种机制发展到今天,算力的提供已经不再是单纯的CPU了,而是逐步发展到GPU、FPGA乃至ASIC矿机。用户也从个人挖矿发展到大的矿池、矿场,算力集中越来越明显。这与去中心化的方向背道而驰,渐行渐远,网络的安全也逐渐受到威胁。有证据证明,Ghash(一个矿池)就曾经对赌博网站实施了双花攻击(简单地说就是一笔钱花两次)。
3)区块链产品区块奖励按照一定的周期减半,当“挖矿”的成本高于挖矿的收益时,人们“挖矿”的积极性就会降低,会有大量算力减少,网络的安全性也将进一步降低。