什么是工作量证明(PoW)?和权益证明(PoS)有什么不同?

 2023-08-31 20:56:59发布 2023-09-03 12:40:08更新

工作量证明(Proof of Work,简称PoW)是一种用于加密货币和区块链网络中的共识算法。它的目的是通过解决一道数学难题来证明矿工在生成新区块时所进行的计算工作量,并确保网络的安全性和可信度。

中本聪在2008年的比特币白皮书中引入了这个概念,而实际上该技术在此之前就已经有了初步构想。

站在比特币硬币上的矿工

站在比特币硬币上的矿工

在加密货币问世之前,Adam Back(亚当·贝克)的HashCash是工作量证明算法的早期示例。

HashCash要求发件人在发送电子邮件之前执行一些计算,以减轻收件人受到垃圾邮件困扰的问题。这种计算对于合法发件人来说几乎是轻而易举的,但对于大量发送电子邮件的人来说,会增加额外负担。

什么是双花问题?

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

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

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

工作量证明为何具有必要性?

区块链是所有用户可见的庞大数据库,因此人人都能查看资金之前的使用情况。

试想一下:您和其他三位朋友共享一本记事本。无论是谁想要用何种货币进行转账,都会被记录下来。例如,Alice支付给Bob 5个单位货币,Bob向Carol支付2个单位货币。

这个过程的复杂之处在于,每次交易都要提及资金来源。因此,如果Bob正在向Carol支付两个单位的货币,其资金来源其实是:Bob从此前与Alice的交易中拿出两个单元货币来支付给Carol。

这样我们就有办法去追踪这些货币。假如Bob试图使用之前支付给Carol的同笔单位货币进行另一笔交易,很快大家就都知道了。共享组员不会允许该交易计入记事本。

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

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

工作量证明如何运作?

区块链就是我们上面提到的“记事本”,但是我们现在不一一添加交易,而是打包计入区块。

我们在网络中发布交易,创建区块的用户随后会把交易计入候选区块。只有候选区块成为确认区块,交易才生效。也就是说,交易已添加至区块链。

但是,添加区块的费用并不便宜。工作量证明需要矿工(创建区块的用户)使用各自的资源来获取特权。资源即算力,可用于哈希运算区块数据,直至找到破解难题的方案。

哈希运算区块数据是指将数据带入哈希函数,从而生成区块哈希值。区块哈希值的作用就像“指纹”,是输入数据的标识且对于每个区块来说都独一无二。

要想通过逆转区块哈希值来获取输入数据,几乎是不可能的。然而掌握输入数据,就可以轻松确认哈希值是否正确。只要把输入提交到函数中,就能查看输出是否相同。

提供到工作量证明中的数据,哈希值须符合特定条件。

但是用户不知道如何做到,他们唯一能做的就是把数据带入哈希函数,以此验证是否符合条件。如果不符合,就对数据稍作修改,再得到不同的哈希值。

即使只更改数据中一个字符都会产生截然不同的结果,因此根本无法预测输出结果。

所以,创建区块就是猜谜游戏。一般来说,用户需要汇总所有要添加的交易信息和其他一些重要数据,然后同时进行哈希运算。

由于数据集不变,需添加一个变量信息。否则,输出的哈希值会始终保持一致。这个变量数据称为“随机数”。只要每次试着改变随机数,就会得出不同的哈希值。这一过程就是所谓的“挖矿”。

换言之,挖矿就是收集区块链数据并借助随机数进行哈希运算,直至找到特定哈希值的过程。

如果得出的哈希值符合协议设定条件,即可在网络中发布新区块。与此同时,其他网络参与者可更新自己的区块链,纳入新区块。

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

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

权益证明(PoS)

权益证明 (Proof of Stake) 是一种基于赌注的系统,要求网络参与者购买并锁定智能合约中的一种协议原生代币。持有质押代币的参与者有机会被随机选中,提议新的区块。

继比特币推出三年后,名为Scott Nadal和Sunny King的两位开发人员开发出了PoS共识机制,以解决工作量证明系统带来的能效低下问题。

参与者质押的代币越多,被选中的几率就越大。这就类似于购买多种彩票。持有的彩票数越多,中奖的几率就越大,但是这并不能保证一定会中奖。只持有一张彩票的人,或者在这种情况下,按最低额度要求质押代币的人仍有可能被选中。

这一想法采用了与PoW相同的原则,要求验证者投入自己的资金,但无需运行专门的能耗密集型设备。

工作量证明与权益证明对比

工作量证明(PoW)和权益证明(PoS)是公共区块链支付系统中最常使用的两种共识机制。PoW和PoS都解决了过滤恶意网络参与者和促进协议的问题,但实现方式各有不同。

相较于工作量证明,权益证明确实存在一定优势,最明显的是碳足迹的减少,这是因为权益证明不需要像工作量证明一样大量消耗电力来支持矿场运转,所需的电力消耗只是工作量证明的一小部分。

然而,尽管权益证明有这些优势,但是它的普及程度与工作量证明相比仍然存在较大差距。

虽然有人认为工作量证明是一种浪费,但是挖矿实践已经证明,它是目前唯一一个可以获得大规模应用的共识算法。

推荐阅读