OPoW & RewardsBenchmarker Rewards

Benchmarker Rewards

Benchmarker rewards are the rewards earned by Benchmarkers for performing proof-of-work on challenges in TIG.

TIG operates on an Optimizable Proof of Work (OPoW) concept in which benchmarkers are incentivized to balance different factors evenly during the PoW process. The total rewards distributed for proof-of-work done by benchmarkers is a fraction BM%{BM\%} of the total block reward:


opow_reward_pool=block_rewardBM%\text{opow\_reward\_pool} = \text{block\_reward} \cdot \text{BM\%}

Where BM%BM\% is the percentage of the block rewards that gets shared amongst all the Benchmarkers (before deducting the share with the delegators), which is currently set to 70%. This means that 70% of the block rewards are shared among all benchmarkers.

Each benchmarker ii receives benchmarker_rewardibenchmarker\_reward_i from a block (before delegator deductions), where benchmarker_rewardibenchmarker\_reward_i is calculated as:


benchmarker_rewardi=opow_reward_poolinfluencei\text{benchmarker\_reward}_i = \text{opow\_reward\_pool} \cdot \text{influence}_i

The term influenceiinfluence_i represents how much proof-of-work benchmarker ii has performed and how well they have balanced their factors.

There are two types of factors which are used to calculate the influence of a benchmarker.

Factors are recalculated each block.

Challenge Factors

Challenge factors are derived from individual challenges. For each challenge xx, benchmarker ii has an associated challenge factor calculated using their qualifying solutions:


challenge_factori,x=num_qualifiersi,xtotal_qualifiersx\text{challenge\_factor}_{i,x} = \frac{\text{num\_qualifiers}_{i,x}}{\text{total\_qualifiers}_x}

Here, num_qualifiersi,xnum\_qualifiers_{i,x} is the number of qualifiers benchmarker ii has for challenge xx in the current block, and total_qualifiersx=inum_qualifiersi,xtotal\_qualifiers_x=\sum_i num\_qualifiers_{i,x}. If there are currently nn challenges, then each benchmarker has nn challenge factors — one for each challenge.

Qualifiers are determined using the Pareto Frontier mechanism.

Deposit Factors

Deposit factors are derived from TIG deposits. Each benchmarker ii has a self_deposit_factori{self\_deposit\_factor}_i determined by their own deposit and a delegated_deposit_factori{delegated\_deposit\_factor}_i determined by deposits delegated to them. These are calculated as follows:


self_deposit_factori=min{challenge_factori×1.2,self_deposititotal_deposit}\text{self\_deposit\_factor}_i = \min \Big\{ \langle\text{challenge\_factor}_i\rangle \times 1.2, \frac{\text{self\_deposit}_i}{\text{total\_deposit}}\Big\}
delegated_deposit_factori=min{challenge_factori×1.2,delegated_deposititotal_delegated_deposit}\text{delegated\_deposit\_factor}_i = \min \Big\{ \langle\text{challenge\_factor}_i\rangle \times 1.2, \frac{\text{delegated\_deposit}_i}{\text{total\_delegated\_deposit}}\Big\}

Note that challenge_factori\langle{challenge\_factor}_i\rangle is the average of the challenge factors and measures how actively a benchmarker is participating in the current block. The min\min function caps a benchmarker’s deposit factor based on their challenge performance.

Here self_depositi{self\_deposit}_i is the amount of TIG that benchmarker ii has deposited, delegated_depositi{delegated\_deposit}_i is the amount of TIG delegated to benchmarker ii through the delegated deposit mechanism, and total_deposit{total\_deposit} and total_delegated_deposit{total\_delegated\_deposit} are the total deposits and delegated deposits of all benchmarkers whose cutoff is non-zero.

Influence

To calculate the influence of a benchmarker ii, the following steps are performed:

  1. Collect the set of factors for benchmarker ii : {fj : fj is a factor}\{f_j ~:~ f_j ~\text{is a factor}\}.
  2. Compute weights wjw_j, and attribute each factor fjf_j with a weight wjw_j. The weights are normalised. The weights are the same for all benchmarkers.
  3. Compute the weighted mean and standard deviation of the factors fjf_j.
  4. Compute the weighted Coefficient of Variation CVi{CV}_i, square it and normalize CVi2W\frac{{CV}_i^2}{W} where W=1wwW=\frac{1-w^*}{w^*} with w=minjwjw^*=\min_j w_j.
  5. We then set the influence of benchmarker ii to be:

influenceifactoriexp{kCVi2W}\text{influence}_i \propto \langle \text{factor}_i \rangle \exp\Big\{ -k \frac{\text{CV}_i^2}{W}\Big\}

Note: In the above formula:

  • kk is a constant currently set to 1.51.5.
  • The exponential term is bounded in [0,1][0,1].
  • As CVi2{CV}_i^2 increases, the benchmarker is penalized for their imbalance, no variation means the exponential term takes the value 11 and the benchmarker is not penalized.
  • The factori\langle {factor}_i \rangle is the weighted mean of factors for benchmarker ii.
  • Weighting lets us:
    • Onboard new challenges smoothly.
    • Weight Deposit Factors differently from Challenge Factors.