Whitepaper
You are reading the latest version of Canxium Whitepaper
- Updated on Jan 26, 2025.
- Version: v2.6
Cross-Chain Retained PoW Mining Rewards Proposal
Kaspa Chain
Overview
Cross-Chain mining rewards with the Kaspa chain are calculated using a dynamic reward mechanism designed to incentivize early miners while gradually reducing the rewards over time. The rewards are based on the mining difficulty and the number of days elapsed since the beginning of the mining process.
The system is divided into four distinct reward phases, each with different base rewards and decay factors. This structure encourages early adoption while maintaining a sustainable reward model for long-term miners.
Reward Calculation Formula
The reward is calculated using the following algorithm:
Inputs:
difficulty
: The difficulty of the Kaspa mined block.dayNum
: The number of days elapsed since the start of mining.
Constants:
KaspaPhaseTwoDayNum = uint64(3)
KaspaPhaseThreeMonth = uint64(141)
Map from first 3 days to base reward:
KaspaCrossMiningIncentiveBaseRewards = [3]int64{600000, 400000, 200000}
Map from month to base reward: wei per params.KaspaMinAcceptableDifficulty difficulty, default 1000000
golangKaspaCrossMiningBaseRewards = [142]int64{183829, 91915, 45958, 25868, 23963, 23254, 22566, 21898, 21249, 20620, 20010, 19418, 18843, 18285, 17744, 17219, 16709, 16214, 15734, 15269, 14817, 14378, 13953, 13540, 13139, 12750, 12372, 12006, 11651, 11306, 10971, 10647, 10331, 10026, 9729, 9441, 9161, 8890, 8627, 8372, 8124, 7883, 7650, 7424, 7204, 6991, 6784, 6583, 6388, 6199, 6016, 5838, 5665, 5497, 5334, 5176, 5023, 4875, 4730, 4590, 4454, 4323, 4195, 4070, 3950, 3833, 3720, 3610, 3503, 3399, 3298, 3201, 3106, 3014, 2925, 2838, 2754, 2673, 2594, 2517, 2442, 2370, 2300, 2232, 2166, 2102, 2040, 1979, 1921, 1864, 1809, 1755, 1703, 1653, 1604, 1556, 1510, 1466, 1422, 1380, 1339, 1300, 1261, 1224, 1188, 1153, 1119, 1085, 1053, 1022, 992, 963, 934, 906, 880, 854, 828, 804, 780, 757, 735, 713, 692, 671, 651, 632, 613, 595, 578, 561, 544, 528, 512, 497, 482, 468, 454, 441, 428, 415, 403, 400}
Reward Phases:
- Phase One: Day 0 to 2
- Base reward:
KaspaCrossMiningIncentiveBaseRewards[day]
- Base reward:
- Phase Two: Month 0 to 140
- Base reward:
KaspaCrossMiningBaseRewards[month]
- Base reward:
- Phase Three: Month 141 to Future
- Base reward:
KaspaCrossMiningBaseRewards[141] = 400 Wei
- Base reward:
- Phase One: Day 0 to 2
Reward Algorithm
The reward calculation is performed as follows:
Determine Base Reward: Based on the timestamp of canxium block, the base reward and decay factor are selected:
goif day < KaspaPhaseTwoDayNum { baseReward.SetInt64(KaspaCrossMiningIncentiveBaseRewards[day]) } else if month < KaspaPhaseThreeMonth { baseReward.SetInt64(KaspaCrossMiningBaseRewards[month]) } else { baseReward.SetInt64(KaspaCrossMiningBaseRewards[KaspaPhaseThreeMonth]) }
Calculate Reward: Multiply the adjusted base reward by the difficulty:
goreward.Mul(kaspa_block_difficulty/1000000, baseReward)
Output: Return the reward as an integer value.
Incentive Model
The reward model is designed to:
- Encourage Early Mining: Higher rewards in the initial days incentivize miners and mining pools to participate early.
- Gradual Reduction: Decay factors ensure a smooth reduction in rewards, aligning with the decreasing issuance over time.
Below are the reward schedule for a 1 EH difficulty Kaspa block: