关于hash难度值转化算力说明

通过块hash 计算出所需要的算力

例如 hash值 00000000272b1400000000000000000000000000000000000000000000000000
计算所需算力(blake2bd double):

1 根据hash散列函数随机性,输入不同输出不同,hash 16进制长度是64
2 每个字符出现的范围都是从 0-f 出现,即每个字符出现的概率是 1/2^4,根据 第一条 每个字符出现的概率的独立的互不影响
3 hash 目标值是要小于上面 target hash 值 ,因此大位数 一定要小于对应的大位数,大位数从左到右
4 由上步可推算出 答案hash 至少大位数有8个0 出现,那么出现的概率为1/2^(4*8) = 1/2^32 次方
5 第9位 如果是0或1肯定满足目标难度,出现2则继续往后推,这里忽略 ,仅计算 出现0或者1的概率
6 根据上面分析,找到答案的概率为 1/2^32 * 2/2^4 = 1/2^35 次方 = 1/34359738368也就是说计算34359738368次hash可能会(注意是可能,概率都是平均来讲)得出一个答案
7 算力单位:1Khash/s=1000Hash/s;1Mhash/s=1000Khash/s 1Ghash/s=1000Mhash/s; 1Thash/s=1000Ghash/s;
1Phash/s=1000Thash/s; 1Ehash/s=1000Phash/s。
8 得出测试网算力:34359738368 / 1000 / 1000 / 1000 = 34Gh 左右
9 统计了 以下显卡 针对double blake2b 的算力

GPU设备型号 算力(Mh/s)
1070ti 537
1070 500
1060 403
Intel® HD Graphics 5
GeForce 920MX 48

10 以上面的hash例子 结合 算力表,大概可算出1070ti单台计算 找出符合目标的答案的hash的时间大概在 34*1000 / 537 = 63.3 s 左右
11 由于hash 随机性,概率也是长期来看比较准,所以概率都是讲的平均概念,不是确定性概念。

1 Like