Motivations:
- Any miner who created a valid ATX will earn a reward without waiting for the next epoch.
** Receiving the money quickly is more user-friendly.
** No perverse incentive to create an ATX that gets published near the end of the epoch. - Incentivizing the miners to publish their ATXs in a uniform random layer.
** Avoiding a communication burst in which many ATXs are broadcasted in a short timeframe. - Clean in-protocol way to allow the miner to pay for a service by forgoing some of her ATX reward.
** Possible such services: PoET sequential work, k2pow, maybe delegated PoST initialization…
** Taking such a payment from the first-ballot-of-the-epoch reward is uglier (there’s more variance w.r.t. the total reward of the first ballot).
Disadvantage:
- Rewarding a miner who might never perform any useful work.
Parameters:
- p_{\text{atx}} = the portion the total revenues (that the miner earns in the epoch) that’s given as an ATX reward (for example, p_{\text{atx}} = 10%).
- d_{\text{atx}} = the length of the sliding windows (for example, d_{\text{atx}} = 20).
Method:
- UCB = unified content block
- The UCB of each layer L_j includes a list A_j of ATX identities (not specified as coinbase) that should be rewarded when the UCB of layer L_{j+d_{\text{atx}}} is done
** A_j should contain the ATXs that were broadcasted prior to the starting time of L_j
*** Honest tortoise proposals will list ATXs that were broadcasted and verified and haven’t been included in an earlier UCB
*** A_j is the union of the listed ATXs from the accepted tortoise proposals - Denote by R_j the total revenues of the UCB of L_j
** Let R'_j = p_{\text{atx}} \cdot R_j be the amount that L_j should contribute towards ATX rewards
** R'_j is shared equally among the layers L_j,L_{j+1},L_{j+2},L_{j+3},\ldots,L_{j+d_{\text{atx}}-1}, meaning that each of these layers receives the amount of R'_j/d_{\text{atx}} (formally defined via F_j notation next)
** Denote F_j = R'_j/d_{\text{atx}} + R'_{j-1}/d_{\text{atx}} + R'_{j-2}/d_{\text{atx}} + \ldots + R'_{j-d_{\text{atx}}+1}/d_{\text{atx}} as the final amount that will be used by layer L_j to give ATX rewards - At layer L_{j+d_{\text{atx}}} each ATX in A_j will receive F_{j+d_{\text{atx}}}/|A_j| reward
** This reward isn’t written explicitly in any of the UCBs, but it’s enforced by the protocol rules
*** This reward can be displayed in smapp and block explorers as soon as the UCB of layer L_{j+d_{\text{atx}}} is known
** In other words, each layer L_j gives rewards (that can be displayed) to ATXs in the list A_{j-d_{\text{atx}}} that’s part of the UCB of layer L_{j-d_{\text{atx}}}
** If |A_j|==0 then F_{j+d_{\text{atx}}} is burned
Notes:
- Overall, if we denote the total revenues of the epoch by T, then p_{\text{atx}} \cdot T is given to the miners in the form of ATX rewards (such that each ATX is rewarded once), and (1-p_{\text{atx}}) \cdot T is given to the miners in the form of proposal/ballot (and other) rewards.
- Miners are incentivized to broadcast their ATX at a uniform random layer.
** If all the miners (of the next epoch) broadcast their ATX before layer L_j, then their total ATX reward pool will be just F_{j+d_{\text{atx}}} rather than p_{\text{atx}} \cdot T, and each miner will earn only F_{j+d_{\text{atx}}}/|A_j| where |A_j| in very large. - The reason that the ATXs of layer L_j are rewarded in layer L_{j+d_{\text{atx}}} rather than layer L_{j+d_{\text{atx}}-1} is disincentivize rational miners from broadcasting their ATX when the mempool currently contains high-fee transactions.
- Upon launching this sliding window scheme, the 1st layer L_1 will confiscate the R'_1 = p_{\text{atx}} \cdot R_1 amount but won’t give anything back in ATX rewards, the 2nd layer L_2 will confiscate the amount R'_2 = p_{\text{atx}} \cdot R_2 and give back only R'_2/d_{\text{atx}} in ATX rewards, the 3rd layer L_3 will confiscate the amount R'_3 = p_{\text{atx}} \cdot R_3 and give back only 2R'_3/d_{\text{atx}} in ATX rewards, the 4th layer L_4 will confiscate the amount R'_4 = p_{\text{atx}} \cdot R_4 and give back only 3R'_4/d_{\text{atx}} in ATX rewards, and so on. Only starting at layer L_{d_{\text{atx}}+1} the layers will give back the entire amount that they confiscated.
** So, regarding just the first d_{\text{atx}} layers (all future layers afterwards are ok), we can simply burn the confiscated amounts, or specify a more complex rule. - The amount of each next sliding window can be computed efficiently by simply subtracting a single number R'_j and adding a single number R'_{j+d_{\text{atx}}-1}
** The division by d_{\text{atx}} can be done afterwards (as in the illustration) - With a phased PoET (as opposed to continuous PoET) there may still be a burst (depending on whether many miners finish the PoST proof generation at the same time), so the honest miner will perform a “random sleep” before broadcasting her ATX, where the duration of the random sleep depends on d_{\text{atx}} and the number of phased PoET servers.