1. 首页
  2. 观点

区块链科普(四):什么是挖矿(工作量证明)?

区块链科普(四):什么是挖矿(工作量证明)?

前面的区块链科普系列文中我们有提到过区块链系统的两种共识机制:工作量证明机制及权益证明机制。今天,我们来详细讲解什么是工作量证明机制,也就是我们俗称的挖矿

工作量证明(Proof Of Work,简称POW),简单理解就是用来确认你做过一定量的工作的证明。如果我们去监测整个工作的过程,那通常是极为低效的。但如果我们通过对工作结果进行认证来证明完成了相应的工作量,就会高效得多。比如现实生活中的毕业证、驾驶证等,就是通过检验结果的方式(通过相关的考试)所取得的证明。

工作量证明的基本原理

工作量证明系统主要特征是客户端需要做一定难度的工作得出一个结果,验证方却很容易通过结果来检查出客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中的,对于验证方则是易于验证的。

举个现实生活中的例子:例如驾照,你考驾照是需要一个学习驾驶以及通过科目一科目二科目三科目四考试的过程的,但是交警验证你是否具备驾驶机动车辆的资格,则只需要验证你是否持有驾照即可,而不需要去验证你整个学习驾驶的过程以及每一次科目考试的情况,因为他知道你能够拿到驾驶证必然要经过之前的学习及几项考试。

再举个技术层面的例子(非技术人员可以直接略过)给定的一个基本的字符串’Hello, world!’,我们给出的工作量要求是,可以在这个字符串后面添加一个叫做nonce的整数值,对变更后(添加nonce)的字符串进行SHA256哈希运算,如果得到的哈希结果(以16进制的形式表示)是以’0000’开头的,则验证通过。为了达到这个工作量证明的目标。我们需要不停的递增nonce值,对得到的新字符串进行SHA256哈希运算。按照这个规则,我们需要经过4251次计算才能找到恰好前4位为0的哈希散列。

工作量证明的过程

我们可以把比特币矿工解这道工作量证明迷题的步骤大致归纳如下: 生成Coinbase交易,并与其他所有准备打包进区块的交易组成交易列表,通过Merkle Tree算法生成Merkle Root Hash 把Merkle Root Hash及其他相关字段组装成区块头,将区块头的80字节数据(Block Header)作为工作量证明的输入,不停的变更区块头中的随机数即nonce的数值,并对每次变更后的的区块头做双重SHA256运算(即SHA256(SHA256(Block_Header))),将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成。

比特币的工作量证明,就是我们俗称“挖矿”所做的主要工作。理解工作量证明机制,将为我们进一步理解比特币区块链的共识机制奠定基础。

后续我们会向大家详解,什么是权益证明机制(POS)以及这两种机制对于货币系统的价值与意义。

本文转载自作者:师傅教我的,原文链接:http://www.360doc.com/content/18/0121/10/34215861_723823753.shtml。 本文观点仅代表作者本人,绝不代表本站赞同其观点或证实其描述,仅作学习交流使用。如若转载,请联系原出处。如内容、图片有任何版权问题,请联系本站处理。

发表评论

登录后才能评论

联系我们

邮箱:readblocks@163.com