作者:练泳庆 火箭资本公众号主理人
比特币的本质是什么?它本质上是一种去中心化的清算交易系统。
挖矿最重要的作用是巩固了去中心化的清算交易机制,通过这种机制,交易得到验证和清算。
1 去中心化共识如何达成
创建交易后,产生的交易随后将被发送到比特币网络临近的节点。每一个收到交易的节点将会首先验证该交易,这将确保只有有效的交易才会在网络中传播。
验证交易后,节点会将这些交易添加到自己的内存池中,用来暂存尚未被加入到区块的交易记录。节点立刻构建一个新的空区块,做为候选区块,并从内存池中整合到了全部的交易。
构建了一个候选区块后,求解工作量证明算法以使这个区块有效。
成功构建区块后,挖矿节点立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。
当这个新区块在网络中扩散时,每个节点都会将它加到自身节点的区块链副本中。
2 工作量证明算法
2.1 为什么需要工作量证明
如果希望判定一个人提供的的信息是本着正常使用,具备一定价值的。那么我们倾向认为提供这个信息的人,愿意为此付出一定工作量来证明他的诚实。假如有一种机制,能够容易的证明提供信息的人为此付出了一定工作量,那么此信息是可以接受,并被认为合理的。
2.2 工作量证明的机制
简单打个比方,想象人们不断扔一个骰子以得到小于一个特定点数的游戏。第一局,目标是6。只要你不扔出6, 你就会赢。然后下一局目标为5。玩家只能扔4或更小的点数才能赢,不过也很简单。假如几局之后目标降低为了2。
随着目标越来越小,要想赢的话,扔骰子的次数会上升。
同理,我们设置一个难度目标值:按二进制bit数来设定,即哈希值开头多少个bit必须是0。如果你考虑整个256bit数字空间,目标哈希值开头的0越多,找到正确的哈希值更加困难。
矿工用一些交易构建一个候选区块。接下来,这个矿工计算这个区块头信息的哈希值,看其是否小于当前难度目标值。如果这个哈希值不小于目标值,矿工就会修改区块头中的nonce(通常将之加 1)然后再试一次,直到小于难度目标值。
到此为止,一个“工作量证明”结束,成功构建了区块。但是如果同时成功构建了几个不同的新区块,它们将同一区块作为其父区块,那么区块链就分叉了。最终,只有一个子区块会成为区块链的一部分。
领取专属 10元无门槛券
私享最新 技术干货