主页 > imtoken钱包下载注册教程 > 比特币系统如何衡量旷工的工作量?

比特币系统如何衡量旷工的工作量?

imtoken钱包下载注册教程 2023-02-09 06:15:36

大家早上好,上次我们讲了区块链的交易证明机制的时间戳。 今天,我们来谈谈比特币挖矿。

挖矿是指在比特币系统中,矿工通过竞争解决一个问题来获得记账权。 挖矿就是记账,从而获得比特币奖励。 我们来思考两个问题:

这个算术题是什么样的?

比特币系统如何衡量矿工的工作量?

今天我们就带你去探秘。

怎么挖? ——比特币系统记账方法

背景:工作量证明机制

比特币通过工作量证明的共识机制来决定记账权。 通俗地说,谁证明自己的工作量最大,谁就负责记账。

概念基础:感谢“hashcash”!

各种交易都发生在比特币世界。 每产生一笔交易,系统都会出一道“算术题”。 全网矿工共同开启“算力大赛”,谁在10分钟内最先答对,谁就可以获得记账权,开启新的比特币区块,获得系统奖励的比特币。

小编听了不禁大吃一惊; “解方程”可以挖比特币,但我的数学是体育老师教的……

咳咳,其实这不是狭义方程比特币系统运行机制,而是哈希计算。 这个问题可能看起来像这样:

(举起手,让我看看你迷茫的表情)

中本聪的比特币白皮书中提到的几种区块链底层技术已经出现,包括P2P网络、非对称加密、区块数据库、共识算法等。比特币算力证明的灵感也是基于一个已经被开发出来的系统投入使用——Hashcash(哈希现金)。

鲜为人知的是,Hashcash 最初用于遏制互联网上的电子垃圾邮件。

1997 年比特币系统运行机制,一个名叫 Adam Back 的人首次发明了哈希现金机制。 我们在上一篇文章中也提到了哈希函数,非对称加密技术就是通过它来实现的。 我们说这个函数的关键特点是容易验证,但很难破解。

工作原理:如果要发送邮件,必须先消耗计算机的一部分CPU资源来解决一道类似的数学题,才能发送成功。 这样一来,想要发送大量垃圾邮件的人将不得不付出大量的CPU资源,所以这在一定程度上防止了大量垃圾邮件的产生。

有兴趣的同学可以简单了解hash cash的工作原理,不感兴趣的可以直接跳过。

在电子邮件的消息标题中,添加一个 hashcash 戳记(“hash cash 戳记”)。 如果其中包含的随机数是“合法的”,则至少其哈希值的前n位必须为0。

发送方需要消耗算力得到一个哈希值前n位为0的随机数。

例如带有 hashcash“邮票”电子邮件的 Hashcash 消息头。 发送方利用计算机的算力穷举得到随机数(耗时3小时),接收方只需用SHA1算法哈希一次即可判断随机数是否“合法”,即hash值开头是否有8个0(耗时3小时1秒)

Hashcash 还可以防止“双重支出”。 生成 hashcash 戳时,它们需要携带日期。 Hashcash 的接收方还需要实现一个双花数据库来记录邮票生成的历史信息。

比特币技术基础:单向哈希函数SHA

比特币的工作量证明本质上也是利用单向哈希函数 SHA。 刚才的等式是让你用随机数计算一个字符串的哈希值。 当对这个随机值进行类似SHA-256的散列处理时,得到的散列值以一些0开头的为“合法”,即此时可以结束计算。

因为这种计算随机数的数学问题,本质上是一个概率问题。 比拼的是大家每秒能计算出的次数。 计算越多,得到合法结果的概率就越大。

这个过程与其说是一个计算,不如说是一个“崩溃库”。 ——手工是不可能的,几乎必须用机器来完成。

因此,矿工们争夺的是算力资源。 谁的矿机算力越大,获得相应区块奖励的概率就越大。

为什么是算力共识机制?

不知道大家有没有想过,为什么中本聪规定挖矿的竞争是算力资源而不是IP地址呢? IP地址共识机制有什么问题?

熟悉IP地址分配机制的人应该明白,IP地址分配是一个中心化的问题,相关方很容易回收和控制这个IP地址的资源。 如果一个IP地址算作一个投票机会,很容易被聚集大量IP地址的人左右; 而CPU是无法集中控制的,因为世界上绝大部分计算机都分布在普通人手中。 每台计算机的CPU计算能力是有限的,这就避免了一个人集中大量的CPU资源。

所以这里的工作量证明一定不是一个IP地址一票,而是一个CPU一票。 大多数决策都是由最长链所代表的计算能力做出的,因为最长的链包含最大的工作量。

然而,中本聪没有考虑到的是,专业矿机的出现让普通人几乎不可能通过CPU挖矿,而经过几年的发展,矿机逐渐被少数人所控制。

中本聪“失算”?比特币矿机亮相

因为在比特币挖矿的过程中,CPU资源一定程度上集中在一些人手里,所以它的竞争货币出现的比较晚,比如以太坊ethreum,就是通过优化GPU来解决的,也就是图形的算法卡片。 专业矿机造成的算力集中。 但这也会导致显卡涨价和集中化。 所以后来出现了其他的机制,比如POS,dPOS等。

如何保证出块速度?

如上所见,基于哈希现金的工作量证明机制还不错,但问题是随着时间的推移,硬件的计算速度在高速增长,矿工的计算能力也越来越差。越来越大。 中本聪每 10 分钟设计一个区块。 块,如何保证?

不得不说,中本聪的解决方案非常巧妙。 由于算力的提升会加速区块产生数据,他使得区块的增长与计算难度相关。 达到动态平衡。

白皮书原文解释:“为了补偿硬件速度的提高和节点运行的利益随时间的变化,工作量证明机制的难度将有一个变化的均值,即区块数“每小时。平均。如果出块速度太快,难度会增加。通过平均调整,保证每个出块时间在10分钟左右。”

根据SHA算法的原理,你需要消耗的算力也呈指数级增长,并且始终处于动态平衡状态,抵消了硬件计算成本的下降。

现在你完全理解工作量证明(POW)了吗? 在这里,范范问大家一个问题:为什么中本聪每十分钟设计一个区块?