主页 > imtoken浏览器 > 让我们看看比特币是如何被挖掘出来的——什么是工作量证明?

让我们看看比特币是如何被挖掘出来的——什么是工作量证明?

imtoken浏览器 2023-02-19 07:21:51

一起来看看比特币如何挖矿-什么是工作量证明?

在区块链记账的原理中,我们了解到,记账是对交易记录、交易时间、账本序号、最后一个Hash值等信息进行Hash包装计算的过程。

我们知道所有的计算和存储都需要消耗计算机资源。既然有成本,节点为什么要参与记账呢?在中本聪(比特币之父)的设计中,完成记账的节点可以获得系统给予的一定数量的比特币奖励。这个奖励的过程,也是发行比特币的过程,所以大家都直观的记住了。账本被称为“挖矿”比特币挖完后谁记账,本文将详细讨论这个过程。

簿记

由于记账有奖励,每次预定一本书,可以凭空添加一定数量的比特币(目前12.5个比特币,发博时每个比特币4万多元,每个人都可以算出多少钱),所以会有大家争着记账,大家一起记账,就会产生问题:存在记账不一致的问题,比特币系统引入了工作量证明来解决这个问题问题。规则如下:

但是,在工作量证明之前,记账节点会做以下准备工作:

如果节点成功竞争记账权比特币挖完后谁记账,可以获得12.5比特币的奖励。

工作证明

根据区块链记账的原理,我们知道每次进行记账时,都会以前一个区块的哈希值和当前账户页面信息作为原始信息进行哈希计算。

如果只是这样,显然每个人都可以轻松完成簿记​​。

为了保证10分钟左右只有一个人能记账,需要增加记账的难度,使得Hash结果必须以几个0开头。为了满足这个条件,在进行Hash的时候引入了一个随机数变量。

用伪代码表示:

Hash(上一个Hash值,交易记录集,随机数) = 0000aFD635BCD

我们知道,当Hash原始信息的任何部分发生变化时,Hash值也会不断变化。因此,在计算Hash时,随机数的值是不断变化的,总能找到一个随机数,使Hash结果为数个数。从 0 开始(以下称为猜测),首先找到随机数的节点将获得本次记账的唯一记账权。

计算分析

(此部分为选读)让我们简单分析一下记账有多难。

哈希值是一个由数字和大小写字母组成的字符串,每一种都有62种可能性(可能是26个大写字母,26个小写字母,10个数字中的任意一个),假设任何一个字符出现的概率相等,那么概率第一位是 0 是 1/62(其他位中出现的字符被忽略)。理论上,需要62次Hash运算才能尝试第一个位0。如果前两个2位为0,则要尝试62次方Hash运算。从 n 0s 开始,你需要尝试 62 次幂运算。我们来看看当前的实际区块#493050信息:

一起来看看比特币如何挖矿-什么是工作量证明?

注:数据来自

我们可以看到 Hash 值以 18 个 0 开头。理论上,我们需要尝试 62 的 18 次方。这个数字非常非常庞大。我无法计算清楚。应该在亿级以上。如此大的计算量,需要在计算设备、电力等方面进行大量投资。

目前不应该有单个矿工独立参与挖矿。基本上,矿工联合起来形成一个矿池进行挖矿(矿池中的矿工按照算力的百分比划分收益)。

从经济学的角度来看,只有挖矿有利润(比特币价格上涨也增加了利润),才会有新的矿工加入,这会加剧竞争,增加算力的难度,而挖矿会花费更多的算力和电,相互作用使最终成本接近效益。

题外话:在中国,由于电费成本较低,相对收益较高,中国算力占全网一半以上

核实

节点成功找到满意的Hash值后,会立即将打包的区块广播到全网,全网节点收到广播的打包区块后会立即进行验证。

如果验证通过,则说明某节点成功解谜,不再竞争当前区块打包,而是选择接受该区块,记录在自己的账本中,然后进行竞争猜测下一个区块。

只有网络中最快的块才会被添加到账本中,其他节点会复制它,从而保证了整个账本的唯一性。

如果节点有作弊行为,将导致网络的节点验证失败,打包后的区块将被直接丢弃。该区块无法记录在总账中,会浪费作弊节点的成本。因此,在巨大的挖矿成本下,矿工自愿遵守比特币系统的共识协议,保证了整个系统的安全。

阐明

矿工的收入实际上不仅包括新发行的 12.5 个比特币奖励,还包括交易手续费收入(为了让主干更清楚,本文省略了一些细节)。

有兴趣的同学可以看一下图中方块所包含的信息。红色箭头表示本文涉及的信息。

本文提到了共识协议。比特币共识协议主要由工作量证明和最长链机制两部分组成。后面会有博文详细讲解。

通晓区块链——系统学习区块链,打造最好的区块链技术博客