主页 > imtoken老版本 > 比特币难度值 PoW机制

比特币难度值 PoW机制

imtoken老版本 2023-07-03 05:13:42

2021-11-24PoW机制

比特币系统的一个重要概念是基于互联网的去中心化账本,即区块链,每个区块相当于

在账本页面上,区块记录的信息主体就是对应的交易内容。账本内容的唯一性要求记账行

但是因为是中心化的行为,中心化造成的单点故障可能会导致整个系统的危机甚至崩溃

碰撞。 去中心化记账可以克服中心化记账的弱点,但同时也会带来记账行为的一致性。

从去中心化账本系统的角度来看,每个加入系统的节点都必须保存一个完整的账本。

但是,每个节点不能同时记账,因为节点处在不同的环境中,接收的信息不同。

如果没有账户,必然会导致账户不一致,造成混乱。因此比特币难度值,需要达成共识,让哪个节点有记录权

帐户。 比特币区块链通过竞争记账解决了去中心化记账系统的一致性问题。

比特币系统设计了一种机制,与每个节点的算力即“算力”竞争记账权。在比特币系

系统中大约每10分钟进行一轮算力竞赛。 比赛的获胜者将获得

其他节点同步添加账本信息。

然而,在一个去中心化的系统中,谁有权利决定竞争的结果?比特币系统通过一个

这是通过称为工作量证明 (PoW) 的机制完成的。

简单来说,PoW 是一种证明工作方已经完成了一定工作量的证明。 PoW系统的主要特点是

计算不对称。工作方需要做一定的难度才能得到一个结果,而验证者却很容易通过这个结果

检查工作方是否做了相应的工作。

比如给定字符串“blockchain”,我们给出的工作量要求是,可以在这个字符串中

然后连接一个整数值字符串,叫做nonce,对连接的字符串进行SHA256哈希运算,如果得到

如果哈希结果(以十六进制表示)以几个0开头,则验证通过。实现这一点

为了工作量证明的目标,我们需要不断增加nonce值,并对得到的新字符串进行SHA256哈希运算。

计算。按照这个规则,需要2688次计算才能找到前3位全为0的hash值,找到前6位

如果哈希值全为0,则需要620969次计算。

比特币难度值_50哈希值能挖到多少比特币_比特币区块链值钱吗

PoW机制

通过上面计算具体SHA256运算结果的例子,我们对PoW机制有了初步的了解。

untie.对于一个由特定字符串后接一个随机nonce值组成的字符串,要找到这样一个nonce值,满足前n位的平均值

SHA256值为0需要多次计算hash值。一般来说,n的值越大,需要完成的hash越多

计算量也较大。 由于散列值的伪随机性,要找到前导4个0的散列值,预计大约需要2 16

attempts,这个数学期望的计算次数,就是需要的“工作量”。

比特币网络中的任何一个节点,如果要生成一个新的区块并写入区块链,就必须解决这个比特

货币网络的 PoW 问题。 本题的三个关键要素是工作量证明函数、区块和难度值。workload

证明函数就是这道题的计算方式,block决定了这道题的输入数据,难度值决定了需要的

所需计算量

工作证明功能

比特币系统中使用的工作量证明函数是 SHA256。

SHA 是 Secure Hash Algorithm 的缩写,它是密码哈希函数家族。

这套函数由美国国家安全局 (NSA) 设计,并由美国国家标准与技术研究院 (NIST) 发布。

已出版,主要适用于数字签名标准。 SHA256 是这个函数族之一,输出值是 256 位

哈希算法。 到目前为止,还没有针对SHA256算法的有效攻击。 详见第四章的解释。

堵塞

一个比特币区块由区块头和区块中包含的交易列表组成。区块头的大小为 80 字节,由

4字节版本号,32字节前一个区块哈希值,32字节Merkle根哈希值,4字节时间

时间戳(当前时间),4字节当前难度值,4字节随机数。附加区块包含的交易列表

区块头后面,第一笔交易是coinbase交易,是矿工获取奖励的交易和手续

特别交易。 块的一般结构如图 5-2 所示。

50哈希值能挖到多少比特币_比特币难度值_比特币区块链值钱吗

PoW机制

一个固定长度为 80 字节的块头是比特币工作量证明的输入字符串。因此,对于

为了使区块头反映出区块中包含的所有交易,在区块的构建过程中,需要

交易列表,通过Merkle树算法生成Merkle根哈希值,作为交易列表的哈希值存储在zone中

在块中。 Merkle树的算法图如图5-3所示。

PoW机制

图5-3是一棵有4条交易记录的默克尔树的根哈希值的计算过程。先用这4条

以交易为叶子节点构造一棵完整的二叉树,然后通过哈希值的计算,将二叉树转化为

Merkle树。先计算出四笔交易记录各自的哈希值HA~HC:Txa~Txc,然后计算中间的两个

节点H AB = Hash (HA + HB )和H CD = Hash (HC + HD )的哈希值,最后计算出根节点的哈希值

希腊值 H ABCD =Hash(H AB +H CD )。 构建的区块链如图 5-4 所示。

PoW机制

从图5-4所示的简化区块链结构中,我们可以发现,在给定的时间范围内,需要记录的所有记录

交易信息被构造成默克尔树,区块包含一个指向默克尔树的哈希指针,与

与本区块相关的交易数据,同时本区块还包含一个指向前一个区块的哈希指针,使得记录不同的交易数据成为可能

各个交易块链接在一起形成区块链。

