Filecoin挖矿奖励机制
简介
存储奖励是Filecoin经济的一个关键组成部分,它补贴存储提供者进行可靠和有用的存储容量并维护Filecoin区块链。
目前Filecoin中的存储奖励共11亿枚,其中30%由简单铸造生成,遵循六年减半机制,70%由基线铸造而成
Reward合约主要包含这三个方法:
1.AwardBlockReward 用于给区块生产者发放奖励,由区块中所有消息处理之后隐式调用,奖励分为两个部分:对应高度的区块奖励和区块中消息的Gas奖励
2.ThisEpochReward 用于获取对应高度的平滑区块奖励
3.updateNetworkKPI 用于更新下一个高度的奖励金额,在每个高度结束前由Power合约自动调用。如果当前高度未出块,则顺延上一个非空高度的奖励数额
1. AwardBlockReward
入参
type AwardBlockRewardParams struct {
Miner address.Address
Penalty abi.TokenAmount // 块中包含错误消息时的惩罚, >= 0
GasReward abi.TokenAmount // 块中所有Gas费的奖励, >= 0
WinCount int64 // 获得奖励的数量, > 0
}
修改链上状态
penalty = penalty*3 //Miner的惩罚放大三倍
totalReward = wincount * thisEpochReward/5 + GasReward // 计算奖励金额,由对应高度的区块奖励和区块中消息的Gas奖励构成
rewardParams := builtin.ApplyRewardParams{
Reward: totalReward,
Penalty: penalty,
}
调用合约ApplyRewards来释放奖励
2. ThisEpochReward
调用该方法不需要参数,直接返回当前Epoch对应的平滑区块奖励和基线算力。
如在PublicStorageDeals方法中,便会调用该函数获取当前基线算力,以确定发布交易需要的质押量。
3. updateNetworkKPI
在每个Epoch结束时,如果Epoch非空,会由power合约调用UpdateNetworkKPI,更新当前实际算力、有效基线算力,有效网络时间等,具体逻辑如下:
相关参数如下:
- NetworkPower是全网总算力随时间增长的图像
- BaselinePower是基线算力随时间增长的图像,满足b(t)=b0⋅e^gt,b0=2.5057116798121726EiB,g=In2/1yr
- cappedRealized.Power为实际算力,取基线算力和全网算力中的较小值
- cumsumRealized为累积实际算力,是到当前时间cappedRealizedPower的积分(图中红色阴影部分)
- cunsumBaseline为累积基线算力,当cumsumRealized>cunsumBaseline时,则向右推移时间t1,直至cumsumBaseline较大(图中绿色阴影部分)
- effectiveNetworktime为有效网络时间,是cunsumBaseline对应的时间
- effectiveBaselinepower为有效基线算力,是effectiveNetworktime epoch对应的基线算力
区块奖励铸造逻辑
-
Filecoin区块奖励占FIL总供应量的55%,共1.1×10^9FIL。其中30%用于简单铸造,70%用于基线铸造
-
简单铸造
- 简单铸造保证了早期参与Filecoin的存储提供者,获得的奖励更高
- .基线铸造
基线铸造
小结
随着时间推移,新矿工不断加入以及IPFS/Filecoin技术与生态的不断发展,全网有效算力将会越来越高,目前每天的释放量已呈现逐渐降低的趋势,随着越来越多人的参与Filecoin挖矿,单T收益将呈现不可逆的下降趋势。