工作量证明机制(POW)是什么?

时间:2024-06-26 14:08:03

工作量证明(Proof of Work,POW),简而言之就是一份证明,用来确认你做过一定量的工作。

对工作的整个过程进行检测,一般都是非常低效的。而通过对工作结果进行认证来证明完成了相应的工作量,则是一种高效的方式。比特币的工作量证明,是挖矿所做的主要工作。正如现实生活中的毕业证、驾驶证等,也是通过检验后所取得的证明。

工作量证明机制(POW)是什么?

工作量证明系统或协议、函数,由辛西亚·沃克(Cynthia Dwork)和莫尼奥尔(Moni Naor)于1993年在学术论文中首次提出,是一种应对拒绝服务攻击和其他服务滥用的经济对策。发起者要进行一定量的运算,需要消耗计算机一定的时间。之后,这个名词在1999年被正式提出。

哈希现金是一种工作量证明机制,由亚当·贝克在1997年发明,主要用于抵抗邮件的拒绝服务攻击及垃圾邮件网关滥用。在比特币之前,哈希现金主要被用于垃圾邮件的过滤,也被微软用于hotmail、exchange、outlook等产品中;还被哈尔·芬尼以可重复使用的工作量证明形式用于比特币之前的加密货币实验中。另外,戴伟的电子货币、尼克·萨博的比特金等比特币先行者,都是在哈希现金的框架下挖矿的。

工作量证明系统的主要特征是,客户端要做一定难度的工作得出一个结果,验证方很容易通过结果检查出客户端是否做了相应的工作。这种方案的一个核心特征是不对称性,即工作对于请求方是适中的,对于验证方是易于验证的。

工作量证明机制与验证码不同,验证码设计的出发点是易于被人类解决而不易被计算机解决。举个例子,给定的一个基本字符串“Hello, world!”,我们给出的工作量要求是:可以在该字符串后添加一个叫nonce的整数值,对变更后的字符串进行SHA256哈希运算,如果得到的哈希结果以“0000”开头,则验证通过。为了达到这个工作量证明目标,就要不停地递增nonce值,对得到的新字符串进行SHA256哈希运算。按照这个规则,要经过4251次计算,才能找到恰好前4位为0的哈希散列。

就工作量证明的过程来说,可以把比特币矿工解这道工作量证明谜题的步骤大致归纳如下:生成Coinbase交易,并与其他所有准备打包进区块的交易组成交易列表;通过Merkle Tree算法生成Merkle Root Hash,把Merkle Root Hash及其他字段组装成区块头,将区块头的80字节数据作为工作量证明输入;不断更改区块头中的随机数;对每次变更后的区块头做双重SHA256运算,将结果值与当前网络的目标值进行比较,如果小于目标值,则解题成功,工作量证明完成。