前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PoW工作量证明

PoW工作量证明

作者头像
申龙斌
发布2018-03-06 11:41:23
1K0
发布2018-03-06 11:41:23
举报

PoW是Proof of Work的缩写,即工作量证明的意思。在《拜占庭将军问题》中介绍过,比特币系统中引入了“工作量”的概念,有意降低了信息传递的效率,让矿工必须完成一定的工作量,才能够在全网广播消息。

(孩子第一次为我的文章配图,厉害吧)

以工地的搬砖任务为例,一群工人们(矿工)向火车的车皮(区块)里搬砖,每个工人身边都有一个集装箱,这个集装箱与火车车皮一样大,正好能够装满1000块砖。

工人们只能往集装箱里搬砖,谁先装满集装箱,就把这个集装箱放到车皮里,领取12.5元的工钱(实际上并不是马上拿走,100节车皮之后才能真正取走)。只有第一个搬完的工人能够获得奖励,在这个集装箱放入车皮的同时,其他工人的集装箱里也装了一些砖头了,全部作废,重新搬砖,继续投入到下一节车皮的竞争中。

比特币世界里的矿工(工人)也是这样辛苦,这里的矿工是一堆安装了专门芯片的电脑,它们的工作就是进行HASH计算(准确讲是SHA256,高级搬砖工作),谁先算完,写入一个新区块(车皮),得到奖励的12.5个BTC(发行新币),其它矿工则白忙活,继续进行下一轮的竞争。

因为电脑的计算速度太快,所以要安排上亿次的HASH计算,保证有矿工在10分钟左右能够完成任务。这种工作量,既是一种发行货币的过程,也是一种验证其他人交易的过程,从而保证了整个比特币系统的安全性。

简化的计算过程

假设我有一个区块信息是“abcde",要在其后面补一个随机数,使得HASH结果以0开头。我在“区块链生存训练”饭团里介绍过HASH的作用,HASH的加密特性使得原始数据即使发生极其微小的改变,得到的结果也有巨大不同。

所以我只能一个数一个数地尝试,一直试到随机数5的时候,此时的字符串为”abcde5",SHA256的HASH结果为051f2f...d7b9e1,以0开头,我找到了一个解,我就可以把"abcde5"加到新区块上,拿走12.5个BTC。

区块链正如其名,是一个区块与另一个区块链接起来而成的,一个区块中用于参与工作量计算的主要有三部分数据(为了说明HASH计算的工作量,我对整个计算过程进行了极大地简化,更详细的细节请自行参考《精通比特币》):

1)父区块HASH:用于指向父区块,当一个区块一个区块地链接起来后,想篡改一个区块,会影响子区块,再会影响孙区块,从而带来指数级的巨大计算量,从而使篡改几乎不可能。

2)交易信息指纹:一个区块内通常有几百笔的交易信息,也用HASH算法产生一个指纹(准确地讲是Merkle树,以后再介绍),只占用32个字节。

3)随机数nonce:矿工所做的事就是找这个nonce,通过不断地尝试变化这个nonce,进行上亿次的HASH计算,得到满足要求的结果。

假设父区块HASH为“abc",交易HASH值为”de",不断变化nonce,计算HASH值,假设nonce=5时,满足工作量目标(以一个0开头,这个术语以后再解释),获得到了全球共享大账本的记账权,然后将这个区块广播出去。

其它矿工收到这个区块后,首先要进行验证,验证别人是不是经过了大量计算并满足目标,而这个验证的计算量则非常非常小,0.001秒都不用。

就像前面说的搬砖一样,搬1000块砖的过程非常辛苦,但其它工人只需扫一眼就知道他是否完成了工作量(因为1000块砖正好装满一个集装箱),其它工人一看集装箱放到了车皮上(产生了新区块),则放弃当前的一箱砖,开始新一轮的工作(下一区块的竞争)。

小结:

  • 工作量证明既用于发币,也是验证交易的有效性,保证比特币的安全
  • 计算过程中不断调整nonce,要进行数亿至万亿次的HASH运算
  • 先完成计算的获得记账权,写入一个新区块,向外广播
  • 其它矿工只用非常非常少的计算量就可以完成验证
  • 竞争失败的矿工,取得最新区块信息,开始新一轮竞争

我在5月23日开办了“区块链生存训练”饭团,现在成员超过180人,已经讲解了众多概念:比特币地址、Block区块、区块链、确认、Mining挖矿、矿工费、HASH哈希、矿工、工作量证明、私钥、公钥、交易、钱包、PressOne、ICO等等,并且饭团内还有热烈的讨论。有人预测区块链将是未来的价值互联网的基础协议,想要活在未来,就要尽早学习这些内容。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 申龙斌的程序人生 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档