工作量证明(PoW)是一种旨在防止数字支付系统中双重支付的共识机制。比特币及许多其他加密货币都采用PoW来确保其区块链网络和数据的安全性。这类机制常被称为共识算法或共识机制,因为它们涉及多个参与方在不相互信任的情况下达成共识。
PoW是最早出现的共识算法之一,至今仍与权益证明(PoS)一道被视为最重要的共识机制之一。PoW由中本聪在2008年的比特币白皮书中引入,但其技术构想早在比特币之前就已存在。
亚当·巴克的HashCash是加密货币时代之前的PoW算法的一个早期例子。通过要求发送者在发送电子邮件前进行少量计算,接收者可以缓解垃圾邮件的困扰。这种计算对合法发送者来说几乎无成本,但对于大量发送邮件的人来说成本会迅速增加。
双重支付是指同一笔资金被多次使用的行为。这个术语几乎专用于数字货币领域——毕竟,你很难用同一张纸币支付两次咖啡钱。
当你今天为咖啡付款时,你会把现金交给收银员,他们可能将其锁在收银机里。你不能拿着同一张钞票去对面的咖啡店再买一杯咖啡。然而,在数字现金系统中,你有可能会这么做。
你肯定用过复制和粘贴命令来复制电脑文件。你也可以轻易地将同一个文件通过电子邮件发送给数十个人。既然数字货币只是数据,你需要防止人们进行双重支付,即在不同的地方复制和使用同一单位的货币。一个无法防止双重支付的数字支付系统很快就会崩溃。
如果您读过关于区块链技术的文章,您会知道加密货币用户一直在向网络广播交易。但这些交易不会立即被视为有效。只有当它们被确认并添加到区块链中时才算有效。
比如,比特币区块链就像一个所有用户都能看到的公共交易数据库(账本)。你可以把它想象成这样:你和三个朋友有一本笔记用来记录你们的比特币交易。每当你们中的一人想要进行价值转移时,你就会记录下来:
“Alice支付给Bob 5 BTC;Bob支付给Carol 2 BTC”,等等。
但每次你进行交易时,你都会提到资金来源的交易。因此,如果Bob用2 BTC支付给Carol,记录实际上会是这样的:
“Bob支付给Carol来自之前与Alice交易的2 BTC”。
现在,我们有办法追踪BTC单位。如果Bob试图用刚刚发送给Carol的2 BTC进行另一笔交易,大家会立刻知道。团体不会允许这笔交易被添加到笔记中,因为那2 BTC已经被花掉了。
这种方法在小团体中可能运作良好。每个人都互相认识,所以他们可能会同意由谁来添加交易到笔记中。但如果我们想要一个有10,000名参与者的团体呢?笔记的想法并不能很好地扩展,因为没人愿意信任一个陌生人来管理它。
这就是工作量证明的用武之地。它确保用户不会花费他们无权使用的资金。通过结合博弈论和密码学,PoW算法使任何人都能根据系统规则更新区块链。
想象一下,我们上面的笔记就是区块链。但我们不是逐一添加交易——而是将它们分批打包成“块”。我们向网络宣布这些交易,然后创建块的用户会将它们包含在一个候选块中。只有当他们的候选块成为确认块,即被添加到区块链数据库中时,这些交易才被视为有效。
验证交易并追加新块的过程称为“挖矿”。这既昂贵又困难,但也可能有回报。块奖励由用户的交易费用和协议新创建的比特币组成。
工作量证明机制要求矿工(创建块的用户)投入资源,如电力和计算能力,以便对候选块的数据进行哈希处理,直到找到一个谜题的解答。
对块数据进行哈希处理意味着将其通过哈希函数生成一个块哈希。块哈希就像一个“指纹”——它是输入数据的身份标识,每个块都是独一无二的。
换句话说,矿工必须验证和收集待处理的交易,将它们组织成一个候选块,并通过哈希函数处理块的数据以创建一个有效的哈希。如果他们成功找到候选块的有效哈希,他们会将其广播到网络中,添加块到区块链,并收取挖矿奖励。
当一个矿工广播他们的候选块和哈希到网络时,其他网络参与者会重复哈希过程以验证输出的确有效。
尽管找到有效哈希需要无数次的哈希尝试,但对任何人来说确认生成的哈希是否正确都是一件简单的事。他们只需将相同的输入(块数据)通过哈希函数并检查输出是否相同即可。
在工作量证明中,你必须提供其哈希满足特定条件的数据。但你不知道如何达到这个目标。你唯一的选择是将你的数据通过哈希函数并检查是否满足条件。如果不满足,你必须稍微改变你的数据以获得不同的哈希。即使改变一个字符,你的数据也会产生完全不同的结果,所以你无法预测输出会是什么。
结果是,如果你想创建一个块,你在玩一个猜谜游戏。你通常会拿你想要添加的所有交易信息和其他重要数据,然后将它们全部哈希在一起。但由于你的数据集不会改变,你需要添加一个可变的信息。否则,你总是会得到相同的哈希输出。这个可变数据就是我们所说的“nonce”。它是一个你在每次尝试时都会改变的数字,所以每次你都能得到不同的哈希。
总结一下,挖矿是收集区块链数据并与nonce一起进行哈希处理,直到找到特定哈希的过程。如果你找到满足协议设定条件的哈希,你就有权向网络广播新块。此时,网络的其他参与者会更新他们的区块链以包括新块。
对于今天的主要加密货币来说,这些条件非常难以满足。网络上的哈希率越高,找到有效哈希就越困难。这是为了确保块不会被太快找到。
正如你所想象的,尝试猜测大量的哈希对你的计算机来说可能是昂贵的。你在浪费计算周期和电力。但如果找到有效哈希,协议会奖励你加密货币。
让我们回顾一下我们到目前为止所知道的:
到目前为止,一切顺利。但如果你试图作弊呢?有什么能阻止你将一堆欺诈交易放入块中并生成有效哈希呢?
这就是公钥密码学的用武之地。我们不会在本文中深入探讨,但请查看“什么是公钥密码学?”以获得全面了解。简而言之,有一些巧妙的密码学技巧,允许任何用户验证某人是否有权移动他们试图花费的资金。
当你创建一笔交易时,你会对其进行签名。网络上的任何人都可以将你的签名与你的“公钥”进行比较,检查它们是否匹配。他们还会检查你是否真的可以花费你的资金,以及你的输入总和是否高于你的输出总和(即你没有花费超过你拥有的金额)。
任何包含无效交易的块都会被网络自动拒绝。即使尝试作弊对你来说也是昂贵的。你会在没有奖励的情况下浪费自己的资源。
这就是工作量证明的美丽之处:它使作弊变得昂贵,但诚实行为有利可图。任何理性的矿工都会寻求他们投资的回报,因此他们可以预期会以更可能带来收入的方式行事。
除了PoW,还有许多其他共识算法,但其中最受欢迎的之一是权益证明(PoS)。这一概念可以追溯到2011年,并已在以太坊和其他几个协议中实施。
在权益证明系统中,矿工被验证者所取代。没有挖矿过程,也没有猜哈希的竞争。相反,用户被随机选中——如果他们被选中,他们必须提出(或“锻造”)一个块。如果块有效,他们将获得由块中交易费用组成的奖励。
不过,并不是任何用户都能被选中——协议会根据一系列因素来选择他们。要符合条件,参与者必须锁定一个“权益”,这是一个预定的区块链原生货币金额。权益就像保释金:就像被告人支付一大笔钱以防止他们逃避审判一样,验证者锁定权益以防止作弊。如果他们行为不诚实,他们的权益(或其一部分)将被没收。
权益证明确实比工作量证明有一些优势。最值得注意的是其较小的碳足迹——由于PoS不需要高功率的挖矿农场,其消耗的电力只是PoW的一小部分。
不过,PoS没有PoW那样的历史记录。尽管它可能被视为浪费,但挖矿是唯一经过十多年实战检验的共识算法。自推出以来,比特币的PoW已保护了价值数万亿美元的交易。要确定PoS是否能与其安全性匹敌,权益需要在长期内得到适当的测试。
工作量证明是解决双重支付问题的原始解决方案,已证明是可靠且安全的。比特币证明了我们不需要中心化实体来防止同一资金被多次使用。通过巧妙地使用密码学、哈希函数和博弈论,参与者在一个去中心化的环境中可以就一个金融数据库的状态达成一致。
丁丁打折网©版权所有,未经许可严禁复制或镜像 ICP证: 湘ICP备20009233号-2
Powered by 丁丁打折网本站为非营利性网站,本站内容均来自网络转载或网友提供,如有侵权或夸大不实请及时联系我们删除!本站不承担任何争议和法律责任!
技术支持:丁丁网 dddazhe@hotmail.com & 2010-2020 All
rights reserved