深入区块链技术(四)|PoW共识机制
上一篇文章中,我们简单介绍了分布式一致性的相关概念,以及由此发展出来的区块链常用的共识算法。今天我们就对其中的PoW算法进行深入介绍。
工作量证明的概念区块链这个概念是随着比特币的诞生而兴起的,而比特币采用的就是PoW算法,因此工作量证明的概念被得以广泛传播。
实际上,工作量证明并不是一个新概念,早在1993年就有学者以学术论文的形式提出了这一概念。
工作量证明,就是指用一个结果,来证明你做了这份工作。比方说你住酒店,早上出门时房间里很乱,晚上回来发现房间收拾得干净整齐,这就证明保洁阿姨完成了打扫工作。
为什么需要工作量证明呢,因为监测工作的整个过程是非常低效的。我不需要时刻盯着你是不是在干活,你只需要拿出你干完活之后的结果给我看,我就能证明你确实干了活。
当然,这个结果得是不能轻易通过其他渠道获得的。如果能轻易拿钱买到一个大学毕业证,就不能说这个毕业证证明了我确实读过大学。
最初,这种方式是用来应对服务资源滥用,或用来阻断拒绝服务攻击的经济对策。它要求用户进行一些耗时适当的复杂运算,并且答案能够很快被服务方验证,以此来保证服务是被真正有需要的人所使用。这种策略实际上就是提高了攻击者的成本,从而降低攻击可能性。
由此可以看出工作量证明的核心设计思路:提出一个难题,需要回答者耗费一定时间和资源才能解答。但对于验证者而言,验证起来需要十分容易。这个特性,我们称之为计算不对称特性。
比特币中的工作量证明上面介绍了工作量证明的基本概念,下面我们看一下比特币中的工作量证明是如何设计的。
比特币的原理涉及到了密码学知识。在密码学中,有一种东西天然符合我们刚刚所说的计算不对称特性,它就是哈希函数。
哈希函数的特性是:已知A,能很容易算出结果B;但是知道结果B,不能反推出A。而且,几乎不可能找到一个C,使得C经过计算后也能得到B。
有了这样的神器,工作量证明就好设计了,具体是这样的:
因为参与记账的节点非常多,而每个区块只能有一个节点来负责记账并获得奖励,因此每个区块的记账权需要进行争夺。
争夺的方式,就是通过SHA256运算(哈希函数的一种),不断地尝试不同的A,来计算得到一个满足条件的结果B(B的前N位必须全是0,N可以调整)。
最先得到的那个节点,拥有记账权。因为结果是容易验证的,所以大家都能信服这个结果,最终达成一致,随即所有的矿工参与到下一个区块记账权的争夺中。
如果N的值越大,那么得到符合结果的B难度就越大,计算量可能是成指数级的增长。为了争夺更多的记账权,每个节点都会采用算力更强的设备,使每秒所能进行的计算次数更多,从而争取比别人更快得出结果。这也就引发了算力竞赛。
因为每个人都只能不停地试,没有别的办法得到结果,所以这种方式相对来说是公平的。但同时,由于算力竞赛,也导致了挖矿设备数量的不断增加,消耗的能源成本也不断提升。因此,我们也说,工作量证明是一种不环保的共识算法。
但是,由于这种公平性和为了取得算力而付出的成本,挖矿其实同时也是在创造信任,毕竟大家都是靠“老实干活”换来的记账权,如果拿来作恶就非常不划算。工作量证明机制,实际上是将现实世界的物理资源转化为了区块链世界的虚拟资源,这种转化为区块链提供了可信的基础。
PoW挖矿发展历程现在我们知道,比特币挖矿就是在解算力难题。随着比特币越来越被人们所熟知,PoW的发展也大致经历了两个阶段。
第一个阶段是分散挖矿阶段。那个时候用个人电脑CPU就可以轻松挖出很多比特币,这也符合中本聪1CPU=1票的愿景。但是随着比特币的经济效益越来越凸显,人们开始寻求更加高效的挖矿方式,也使得PoW进入了第二阶段。
第二个阶段就是中心化矿池挖矿阶段。因为挖矿采用的SHA256算法不需要CPU来处理复杂的逻辑控制,只需要重复简单的数字运算,所以用GPU挖矿效率更高。再后来,发展出了ASIC芯片挖矿,催生了像比特大陆这样生产专业矿机的公司。由于算力竞争越来越激烈,人们开始逐渐将分散算力进行集中,然后通过投入算力所占的比例进行分红的方式享受挖矿收益。
说到这里其实不得不提一点,那就是真正理想的去中心化是不是能够实现?我个人的看法是不太可能。尽管中本聪的愿景是1CPU=1票,但随着经济效益的增加和人们逐利的天性,分散的算力一定会逐渐集中,最终形成几家大巨头分庭抗礼的局面。
所以,有人质疑EOS的21个记账节点是不是太少了,太中心化了?其实如果参考比特币和以太坊的实际算力控制分布情况,我们就知道其实并没有完美的去中心化方案。EOS在突出解决性能问题的基础上,已经做到了很好的兼顾。就算EOS的方案将记账节点设置为1万个,我相信最终这些节点的实际控制权也会逐步融合集中,达到一种无形的平衡。
PoW挖矿算法简介PoW挖矿算法大致分为两个大类:计算困难、内存困难。这两类的区别在于对提供工作量证明的组件要求不同。
计算机的组成部分大致可分为计算单元(CPU、GPU)和存储单元(内存、硬盘)。熟悉操作系统的人都知道,一个计算机的瓶颈往往不在于计算能力,而是IO(输入输出)能力。如果IO能力不强,那么计算单元其实大部分时间都处于等待的空闲状态。
由于比特币的挖矿方式是计算困难类的,因此在PoW挖矿从CPU转向GPU后,人们对挖矿工具又进行了进一步的优化探索,开发出了ASIC芯片矿机。
ASIC是什么?ASIC(Application Specific Integrated Circuits)即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
这种神器的出现,加速了PoW挖矿的中心化过程。因为这种矿机是由专门厂商生产的,产量有限,购买渠道更加狭窄,其价格也更高,提高了购买者的门槛。此外,矿机的配置、运行和维护也需要专人进行。这种印钞机级别的设备,当然会越来越集中到少数人手中,造成了算力的中心化。
为了防止这种情况再次发生,很多数字货币开发者们发明了新的挖矿算法。但只要算法是依赖于计算困难的,厂商就能设计出专门的挖矿设备来应对。有点道高一尺,魔高一丈的感觉。
以太坊和比特币不同,它采用的挖矿算法是内存困难型的。直到现在,也没有芯片厂商设计出挖矿芯片。因为算法对内存资源的需求增加,所以除了增加内存容量,没有别的好办法。所以这种没有技术壁垒的事情,厂商没有逐利的动力,也就不会花力气去研发对应的专业矿机。
PoW的优势与劣势PoW的优势有以下几个方面:
达成一致的原理简单,容易实现;
工业成熟度高,受众广泛;
成本会驱使矿工将币价维持在一个相对合理的水平,而不会使币价远低于成本;
增加了攻击者成本,安全性很强。
PoW的劣势有以下几个方面:
大量消耗计算资源和能源;
51%攻击问题;
自私挖矿问题;
达成共识的时间长,性能低下。
总结今天我们简单介绍了PoW的概念以及在比特币中的具体实现和应用,还介绍了挖矿算法的发展过程和类型,最后分析了PoW的优缺点。可以看出,PoW共识机制是一种简单粗暴的共识算法,虽然可以为公链提供稳定有效的记账功能,但是也面临严重的中心化问题和能耗问题。这也促使人们研究新的共识机制,我们后面继续介绍,欢迎
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。