解密filecoin初始质押的预估值和实际质押量

对于 Filecoin 的质押机制,大家都不陌生。为了减轻矿工的负担至最低来满足对质押的多种需求,Filecoin 有三种不同的质押机制:初始质押,区块奖励质押以及市场质押。

初始质押,是矿工必须为每个扇区提供 Filecoin 作为初始承诺。区块奖励质押,是通过区块奖励锁仓,来减少初始代币质押的要求。市场质押,是在矿工和用户之间建立激励机制,使矿工在市场上脱颖而出。

今天我们来了解初始质押,探究它怎么组成?如何计算?怎样估算其真实成本?


初始质押的组成


首先,Filecoin的初始质押=存储质押+共识质押。

存储质押为用户保障网络的服务质量并在出现惩罚时为扇区提供启动担保。它遵循以下原则:小到可以让矿工加入网络,同时足够大到质押可以应对早期故障罚款的费用。当前 Filecoin 存储质押的 FIL 费用为 20 天的预期收益。在封装流程中,PreCommit2(简称P2)步骤完成后,提交preCommitSector消息时,会向miner钱包转入这笔存储质押费用。

我们用某节点验证举例:某节点1000T的挖矿收益约为每天110FIL左右。其封装1000T,存储质押费用约为2270FIL,约为日挖矿收益的20倍左右。

共识质押又是什么呢?随着 Filecoin 存储规模的不断增加,单位存储空间所获得的收益将不断降低,也就是存储质押会越来越少,为了维持较高的共识成本,Filecoin 网络增加初始质押的后半部分,即共识质押。共识质押取决于该扇区加权字节算力和网络流通供应量。在封装流程中,SealCommit2(简称C2)步骤完成后,提交proveCommitSector消息提交时,会向miner钱包转入该笔共识质押费用。


初始质押费用怎么看?


首先,我们先去验证preCommitSector和proveCommitSector消息(以下简称pre消息和prove消息)是否真的缴纳了这两笔钱:

打开浏览器(https://explorer.atpool.com/),找一个封装中的节点,找到提交时间接近的两条pre和prove消息:

我们假定这两条消息都属于同一个扇区。那么两条消息的质押金额之和,可以视为单扇区的初始质押成本。该节点扇区大小为32GiB,则其平均单T的初始质押成本约为10.17FIL/TiB。

注意,这里埋一个包袱:很多读者注意到,很多头部矿工节点,其pre和prove消息金额是0。难道头部矿工不交质押费?稍后解释。


初始质押的预估质押费用和实际质押量


得到平均单T的初始质押成本约为10.17FIL/TiB后,疑问就来了。明明全网数据可得出,平均一个扇区的质押量明明只有9FIL/TiB左右?难道是pre和prove消息所提交的质押费用,不等于最后实际的质押量?

(数据来源:雅典娜云池浏览器)

是的!我们在消息里看到的pre和prove消息提交的质押费用,不等于实际质押费用。结论原因请看初始质押流程:

1.提交pre消息前,根据当前全网总算力、算力增长趋势和实际增长趋势,计算得到当前高度的存储质押量。为了减少计算误差,会将计算得出的存储质押量乘以1.1倍,作为预估存储质押量,通过pre消息时预先划拨至miner钱包;

备注:之所以要多划拨0.1倍,是因为提交消息的高度,和本条消息被打包的实际高度,并不一致,本条消息被打包的高度,肯定高于提交消息的高度(也就是测算质押量的高度),所以,官方代码为了避免实际打包的时候的质押量发生变化而导致质押金额不足,进而导致质押失败的情况出现,多划拨了0.1倍测算量。

2.miner钱包仅对实际存储质押量进行锁仓,即所谓的“定金”。预估质押量的多余部分不锁仓(小于等于0.1倍测算质押量的那部分);

3.经过150个区块高度才可提交prove消息。提交前,通过公式得到当前高度的初始质押量(所谓“总价”),同样乘以1.1倍。本次通过prove消息划拨数额=1.1倍的初始质押量-实际存储质押量(即“尾款=总价-定金”)。

4.最后一步:

  • miner钱包将存储质押量(“定金”)退回可用余额;
  • 此时miner钱包中的余额=1.1倍总价-定金+(退回可用余额的)定金+多余的定金;
  • miner钱包对初始质押量(“总价”)进行锁仓;
  • 初始质押量被锁仓后,富余的预估质押量不锁仓。

综上所述,pre和prove消息提交的仅仅是预估质押量,而且是富余的。你所花费的FIL,一分也没有少,都在miner钱包中。

为何头部矿工们Pre和Prove消息的质押金额为0?

现在我们可以解答之前的疑问:为何很多头部矿工们pre和prove消息的质押金额都是0?

通过第三部分,我们可以得到原因了:pre和prove所提交的质押费用都是预估值,除了可以每封装一个扇区,都向miner钱包提交预估初始质押费外,改为提前预存足够的初始质押费用。且通过修改代码,每一次提交pre和prove消息时,不再临时向miner钱包转账。


总结


正确计算初始质押成本的方式,是根据pre和prove消息提交的区块高度,去对应那个高度的“扇区质押量”,而不是直接累加pre消息和prove消息中提交的预估值。如何正确计算自己已花费的初始质押成本,你学会了吗?

写评论,请先登录