难度值

难度值是比特币系统中节点出块时的一个重要参考指标,它决定了大概

需要多少次哈希运算才能产生一个有效的区块。比特币区块大约每 10 分钟产生一次,例如

如果要在全网不同算力条件下维持这个新块生成速率,那么难度值必须以全网为基准

调整算力的变化。简单来说,难度值按照新区块产生的速度来设置,与节点的算力无关。

速率保持在每 10 分钟一个。

比特币区块链值钱吗_比特币难度值_50哈希值能挖到多少比特币

难度调整在每个全节点内独立自动发生。每 2016 个区块,所有节点将

一个公式自动调整难度。 这个公式是根据最近2016个区块花费的时间和预计时间(expected time

是20160分钟,也就是两周,是按照每10分钟出一个块的速度计算的总时间)

根据实际持续时间与预期持续时间的比例,进行相应的调整(或变难或变容易)。即如果

如果出块速度快于 10 分钟,则难度会增加,如果慢于 10 分钟,则难度会降低。

这个公式可以总结如下:

新难度值=旧难度值×(过去2016个区块耗时/20160分钟)

工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)计算公式如下:

向下:

目标值=最大目标值/难度值

其中最大目标值是一个常数值:

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

目标值的大小与难度值成反比。比特币工作量证明的成就是矿工计算出的区块。

哈希值必须小于目标值。

PoW的过程

在Bitcoin PoW的过程中,可以简单理解为成就就是用不同的nonce值作为输入,尝试执行

SHA256哈希运算,寻找满足给定数量的前导0的哈希值的过程。需要的前导0越多

更多意味着更多的困难。 比特币节点解决工作量证明问题的步骤大致概括如下:

1) 生成一个 mint 交易并与所有其他要打包到区块中的交易形成交易列表,通过 Merkle

树算法生成Merkle根哈希;

2)将Merkle根哈希和其他相关字段组装成一个区块头,以区块头的80字节数据作为工作

输入数量证明;

比特币难度值_50哈希值能挖到多少比特币_比特币区块链值钱吗

3)不断改变区块头中的随机数,即nonce的值,每次改变后都要仔细检查区块头

SHA256运算(即SHA256(SHA256(Block_Header))),将结果值与当前网络的目标进行比较

比较值,如果小于目标值,则问题成功解决,工作量证明完成。

比特币的工作量证明是通常所说的“挖矿”的主要工作。了解工作量证明机制将提供

我们为进一步理解比特币区块链的共识机制奠定了基础。

基于PoW的共识记账

我们以比特币网络的共识记账为例,来说明基于PoW的共识记账过程。

1)客户端产生新的交易并向全网广播,请求交易记账;

2)每个记账节点收到这个请求后,会将收到的交易信息合并到一个区块中;

3)每个节点都经过PoW过程,试图在自己的区块中找到足够难度的工作负载

证明;

4)当一个节点找到一个工作量证明时,它向全网广播;

5) 当且仅当包含在区块中的所有交易都是有效的且之前不存在时,其他节点才会

同意区块的有效性;

6) 其他节点表示接受该块,表示接受的方式是跟在块的末尾,使得

创建新块以扩展链,并且接受块的随机散列被认为在新块的随机散列之前。

通过以上记账过程,将客户端所需的交易信息写入各个记账节点的区块链中

其中,形成分布式高概率一致性账本。

关于比特币 PoW 能否解决拜占庭将军问题

比特币的PoW共识机制能否解决拜占庭将军问题一直在业界存在争议。 2015年,娟

Garay 对比特币的 PoW 共识算法进行了形式化分析,得出结论:比特币的 PoW 共识算法

它是一种概率拜占庭协议(Probabilistic BA)。 加雷对比特币共识协议的两个重要属性

比特币区块链值钱吗_50哈希值能挖到多少比特币_比特币难度值

性别分析如下。

1)一致性(Agreement)

在不诚实节点的总算力小于50%的情况下,每轮同步出块的概率很小

下,诚实节点有很大概率拥有相同的区块。用严格的数学语言来说,应该是:当任意两个诚实节点

真实节点的本地链截取K个节点,剩余两条链的头部块不同的概率随着K的增加而增加。

指数下降。

2)正确性(有效性)

大多数区块必须由诚实节点提供。严格来说,只有当不诚实的算力很小时,

大多数区块由诚实节点提供。

因此可以看出,当不诚实算力低于全网算力的50%时,同时挖矿难度也比较高。

在 10 分钟左右出块的情况下,比特币网络上的共识概念会随着确认区块数量的增加而增加。

成倍增加。但是当不诚实的算力达到一定规模,甚至不接近50%时,比特币的共识算力

该方法不保证正确性,即不能保证大部分区块都是诚实节点提供的。

因此,我们可以看出,比特币的共识算法并不适用于私有链和联盟链。原因首先在于

是最终一致性共识算法,不是强一致性共识算法。 第二个原因是它的共识效率低。

提供共识效率将牺牲共识协议的安全性。

另一方面,比特币通过巧妙的矿工奖励机制提高了网络的安全性。矿工挖矿获得比特币

记账带来的代币奖励和交易手续费,让矿工更愿意维护网络的正常运行,任何对网络的损害

不诚信的行为会损害矿工自身的利益。因此,即使一些比特币矿池拥有强大的算力比特币难度值,他们

他们都没有作恶的动机,却有维护比特币正常运行的动机,因为这关系到他们的真实利益。

分类:

技术要点:

相关文章: