美文网首页
关于POW算法难度调整的简单理解

关于POW算法难度调整的简单理解

作者: 死鱼 | 来源:发表于2018-11-09 23:23 被阅读0次

简述

POW算法是比特币,以太坊等区块链系统使用的共识算法,简单来说他做的就是“工作量证明”。本文从一个非常简单的哈希算法的例子去解释一下,如何把 社会必要劳动时间 全网算力这个概念量化以及难度调整。

其他理论基础

相信使用搜索引擎查询过和“哈希表”的同学都很清楚他们是如何映射和扩容,这里就不作赘述了。本文中假设使用的哈希算法都能最大程度地平均分配空间

正文

希望他的题目能保持在3秒钟左右被解答出来。
想象一下我们在一个只有9个空间的哈希表里面玩这个游戏。



回合1开始
给出了一个题目:“啊,我亲爱的 奴隶 劳动人民 矿工们,想要获得我的宝藏吗?去找吧,我把我的一切财富都放在了那里!只要找到一个值,通过使用 神 · 哈希 计算后等于1、2或者3,就拿这个值找我兑换一点吧”。
那么要找到这样的值,我们就必须 瞎几吧 去猜这个值是多少,在哈希算法分布均匀的前提下,很容易看出:成功率是1/3
1 2 3 4 5 6 7 8 9

每次碰撞成功率:1/3

回合1结束:在问题发布1秒钟后,有一个哥们宣布他算出了正确答案。
分析:这时候我们就可以认为,全体劳动人民一秒钟内进行了N次哈希运算,同时近似认为这个N满足:

1(秒) ✖ N(hash/秒) ✖ 1/3(1/hash) = 1;

通过简单的小学数学我们得知,N=3;又称当次全网算力为3hash/秒

(划重点)
回合2开始
对题目进行了必要的调整:“啊,我亲爱的 奴隶 劳动人民 矿工们,想要获得我的宝藏吗?去找吧,我把我的一切财富都放在了那里!只要找到一个值,通过使用 神 · 哈希 计算后等于1,就拿这个值找我兑换一点吧”;
他发现自己低估了初代矿工们的能耐后,为了控制财富被瓜分的速度,他在知道上一次全网算力为3hash/s的前提下优化了题目参数。

1 2 3 4 5 6 7 8 9

每次碰撞成功率:1/9

(假设矿工数没变,也就是全网算力没变)
回合2结束:在问题发布3秒后,有一个哥们宣布他算出了正确答案。
分析:通过3秒计算出成功率只有1/9的题目,可看出

3(秒) ✖ N(hash/秒) ✖ 1/9(1/hash) = 1;

再次通过伟大的小学数学我们得知:N = 3;验证了全网算力依旧是3hash/秒,同时把分配财富的速度降低到了3秒/次。 感到很满意;

这时候我想大家就明白了, 通过调整问题中要求的哈希值的整体覆盖率,来降低猜值成功的概率,这里可以近似认为覆盖率=成功率

结论

调整的方法就是:

调整后哈希覆盖率(%) = 期望出块时间(秒) ✖ 全网算力(hash/秒) / 哈希总空间(hash) ✖ 100%
当前全网算力(hash/秒) = 上一题的覆盖率(%) ✖ 总空间(hash) / 期望出块时间(秒) / 100%

目的:在期望时间内,全网算力产出能算出所有覆盖到的哈希值。

名词翻译

:共 识社会机制
财富:出块奖励
宣布正确答案:出块
单位中的hash:代表进行一次哈希运算

作者:SteveWooo。

相关文章

  • 关于POW算法难度调整的简单理解

    简述 POW算法是比特币,以太坊等区块链系统使用的共识算法,简单来说他做的就是“工作量证明”。本文从一个非常简单的...

  • 以太坊(Ethereum ETH)难度调整算法

    在源码consensus(共识)模块中,ethash的实现,而pow的难度调整算法的实现位于consensus/e...

  • 共识算法POW原理及实现

    POW简介 Proof of Work,工作证明。POW共识算法主要是通过计算难度值来决定谁来出块。POW的工作量...

  • 理解Bitcoin的挖矿难度调整算法

    在Bitcoin的设计中,PoW共识算法是极其精彩的一部分,矿工需按照全网络当前挖矿难度,耗费一定量的算力构造出合...

  • 区块链共识算法总结

    关于区块链的共识机制的特点总结 首先给打家介绍POW: POW即工作量证明,是一种非常简单的方法。 优点:1.算法...

  • 区块链难度调整算法总结

    区块链难度调整算法总结

  • 对矿业的一点思考

    关于矿机 矿机是对PoW挖矿算法的ASIC化,通过专用的硬件芯片快速执行PoW算法(通常是哈希算法)。设计一个公链...

  • 以太坊难度调整算法

    关于以太坊的难度调整算法,从源代码里的block_validator.go文件中可以找到相关表述。算法主要是让挖矿...

  • zcash难度调整算法

    zcash的难度调整算法在zcash的协议文档(Protocol Specification)p37,6.4.3 ...

  • 共识算法PoS及Go语言实现

    相对于pow来说,pos共识算法在计算方面有了很大的进步,因为不需要去进行像pow一样的“难度解密”,取代他的而是...

网友评论

      本文标题:关于POW算法难度调整的简单理解

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