比特币在经过2100区块后会调整挖矿难度,目标是维持出块时间在十分钟左右。
在以太坊中则是在每个区块都有可能会调整区块难度,调整的方法较为复杂。
区块难度D(H)
分为两部分:基础部分(维持出块时间大概在15秒左右)+ ε 难度炸弹(为了向权益证明过度)
在父区块(当前区块链上最后的一个区块)的难度基础上加上自调整的方法
同时在第一部分有难度下限D0,不能低于131072
自适应难度调整
其中x是调整力度,值为父区块难度/2048
Ω的取值与出块时间和是否有uncle区块(含uncle区块发行货币更多,为了维护货币发行量稳定有uncle区块y=2,反之y=1)有关,同时难度降低上界为-99,为了应对黑客攻击。
Hs是本区块的时间戳,P(H)Hs则是父区块的时间戳,相减为当前区块的时间间隔
难度炸弹
意义:为了降低迁移到权益证明POS 时发生fork的风险:挖矿难度越来越大。
由于还未转到权益证明 ,但挖矿难度增长太快,所以将区块-3000000,同时奖励降为3
具体代码