精通比特币,挖矿和工作量证明算法

作者:练泳庆 火箭资本公众号主理人

比特币的本质是什么?它本质上是一种去中心化的清算交易系统。

挖矿最重要的作用是巩固了去中心化的清算交易机制,通过这种机制,交易得到验证和清算。

1 去中心化共识如何达成

创建交易后,产生的交易随后将被发送到比特币网络临近的节点。每一个收到交易的节点将会首先验证该交易,这将确保只有有效的交易才会在网络中传播。

验证交易后,节点会将这些交易添加到自己的内存池中,用来暂存尚未被加入到区块的交易记录。节点立刻构建一个新的空区块,做为候选区块,并从内存池中整合到了全部的交易。

构建了一个候选区块后,求解工作量证明算法以使这个区块有效。

成功构建区块后,挖矿节点立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。

当这个新区块在网络中扩散时,每个节点都会将它加到自身节点的区块链副本中。

2 工作量证明算法

2.1 为什么需要工作量证明

如果希望判定一个人提供的的信息是本着正常使用,具备一定价值的。那么我们倾向认为提供这个信息的人,愿意为此付出一定工作量来证明他的诚实。假如有一种机制,能够容易的证明提供信息的人为此付出了一定工作量,那么此信息是可以接受,并被认为合理的。

2.2 工作量证明的机制

简单打个比方,想象人们不断扔一个骰子以得到小于一个特定点数的游戏。第一局,目标是6。只要你不扔出6, 你就会赢。然后下一局目标为5。玩家只能扔4或更小的点数才能赢,不过也很简单。假如几局之后目标降低为了2。

随着目标越来越小,要想赢的话,扔骰子的次数会上升。

同理,我们设置一个难度目标值:按二进制bit数来设定,即哈希值开头多少个bit必须是0。如果你考虑整个256bit数字空间,目标哈希值开头的0越多,找到正确的哈希值更加困难。

矿工用一些交易构建一个候选区块。接下来,这个矿工计算这个区块头信息的哈希值,看其是否小于当前难度目标值。如果这个哈希值不小于目标值,矿工就会修改区块头中的nonce(通常将之加 1)然后再试一次,直到小于难度目标值。

到此为止,一个“工作量证明”结束,成功构建了区块。但是如果同时成功构建了几个不同的新区块,它们将同一区块作为其父区块,那么区块链就分叉了。最终,只有一个子区块会成为区块链的一部分。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181028B0AUZB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券