Skip to content
On this page

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:

  1. Inputs:

    • difficulty: The difficulty of the Kaspa mined block.
    • dayNum: The number of days elapsed since the start of mining.
  2. 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

    golang
    KaspaCrossMiningBaseRewards = [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}
  3. Reward Phases:

    • Phase One: Day 0 to 2
      • Base reward: KaspaCrossMiningIncentiveBaseRewards[day]
    • Phase Two: Month 0 to 140
      • Base reward: KaspaCrossMiningBaseRewards[month]
    • Phase Three: Month 141 to Future
      • Base reward: KaspaCrossMiningBaseRewards[141] = 400 Wei

Reward Algorithm

The reward calculation is performed as follows:

  1. Determine Base Reward: Based on the timestamp of canxium block, the base reward and decay factor are selected:

    go
     if day < KaspaPhaseTwoDayNum {
     	baseReward.SetInt64(KaspaCrossMiningIncentiveBaseRewards[day])
     } else if month < KaspaPhaseThreeMonth {
     	baseReward.SetInt64(KaspaCrossMiningBaseRewards[month])
     } else {
     	baseReward.SetInt64(KaspaCrossMiningBaseRewards[KaspaPhaseThreeMonth])
     }
  2. Calculate Reward: Multiply the adjusted base reward by the difficulty:

    go
    reward.Mul(kaspa_block_difficulty/1000000, baseReward)
  3. Output: Return the reward as an integer value.


Incentive Model

The reward model is designed to:

  1. Encourage Early Mining: Higher rewards in the initial days incentivize miners and mining pools to participate early.
  2. 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:

Golang Implementation

Whitepaper has loaded