pow

本文介绍了比特币网络中的哈希256算法,它是一个单向哈希函数,用于生成区块头的哈希值。pow计算涉及到多次SHA256运算,寻找合适的nonce值使区块头哈希值小于目标值。难度值nBits用于控制出块时间,通常保持在10分钟。难度每2016个区块调整一次,新难度值由最近2016块实际用时与目标时间比较后计算得出,并限制调整幅度不超过4倍。
摘要由CSDN通过智能技术生成
hash256算法:单向哈希函数,输入数据会被运算生成256位哈希值,相同的数据生成相同的hash
pow计算:进行多次SHA256算法,找到一个nonce值,使得当前区块头的hash值小于目标值,目标值越小,所需的计算量越大
区块头:nVersion、hashPrevBlock、hashMerkleRoot、nTime、nBits、nNonce
难度:nBits,它的前两位十六进制数字为幂,后六位为系数
计算目标值:target = nBits后六位* 2^(8 * (nBits前两位– 3))
目标值计算举例:区块277316中,nBits为0x1903a30c,该区块目标值用上述公式计算为:0x0000000000000003A30C00000000000000000000000000000000000000000000
区块277316实际hash值为:
0x0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4

比特币网络通过调整难度值nBits的大小来将出块时间控制在10分钟一块。每2016个块调整一次难度(20160分钟,2周)。难度调整是在每个完整节点中独立自动发生的,也就是说每个完整节点都拥有难度调整的代码(其他节点广播的错误难度值区块是无法通过验证的)。
新难度值 = 旧难度值 * (最近2016块实际用时 / 20160minutes)
为防止难度变化过快,每个周期的调整幅度小于一个因子(值为4),即当最近2016块的实际用时小于20160minutes/4或大于20160minutes*4时,分别按照20160minutes/4和20160minutes*4进行计算







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值