PoW工作量证明

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等等,并且饭团内还有热烈的讨论。有人预测区块链将是未来的价值互联网的基础协议,想要活在未来,就要尽早学习这些内容。

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

TLS帮你三分钟读懂区块链!

随着近来比特币近似疯狂的大涨,其背后的区块链也跟着成为了又一个网络热词,几乎身边所有人都在谈论它。肯定不少人在想它到底是什么,机制是什么,有什么用处?今天这篇区...

19310
来自专栏区块链解说家

以太坊网络交易费提高到1美元,彩虹交易所已坐立不安

日前,以太坊开发人员表示EOS刻意拥堵以太坊网络,致使以太坊网络交易费提高到1美元。这对于与以太坊技术紧密相连的彩虹交易所、EtherDelta而言,是无可回避...

1123
来自专栏区块链维基

区块链技术学习者终极指南!

什么是加密经济学(cryptoeconomics)?以太坊社区开发者Vlad Zamfir解释道: “这是一门独立的学科,旨在研究去中心化数字经济学中的协议,这...

30310
来自专栏码神联盟

区块链 | 一文了解比特币的挖矿、矿机—《区块链历史链条》3

区块链从15年火到18年,但是你却对区块链一知半解,小编特打造《区块链历史链条》,将抽象的区块链概念由抽象化解释为形象化,供君参考。 21比特币...

3719
来自专栏CDA数据分析师

如何理性看待智能合约

就像近年来的"区块链"、"人工智能"和"云"一样,"智能合约"也是十分热门的话题之一。

904
来自专栏企鹅号快讯

区块链和比特币是什么关系?

区块链和比特币是什么关系?请看区块链100问第42集~ 42:区块链和比特币是什么关系? 区块链技术是比特币的底层技术,比特币是区块链的第一个应用。前面提到,比...

1815
来自专栏人生苦短,我用Python

[译]区块链技术全解析入门版

简而言之,区块链就是由许多包含信息的区块组成的链条。区块链技术通过给数字信息标记时间戳,使其无法回溯或篡改。区块链不需要银行或政府第三方机构的参与,用于金钱、产...

670
来自专栏存储

区块链核心内容有哪些东西?

1、去中心化 这是区块链颠覆性特点,不存在任何中心机构和中心服务器,所有交易都发生在每个人电脑或手机上安装的客户端应用程序中。 实现点对点直接交互,既节约资源,...

16810
来自专栏区块链

去中心化交易在代币经济中的价值

原文地址:https://blockchainatberkeley.blog/the-value-of-decentralized-exchanges-for-...

3695
来自专栏企鹅号快讯

聊聊DAG的共识和牛逼的hashgraph

可能因为IOTA和byteball的原因,一提到DAG,很多人就会担心DAG可能有中心化的问题。包括iota依赖validator节点,byteball依赖wi...

3319

扫描关注云+社区