美文网首页
自学区块链(六)BTC-挖矿难度

自学区块链(六)BTC-挖矿难度

作者: 阿根廷香蕉 | 来源:发表于2019-08-29 01:31 被阅读0次

我们来看下挖矿的计算公式

H(block header)\leq target,这个target就是目标阈值

BTC用的哈希算法是SHA-256,它产生的哈希值是256位,那么就有2^256种取值,这个就是他的输出空间,要增大挖矿难度,就调节目标值在这个输出空间所占的比例

挖矿难度和目标阈值是成反比的,当算力强时,调节难度,使目标阈值变小

为什么要调节难度

不调节难度,随着矿工数量增多,随着算力的上升,那么挖到区块的时间就会变短,从10分钟缩短到1分钟甚至几秒钟,这个会带来什么样的问题呢?可能很多人觉得这不是挺好吗,交易等六个确认就会缩短时间了,交易就会变快了。其实出块时间缩到很短,风险是很大的,因为网络延迟,出块时间变短,不同节点很可能接到不同的区块信息,导致会有很多分叉节点出现。矿工会根据自己认为正确的区块接着挖。这种情况下,恶意节点发动分叉攻击就比较容易成功,因为诚实节点的算力被分散了。

导致不需要51%的算力就能成功,所以缩短出块时间是不利于BTC系统的稳定的。虽然10分钟不一定是最优的时间,但是也算是比较合理的。

下面是算力增长曲线

下面是挖矿难度曲线

下面是平均出矿时间

平均在10分钟

如何调节出块时间呢

我们来看下难度公式:每2016个区块调整一次挖矿难度,10分钟出一个平均算下来是两星期调整一次。

previous_difficulty是上一次的挖矿难度,分母是最近2016个区块花费的时间

每个节点挖矿是独立的,BTC的协议也是开源的,会不会有矿工不修改挖矿难度呢?可能性是存在的,但是不影响结果,因为广播给其他节点需要独立验证block header的哈希值,这个header里面有难度的一个压缩编码,修改难度产生的结果是不会被诚实的节点认可的。

相关文章

  • 自学区块链(六)BTC-挖矿难度

    我们来看下挖矿的计算公式 H(block header)target,这个target就是目标阈值 BTC用的哈希...

  • 自学区块链(七)BTC-挖矿

    BTC系统中的两种节点 全节点的要求 默认情况下是沿着最长合法链挖下去,出现分叉也是根据自己先接受到哪一个就选哪一...

  • 【区块链挖矿难度】

    难度:整个网络通过[难度]这个变量控制生成工作量证明所需要的计算力。 难度目标:整个网络的计算力大致每10分钟产生...

  • 为什么大矿工偏爱矿机租赁?

    区块链挖矿~区块链挖矿~~2019 ~~每条大街小巷,每个人的嘴里,见面第一句话,就是区块链挖矿~区块链挖矿~~ ...

  • 区块链小知识:挖矿算力

    区块链小知识:挖矿算力区块链小知识:挖区块链小知识:挖矿算力矿算力

  • 自学区块链(四)BTC-实现

    BTC系统维护的数据结构 BTC的全节点会要维护一个UTXO(没被花掉的交易的输出的集合)的数据结构,作用是快速检...

  • 自学区块链(五)BTC-网络

    BTC-网络 新发布的区块、交易在BTC网络是怎么传播的呢?下面先看BTC网络的工作原理:BTC工作在应用层。底层...

  • 2018-05-23

    不经过挖矿的不能做区块链,只停留在挖矿的会做坏区块链。

  • 2018-05-23

    不经过挖矿的不能做区块链,只停留在挖矿的会做坏区块链。

  • 【精通比特币】13 挖矿仅仅是你以为的激励么?

    关于挖矿在前面写区块链、区块链安全的时候,因为必须用到,写到了挖矿的部分知识。写了挖矿产生区块,挖矿的奖励,以及挖...

网友评论

      本文标题:自学区块链(六)BTC-挖矿难度

      本文链接:https://www.haomeiwen.com/subject/usodectx.html