区块链是什么呢?共识协议又是什么?我们现在就来了解共识协议中的其中一种机制-工作量证明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往往是“毫无意义”的工作。也就是说,这项工作只不过是解决算法的任意谜题。许多人认为这是浪费大量的计算潜力。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。