PoW是区块链技术中基本的、常见的一种共识机制。加密币中的挖矿,其实就是运用工作量证明来进行的。
一、PoW的起源
工作量证明最早是一个经济学名词,指系统为达到某一目标而设置的衡量机制。通俗来说,就是当你完成一定量的工作后,确认这一工作量的证明。因为监测整个工作的过程是非常的耗时的,而只通过检验工作结果来确认工作量,显然效率要更高。
工作量证明系统,是一种应对拒绝服务攻击和其他服务滥用的经济对策。它要求发起者进行一定量的运算,也就意味着需要消耗计算机一定的时间。这个概念由CynthiaDwork和MoniNaor1993年在学术论文中首次提出。
在1999年,MarkusJakobssonandAriJuels两人将pow概念引入计算机体系,工作量证明这个名词,在两人的文章中被真正提出。起初,PoW被用于抵挡拒绝服务攻击和网络爬虫,后来在反垃圾邮件中被广泛使用。
CME比特币期货10月合约收报11595美元:金色财经报道,成交量最高的CME比特币期货2020年10月合约今日收涨185美元,收报11595美元,涨幅达1.62%。2020年11月、12月和2021年1月合约分别收报11680美元、11770美元和11835美元。[2020/10/16]
反垃圾邮件系统哈希现金,其设计理念是一个正常用户写一封邮件是需要一定的时间,而发送垃圾邮件者是无法接受这个等待的时间,PoW系统使垃圾邮件发送者需要更多的时间来发送邮件,增大他们的成本,起到抵挡攻击的作用。
PoW共识机制是基于哈希函数本身复杂的运算,通过给定的初始值和简单的值递增规律,利用其碰撞原理,找到特定的碰值,可以通过对碰值的调节,实现对于工作量的调节。
工作量证明二、哈希函数
CME比特币期货9月合约收跌2.05%:金色财经报道,成交量最高的CME比特币期货2020年9月合约今日收跌215美元,收报10280美元,跌幅达2.05%。2020年10月、11月和12月合约分别收报10345美元、10410美元和10465美元。[2020/9/24]
哈希函数即散列函数,输入一个x,会得出相应的输出H。其中,这里的x可以是任意长度的字符串,而输出的H却具有固定长度,哈希函数正是将任意长度的数据映射到有限长度的域上。在计算过程上,虽然复杂,但非常高效。
比特币这种加密系统使用的哈希函数,还需要同时具备免碰撞、匿名性、防篡改等特点。
免碰撞指的是:如果输入的x≠y,绝不会出现H=H的情况,即输入两个不同的数据块,其哈希值一般来说也不会相同。理论上相同的可能性并非绝对没有,但概率极小。所以,对于一个给定的数据块,要找到与它哈希值相同的数据块极难。
动态 | 更多受害者对印度比特币案嫌疑人提起诉讼:据 livebitcoinnews报道,在过去几天内,另有十名受害者向法院提出对 Amit Bharadwaj及其两个兄弟的诉讼。受者指控此三人实施了比特币投资局,取了他们3千万卢比(约合40.8万美元)。据此前报道,曾指控 Amit Bhardwaj等人通过 GainBitcoin旁氏局了约8000名投资者约3000万美元。印度执法局(ED)已扣押了与这一加密货币案有关的不动产和银行存款,价值4.288亿卢比(合约594万美元)。[2018/10/23]
哈希函数的隐匿性是指,对于一个给定的输出结果H(x),想要逆推出输入的x,在计算上是不可能的。
而对于数据块的任何一处小小的改动,哈希值随之产生的变动都会非常明显,这一点构成了哈希函数的防篡改特点。
声音 | 经济学家:比特币的经济规模终将比肩美国:经济学家Tuur Demeester今日表示:“比特币是一种不受地理限制的经济体,越来越多的人正在持有、交易比特币,或在比特币之上建立事业。这是一个虚拟的大陆、基于云端的世界,我认为比特币的经济规模终将比肩美国。”[2018/7/4]
同时,在这一函数中,穷举法是能够使得哈希值H落在特定范围的最好方法。在比特币的区块链上,使用哈希穷举实现工作量证明能够拥有随机和易验证两种特性,这两种特性将于后文中提到。
工作量证明三、工作量证明的原理
在工作量证明系统中,客户端完成一定难度的工作,得出一个结果,验证者只需通过验证这个结果就能检验客户端是否做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中的,对于验证方则是易于验证的。其工作流程如下:
对于任意一串字符,给出了一定的工作量要求,对这串字符进行变更,使其得到具有特定规律的一个结果,若得到这个结果,则验证通过。为了达到这个目标,需要不断地对这串字符进行哈希计算,直到计算量达到一定次数时,才能得到要求的变更后的数列。
在计算之前,根据工作量要求可以得出预期的计算次数,这个预期的次数和实际不一定完全吻合,但会大体接近,如果重复多次,会发现这确实是一个符合统计学规律的概率事件。而
这里提到的预期计算次数,其实就是要求的工作量。
以上是工作量证明的基本原理,比特币系统中的工作量证明机制与其类似,但更为复杂。
工作量证明四、比特币的工作量证明
在工作量证明的区块链中,系统会根据算力大小来选取打包的节点,对于节点来说,单纯的打包和数据上传非常简单,不过,系统需要选取一个特定的节点来处理某件事,为了避免众多节点对同一件事打包而引起不必要的分叉,比特币通过前文中提到的哈希穷举,增加打包难度,以延长打包时间。
简言之,就是每个节点都需要在10分钟内找到一个随机数,并保证这个随机数加上上文所说的哈希运算,能够满足一定的规律。为了找到这个随机数,只能通过不断尝试新的随机数,不断的运算。而随着运算量的增大,目标范围也会不断缩小。
哈希穷举的随机性和易验证性在这里体现了出来。首先,即使知道了这个随机数的范围,也只能通过大量计算去得到;然后,如果有人找到了随机数,那么其他节点能够很容易地检验这个结果的正确性。
如果算力增强,就需要修改难度以增加计算次数,比特币中就有修改难度的规则。所以,想要找到这样一个随机数,计算量要远远大于预期的工作量。
为了鼓励节点不断地对数据和信息进行打包,比特币的区块链网络设置了奖励,即支付给打包节点的奖励和交易费。
打包奖励是指创建区块的节点会获得一定数量的比特币作为奖励,奖励的数量随着比特币区块的生成而减少。
交易费即使用比特币转账时支付给记账节点的费用,这是支持节点工作、维护区块链自动运转的重要因素。
这两种打包奖励都是通过工作量证明来进行,在比特币中也就是为人所熟知的挖矿行为。而衍生而来的矿机,在一开始其实是个人计算机这样的运算设备,随着算力的提高,难度的增大,专业矿机诞生。自始至终,算力的竞争从未结束,而难度和算力也在不断进行博弈。
工作量证明的优点是足够安全、公平和去中心化,其免碰撞、匿名性与不可篡改的特点奠定了比特币区块链技术的核心;但它的缺点也很明显,耗时长效率低,算力提高的同时耗费了电力,除了挖矿,这些强大的算力难以转化成其他资源。
文章来源
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。