关于:Filecoin的爆块规则,用实例来说明
一、算力占比
1、假设全网总共有n个矿工,全网所有矿工密封扇区总量达到 10000 T
2、某矿工A密封扇区达到 100 T 占比 1%
3、某矿工B密封扇区达到 200 T 占比 2%
4、某矿工C密封扇区达到 300 T 占比 3%
5、某矿工D密封扇区达到 1000 T 占比 10%
6、某矿工E密封扇区达到 2001 T 占比 20.01%
7-n .......
二、预期共识:每30秒做一次全网选举,选举出块的矿工,每一个矿工被选举成功的机率和他的全网算力占比成正比,比如C矿工,每100轮预计有3轮被选举成功上位。
三、成功上位的矿工有了初步爆块的机会,比如在某一轮出块前,矿工C成功当选,系统在此轮会给C分配一个0-1之间的随机数,如果这个随机数小于或等于3%,C才能拿到本轮门票,反之,C拿不到门票,本轮没有矿工爆块,继续下一轮。
四、C拿到门票就一定能爆块成功吗?不一定,C成功拿到门票后,还要继续做工作:开始打包全网的消息数据,包括转账,所有矿工提交P1,P2的证明消息,全网的POST时空证明消息,把这些消息记录到区块链上,同时还要提交自己的WinningPost证明,这些工作在30秒钟内完成,才算成工爆块,拿到爆块奖励。
五、如果每轮只选举一个矿工,那这个矿工拿到门票的几率就很小 造成空块率超过1/3,那么预期共识改成5,即每轮选举5个矿工(预期共识 e = 5),系统给每个矿工各分配一个随机数:比如某一轮选举ABCDE五个矿工全部当选
矿工 算力占比 各自的随机数
A 0.01 0.08
B 0.02 0.15
C 0.03 0.02
D 0.1 0.36
E 0.2001 0.195
通过比较:C和E的算力占比大于他的随机数,所以C和E拿到了出块门票。
六、C和E完成消息打包并记账上链和WinningPost后,即成功出块,拿到爆块奖励,如果C或E由于自身设备性能或者网络原因没能在30秒周期内完成WinningPost,则会错过了本轮的爆块机会。
七、如果初步当选的5个矿工算力占比都小于各自的随机数,那本轮没有矿工成功爆块,继续下一轮。
八、所以,仔细分析上述规则可以得出结论,矿工爆块要走三步曲,第一步:成功当选,第二步:成功预期(算力占比大于随机数),第三步:完成记账和WinningPost证明。
九、最终结论:矿工算力占比越高,当选率越高,当选矿工的算力占比越高,预期成功的几率越高,预期成功后,还需要有优良的机器性能以及可靠顺畅的网络环境能保证成功出块。
十、还有一种说法是,第五在比较算力占比和随机数的之前,矿工的算力占比乘以预期共识e(5),即把矿工的算力占比扩大5倍再比较,这样空块的几率就会大大减小,同样,算力占比大于等于20%的矿工,只要当选,就一定能拿到门票。因为 20% * 5 = 1,无论随机数是多少,都不会大于1。
关于飞狐浏览器上的幸运值的说明:
没有了解这个幸运值之前,一直把这个幸运值和随机数混淆,其实完全不是一回事。
幸运值 = 统计的一段时间内实际出块数量/一段时间内理论出块数量
实际出块数量好说,那么理论出块数量怎么计算呢:
我是这么算的:
比如24小时全网出块总数:24 * 3600 / 30 * 5 = 14400
那么C矿工的24小时的理论出块数量就是 14400 * 2% = 288
如果24小时矿工C的实际出块数量是:260
那么24小时 矿工C的幸运值是:260/288 = 90.28 %
这个值和飞狐浏览器上给的幸运值基本相同。