区块链是什么呢共识协议又是什么我们现在就来了解共识协议中的其中一种机制-工作量证明POW( Proof-of-Work )。

你可能没听过区块链这个名词,但你一定听过比特币,比特币可是近年来各个报章杂志或网络媒体最喜爱的主题之一,不过比特币其实只是一个建立在区块链概念上的应用,区块链才是比特币的根本概念。

工作量证明是什么

工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求使用者进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、装置与能源做为担保成本,以确保服务与资源是被真正的需求所使用。

这个想法的一个应用是使用Hashcash作为防止电子邮件垃圾邮件的方法,需要在每封电子邮件上对电子邮件内容(包括收件人地址)进行工作证明。合法的电子邮件将能够轻松地生成证据(单个电子邮件不需要太多工作),但是大量垃圾邮件将很难生成所需的证据(这需要大量的计算资源)。

工作量证明(Proof-Of-Work)诞生的背景和历史

工作量证明(POW),1993 年由Cynthia Dwork 和Moni Naor 提出,POW 被用于阻止拒绝服务攻击(DDOS)、反垃圾邮件等一些服务滥用的经济对策。

第一个POW 应用是1996年Adam Back 开发的“Hashcash” 应用,它采用工作量证明共识机制来过滤垃圾邮件,微软也将其应用在Hotmail, Exchange, Outlook 等电邮服务上。具体做法是要求所有收到的邮件都使用强POW 附件。此系统使得垃圾邮件发送者在大量发送邮件时在经济成本上不可行,但却允许个人在需要的时候互相发送信息。时至今日这种算法也被赋予新的意义,即以”挖矿”形式作为比特币安全核心。

工作量证明(POW)共识机制算法采用了SHA-256 运算Hash 值,特点是难以运算,却容易验证。

我们知道改变Hash 值的原始数据中的任何一部份,所产生的Hash值也会随之变化,因此我们只需在运算Hash 值时,加入一个不断改变的随机数,亦总是可以计算出以0 开头的Hash 值。所以要找到符合要求的区块Hash 值,则需要经过进行大量运算,运算时间取决于节点的运算速度。当某个节点提供出一个符合要求的Hash值,就说明该节点确实经过了大量的尝试运算。当然,并不能代表说已进行了多少次运算的次数,因为寻找符合要求Hash值是一个概率事件。

换言之,当节点拥有占全网N%的算力时,该节点即有N/100的概率找到符合要求的Hash值。

Hashcash工作证明在比特币中用于块生成。为了使网络参与者接受块,矿工必须完成覆盖块中所有数据的工作证明。调整这项工作的难度,以便限制网络每10分钟生成一个新块的速率。由于成功生成的可能性非常低,因此无法预测网络中的哪台工作计算机将能够生成下一个块。

工作量证明(Proof-Of-Work)是如何运作的

很多时候,人们将这些数据解释为解谜的解决方案。基本上,给定社区的成员致力于解决复杂的难题。这是工作证明(PoW)中的“工作”。

为了创建数据或解决难题– 矿工必须通过非常复杂的等式进行计算。因为这个方程式的每次尝试都建立在以前的解决方案之上。

同时,解决方程式所需的工作会产生一个新的数据。然后将其添加到不断增长的数据链中。从那里开始,这个过程基本上重新开始。

使用工作证明(PoW)有哪些优劣势

POW使用优势

因为这项工作非常困难,PoW降低了51%攻击的风险。 同时,每个解决方案都可以让社区轻松验证。这使得检查所有事务的可信度变得容易。 它不依赖于单个第三方交易者。这构建了一个“无信任”且透明的网络。 PoW还限制了可以生成多少个新数据块。例如,矿工每10分钟只能创建一个比特币(BTC)块。

POW使用劣势

PoW价格昂贵,劳动强度大,耗电量大。创建一个新区块需要大量精力,最近一项将加密货币采矿与铝矿开采相比较的研究强调了这一点。例如,比特币的年度碳足迹大于瑞士的碳足迹。 此外,PoW往往是“毫无意义”的工作。也就是说,这项工作只不过是解决算法的任意谜题。许多人认为这是浪费大量的计算潜力。