前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >比特币工作量证明,“法外之地”的法

比特币工作量证明,“法外之地”的法

作者头像
南坡海瑞
修改2018-10-08 10:49:09
6100
修改2018-10-08 10:49:09
举报
文章被收录于专栏:区块链百科,区块链行业报告

PoW(Proof of Work,工作量证明)是区块链技术中基本的、常见的一种共识机制。加密币中的挖矿,其实就是运用工作量证明来进行的。

一、PoW的起源

工作量证明最早是一个经济学名词,指系统为达到某一目标而设置的衡量机制。通俗来说,就是当你完成一定量的工作后,确认这一工作量的证明。因为监测整个工作的过程是非常的耗时的,而只通过检验工作结果来确认工作量,显然效率要更高。

工作量证明系统(或者说协议、函数),是一种应对拒绝服务攻击和其他服务滥用的经济对策。它要求发起者进行一定量的运算,也就意味着需要消耗计算机一定的时间。这个概念由Cynthia Dwork 和Moni Naor 1993年在学术论文中首次提出。

在1999年,Markus Jakobsson and Ari Juels两人将pow概念引入计算机体系,工作量证明(PoW)这个名词,在两人的文章中被真正提出。起初,PoW被用于抵挡拒绝服务攻击和网络爬虫,后来在反垃圾邮件中被广泛使用。

反垃圾邮件系统哈希现金(Hash Cash),其设计理念是一个正常用户写一封邮件是需要一定的时间,而发送垃圾邮件者是无法接受这个等待的时间,PoW系统使垃圾邮件发送者需要更多的时间来发送邮件,增大他们的成本,起到抵挡攻击的作用。

PoW共识机制是基于哈希函数本身复杂的运算,通过给定的初始值和简单的值递增规律,利用其碰撞原理,找到特定的碰值,可以通过对碰值的调节,实现对于工作量的调节。

工作量证明
工作量证明

二、哈希函数

哈希函数(Hash Function)即散列函数,输入一个x,会得出相应的输出H(x)。其中,这里的x可以是任意长度的字符串,而输出的H(x)却具有固定长度,哈希函数正是将任意长度的数据映射到有限长度的域上。在计算过程上,虽然复杂,但非常高效。

比特币这种加密系统使用的哈希函数,还需要同时具备免碰撞、匿名性、防篡改等特点。

免碰撞指的是:如果输入的x≠y,绝不会出现H(x)=H(y)的情况,即输入两个不同的数据块,其哈希值一般来说也不会相同。理论上相同的可能性并非绝对没有,但概率极小。所以,对于一个给定的数据块,要找到与它哈希值相同的数据块极难。

哈希函数的隐匿性是指,对于一个给定的输出结果H(x),想要逆推出输入的x,在计算上是不可能的。

而对于数据块的任何一处小小的改动,哈希值随之产生的变动都会非常明显,这一点构成了哈希函数的防篡改特点。

同时,在这一函数中,穷举法是能够使得哈希值H(x)落在特定范围的最好方法。在比特币的区块链上,使用哈希穷举实现工作量证明能够拥有随机和易验证两种特性,这两种特性将于后文中提到。

三、工作量证明的原理

在工作量证明系统中,客户端完成一定难度的工作,得出一个结果,验证者只需通过验证这个结果就能检验客户端是否做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中的,对于验证方则是易于验证的。其工作流程如下:

工作量证明的原理
工作量证明的原理

对于任意一串字符,给出了一定的工作量要求,对这串字符进行变更,使其得到具有特定规律的一个结果,若得到这个结果,则验证通过。为了达到这个目标,需要不断地对这串字符进行哈希计算,直到计算量达到一定次数时,才能得到要求的变更后的数列。

在计算之前,根据工作量要求可以得出预期的计算次数,这个预期的次数和实际不一定完全吻合,但会大体接近,如果重复多次,会发现这确实是一个符合统计学规律的概率事件。而

这里提到的预期计算次数,其实就是要求的工作量。

以上是工作量证明的基本原理,比特币系统中的工作量证明机制与其类似,但更为复杂。

四、比特币的工作量证明

在工作量证明的区块链中,系统会根据算力大小来选取打包的节点,对于节点来说,单纯的打包和数据上传非常简单,不过,系统需要选取一个特定的节点来处理某件事,为了避免众多节点对同一件事打包而引起不必要的分叉,比特币通过前文中提到的哈希穷举,增加打包难度,以延长打包时间。

简言之,就是每个节点都需要在10分钟内找到一个随机数,并保证这个随机数加上上文所说的哈希运算,能够满足一定的规律。为了找到这个随机数,只能通过不断尝试新的随机数,不断的运算。而随着运算量的增大,目标范围也会不断缩小。

比特币的工作量证明
比特币的工作量证明

哈希穷举的随机性和易验证性在这里体现了出来。首先,即使知道了这个随机数的范围,也只能通过大量计算去得到;然后,如果有人找到了随机数,那么其他节点能够很容易地检验这个结果的正确性。

如果算力增强,就需要修改难度以增加计算次数,比特币中就有修改难度的规则。所以,想要找到这样一个随机数,计算量要远远大于预期的工作量。

为了鼓励节点不断地对数据和信息进行打包,比特币的区块链网络设置了奖励,即支付给打包(记账)节点的奖励和交易费。

打包奖励是指创建区块的节点会获得一定数量的比特币作为奖励,奖励的数量随着比特币区块的生成而减少。

交易费即使用比特币转账时支付给记账节点的费用,这是支持节点工作、维护区块链自动运转的重要因素。

这两种打包奖励都是通过工作量证明来进行,在比特币中也就是为人所熟知的挖矿行为。而衍生而来的矿机,在一开始其实是个人计算机这样的运算设备,随着算力的提高,难度的增大,专业矿机诞生。自始至终,算力的竞争从未结束,而难度和算力也在不断进行博弈。

工作量证明的优点是足够安全、公平和去中心化,其免碰撞、匿名性与不可篡改的特点奠定了比特币区块链技术的核心;但它的缺点也很明显,耗时长效率低,算力提高的同时耗费了电力,除了挖矿,这些强大的算力难以转化成其他资源。

文章来源:BB财经(www.bbcaijing.cn),如有侵权请联系删除!

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云区块链服务平台 TBaaS
腾讯云区块链服务平台(Tencent Blockchain as a Service,简称TBaaS)致力于打造全球领先的企业级区块链技术平台,帮助客户、开发者及合作伙伴轻松创建和管理可托管、可扩展的区块链网络,助力产业协同发展。TBaaS 支持长安链·ChainMaker、Hyperledger Fabric等区块链底层平台,简化部署、运维及开发流程,实现业务快速上链,提升链上治理效率。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档