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

什么是POW(工作量证明)

工作量证明属于最早问世的共识算法,英文全称Proof of Work,简称“POW”。在比特币这样的工作量证明网络中,交易由矿工负责验证。他们是网络的参与者,利用大量资源来确保网络持续安全的正常运行。矿工同时还要负责创建和验证区块交易等任务。为争取到验证下一区块的权利,矿工需使用高度专业化的挖矿硬件来解决复杂的数学难题。
首位成功攻克这些数学问题的矿工即可赢取将区块加入区块链的权利,并赚取所谓的区块奖励。区块奖励由新生成的加密货币和交易手续费组成。网络情况不同,区块奖励的加密货币数量也会有所不同。例如,矿工从比特币区块链成功挖出一个区块,即可获得6.25枚比特币以及每个区块交易手续费的奖励(截至2021年12月)。然而,由于减半机制,每隔21万个区块(约四年时间),每个区块生成的新比特币将减少50%。

工作量证明(通常缩写为“PoW”)是双花问题的预防机制。

中本聪于2008年发布的比特币白皮书中引入这个概念,但其实该技术本身在更早之前就已经构想成型。工作量证明在本质上确定了比特币区块链实现分布式共识的途径。它以去信任化的方式验证点对点交易,无需第三方中间机构的介入。

在加密货币尚未问世之前,亚当·贝克(Adam Back)的HashCash就是工作量证明算法的早期示例。HashCash要求发件方在电子邮件发送前执行少量计算,以此缓解困扰收件方的垃圾邮件问题。这样的计算对正规发件方而言,几乎不费吹灰之力,但如果是发送大量电子邮件的人,负担会迅速加大。

什么是双花问题?

同一笔资金多次使用就会发生双花问题。该术语基本上专属于数字货币领域,毕竟同一笔现金在现实生活中无法支付两次。例如,咖啡钱支付给收银员后,就锁进了收银机。客户不可能再用同一笔钱到街对面的咖啡厅再买一杯咖啡。

如果执行数字现金方案,就有可能会出现这种情况。我们此前都复制过计算机文件,只需要复制并粘贴,就可以将相同的文件通过电子邮件发送给十人、二十人、甚至五十人。

由于数字货币只是数据形式,我们需要提防他人进行复制并在其他地方支付同一笔货币。否则,我们的货币体系将很快崩溃。

工作量证明具有必要性

用户把交易发布到网络当中。但这些交易不会立即生效,而只有在添加到区块链后才会有效。
区块链是所有用户可见的庞大数据库,因此人人都能查看资金之前的使用情况。试想一下:您和其他三位朋友共享一本记事本。无论是谁想要用何种货币进行转账,都会被记录下来。例如,Alice支付给Bob 5个单位货币,Bob向Carol支付2个单位货币。
这个过程的复杂之处在于,每次交易都要提及资金来源。因此,如果Bob正在向Carol支付两个单位的货币,其资金来源其实是:Bob从此前与Alice的交易中拿出两个单元货币来支付给Carol。
这样我们就有办法去追踪这些货币。假如Bob试图使用之前支付给Carol的同笔单位货币进行另一笔交易,很快大家就都知道了。共享组员不会允许该交易计入记事本。

对于小团体而言,上述方式可能非常奏效。大家彼此认识,能达成一致,决定由哪位好友往记事本里记录交易。如果是个1万名参与者的团体,情况会是怎样呢?此时,记事本无法有效扩展,毕竟没人会信任陌生人掌管账本。

这正是工作量证明的用武之地。工作量证明确保用户不得支付其无权动用的资金。工作量证明算法结合博弈论和密码学,根据系统规则,让所有人都能更新区块链。

工作量证明如何运作?

区块链就是我们上面提到的记事本。但是我们现在不一一添加交易,而是打包计入区块。我们在网络中发布交易,创建区块的用户随后会把交易计入候选区块。只有候选区块成为确认区块,交易才生效。也就是说,交易已添加至区块链。

但是,添加区块的费用并不便宜。工作量证明需要矿工(创建区块的用户)使用各自的资源来获取特权。资源即算力,可用于哈希运算区块数据,直至找到破解难题的方案。
哈希运算区块数据是指将数据带入哈希函数,从而生成区块哈希值。区块哈希值的作用就像“指纹”,是输入数据的标识且对于每个区块来说都独一无二。
要想通过逆转区块哈希值来获取输入数据,几乎是不可能的。然而掌握输入数据,就可以轻松确认哈希值是否正确。只要把输入提交到函数中,就能查看输出是否相同。

提供到工作量证明中的数据,哈希值须符合特定条件。但是用户不知道如何做到。他们唯一能做的就是把数据带入哈希函数,以此验证是否符合条件。如果不符合,就对数据稍作修改,再得到不同的哈希值。即使只更改数据中一个字符都会产生截然不同的结果,因此根本无法预测输出结果。

所以,创建区块就是猜谜游戏。一般来说,用户需要汇总所有要添加的交易信息和其他一些重要数据,然后同时进行哈希运算。由于数据集不变,需添加一个变量信息。否则,输出的哈希值会始终保持一致。这个变量数据称为“随机数”。只要每次试着改变随机数,就会得出不同的哈希值。这一过程就是所谓的“挖矿”。
总而言之,挖矿就是收集区块链数据并借助随机数进行哈希运算,直至找到特定哈希值的过程。如果得出的哈希值符合协议设定条件,即可在网络中发布新区块。与此同时,其他网络参与者可更新自己的区块链,纳入新区块。

对于当今的主流加密货币,要满足条件颇具挑战。网络的哈希率越高,就越难找到有效的哈希值。这样是为了减缓出块速度。

通过个人计算机猜算海量哈希值的高昂成本可想而知。这会耗费大量计算时间和电量。但只要找到有效哈希值,即可获得协议奖励的加密货币。

版权声明:dongbi 发表于 2022-04-13 1:02:29。
转载请注明:什么是POW(工作量证明)? | 区块链导航

暂无评论

暂无评论...