“Hello Admin, When Payout Tez?” Introduction to Proof-of-Stake in Tezos and Understanding Baking and Endorsement Rewards
As Cycle 17 approaches, we, at Cryptium Labs have been preparing internally for paying out the first baking and endorsement rewards to our delegators. Until now, I have encountered many questions regarding rewards and payouts.
Some of them are related to the baker’s service terms or policies: What is the percentage you charge as fees? How often does Cryptium Labs payout rewards? What is the expected (yearly) return if I delegate to Cryptium Labs? How can I make sure you pay me my rewards?
Some other questions go into specifics that require some basic understanding of the Tezos protocol as well as its economics. For example: Why do some bakers have a higher ROI than others? Does more delegation increase the likelihood to more baking and endorsement rights? What happens if my baker misses a block or an endorsement?
Preparing for the first payouts was a non-trivial process for our team that involved development, testing, and discussions on our bakery terms. We will cover our little adventure in another piece. For now, let’s start this brief walkthrough rewards and get answers to all these critical questions delegators might have!
Understanding Proof-of-Stake in Tezos
In blockchain literature, Proof-of-Stake (PoS) is a class of algorithms for systems to reach consensus. While most existing networks rely on Proof-of-Work (PoW), Tezos’ consensus mechanism is a variant referred as Liquid-Proof-of-Stake (LPoS), where the role of delegates (bakers) and delegators is crucial.
What is at stake?
Delegates or bakers in Tezos are entities that staked or bonded a certain amount of XTZ, which are at stake, meaning that if the baker acts maliciously or against the protocol by, e.g. double-signing a block, 512 XTZ will be lost per double-signed block. Similarly, if a baker double-endorses a block, 64 XTZ will be lost per double-endorsed block.
However, becoming a baker also means earning the right to participate in consensus, thus, becoming eligible for two main activities: baking (signing and publishing the next block of transactions) and endorsing (verifying last baked block), which are tasks that are rewarded as follows:
# Baking RewardsBLOCK_REWARD = 16 XTZ + fees (paid by all transactions included in that block)# Endorsement RewardsENDORSEMENT_REWARD = 2 / BLOCK_PRIORITY (could be 1 or 2)
Understanding Baking Rights
Baking rights are assigned (pseudo) randomly. Simply put, imagine the Tezos protocol conducting a lottery, where the prize is the right to bake the next block, and does it for every new block. For example:
In this lottery, there are in total 10 bakers, each of them holding a unique number (1–10). The next block level is
level 1. The protocol draws the first ball: 7. In this situation, one might be tempted to believe that
baker 7 will bake the next block. However, the correct way of reading this is that
baker 7 has
priority 0 for baking
level 1. For
level 1, the protocol is being precautious, in case the first baker is absent, so he continues drawing balls and writing the numbers down until he drew a total of 5 balls*. The results are:
Priority 0 : Baker 7 Priority 1 : Baker 3 Priority 2 : Baker 5 Priority 3 : Baker 9 Priority 4 : Baker 2
When the time to claim the prize (to bake block
level 1) comes and
baker 7 is absent (is not alive, not online for whatever reason),
baker 3 is next in line to pick up the prize. If the latter is also absent, the
baker 5 is able to pick up the prize, and so on. The protocol never sleeps and repeats the process for block
level 3, …
*This k = 5 is for simplicity, the actual protocol is a little bit more complicated than this, but I left it out for the sake of this example.
Assuming that the number of bakers is a constant of 10 and that all bakers mantain a perfect liveness (never miss any baking), in the long run, every baker will have the same likelihood of earning the baking rights. In this case, if there had been 1,000,000 blocks, each of these bakers ought to bake 100,000 blocks (1/10).
Nevertheless, in the short run, it might not be the case. Even if
baker 7 earned
priority 0 for
level 1, it can occur that at
level 2 the same baker is selected for
priority 0. If we would calculate the returns of every baker after
level 2, it would be clear that
baker 7 had produced higher returns than the other 9 bakers.
In real life, the number of bakers is not constant: at Cycle 0, there were 8 bakers, at Cycle 16 there were more than 150 bakers (https://tzscan.io/charts_bakers).
When an informative website showcases metrics such as ROI or returns, the differences from baker to baker can be caused by multiple metrics. For instance, the 8 foundation bakers might have, up to date, a higher rate of return than other bakers, because until Cycle 7 (were 17 other bakers came online), they were the only bakers in the network and their likelihood of being
priority 0 for baking was 1/8.
How the protocol determines (pseudo) randomness, for now, has been intentionally left out of scope (it is a fascinating topic, but too technical for this article). However, assuming that the protocol is not cheating, there are no mechanisms for bakers to influence their likelihood of being
priority 0 for the next block.
Understanding Endorsement Rights
For every block, only one baker is at the end entitled to bake it and earn the rewards. It is not the case for endorsements. Every block is associated with a list of 32 endorsers. Endorsers are (pseudo) randomly selected bakers that perform a verification of the last block. Let’s imagine that the protocol conducts a lottery again, this time, the rewards are the endorsement rights:
In this case, there are a total of 100 bakers participating in this lottery, each of them holding a number (1–100). For block
level 1, the protocol has to draw in total 32 balls. The first ball he draws is 7. He writes down the number and then he puts the ball back again into the box. He repeats the process until he has 32 numbers written, which are in the order of the balls he drawn:
Slot 01 : Baker 77 Slot 02 : Baker 31 Slot 03 : Baker 51 Slot 04 : Baker 23 Slot 05 : Baker 90[...]Slot 32 : Baker 77
Just like in this example, the same baker can be selected for more than one slot. How much every baker earns per endorsement depends on another factor:
ENDORSEMENT_REWARD = 2 / BLOCK_PRIORITY (could be 1 or 2)
BLOCK_PRIORITY is 1 when the baker who got baking rights
priority 0 actually baked the block. In this case, every endorsement would earn
2 XTZ in rewards (in this example, as
baker 77 had 2 slots, it earned in total
4 XTZ in endorsing this block. However, it could be that the baker with
priority 0 was not online at that time, meaning that next baker in line had now the right to bake. Should this be the case, every endorsement for that block would earn
1 XTZ (
2 XTZ in the case of
baker 77 following this example), as
BLOCK_PRIORITY would be 2.
If any of the bakers assigned to any the endorsement slot is not online at the time of the operation, the particular baker would simply not earn the rewards of that endorsement.
Tracking Priority Lists and Endorsement Slots on TzScan
You can check for the history of endorsements and upcoming baking rights and endorsements slots assigned to your favourite baker using TzScan. On TzScan:
TzScan → YourBakerPage → Bakings → Baking History / Endorsement History(click on the rows for the breakdown)
Availability & Control of Rewards
Both baking and endoresement rewards, after being earned by a baker, are locked for full
5 cycles (at least 14 days, 5 hours, and 20 minutes from the time those rewards were earned). Technically, a baker can pay its delegators the corresponding portion of rewards immediately after this period.
For example, if first bakings and endorsements happened in Cycle 11, those rewards will be unlocked as soon as Cycle 17 starts.
It is extremely important that delegators to understand the following: the protocol dictates that all rewards are sent to the baker’s account. This means that bakers have full control of the rewards and delegators have, technically, no control on the rewards they are entitled to. Some baker listing websites show the frequency in which every baker pays out, but bare in mind that there is always the risk of the bakers not fulfilling with this schedule and that your delegation implies trusting in your baker.
About Cryptium Labs and Information for Current and Potential Delegators
Brief Information of the Bakery Service
- 100% -10% (service fee)= 90% idealised network rate of rewards. Cryptium Labs covers for liveness faults. Even if we miss block bakings or endorsements and miss the corresponding rewards, delegators will still receive the entitled rewards (the losses are assumed by Cryptium Labs).
- Payments as soon as rewards are unlocked. We pay at every Cycle 0, as soon as the rewards are available after the 5 Cycle period.
- Payments go automatically to the corresponding KT1 address. From then onwards, the delegator in control of the KT1 address can decide what to do with those funds.
- Default compounding interest. Should the delegator leave the rewards earned in the same KT1 address, Cryptium Labs will automatically apply compounding interest.
How to Check My Past and Upcoming Rewards?
As most baking and endorsement rights are assigned many cycles ahead, we can estimate the amount of rewards a delegator will earn after every cycle proportional to their delegation. We are working on integrating this data feed into our website, for now you can view it on:
This repository is used as an open library for the blockchain community. We include letters, papers, analysis, etc, for…
How to Check the Estimated Annual Returns?
Christopher Goes has been working on a tool that estimates the rewards that you can earn on a yearly basis, depending on how much you wish to delegate. You can find the Tezos Reward Calculator here: http://tezos.cryptium.ch/calculator.
This application relies on TzScan APIs, which are constantly changing. The last time the Tezos Reward Calculator was debugged was on
20th Aug 2018. (Apologies for the CSS, we are planning to remodel the entire website soon).
To reach out:
- Telegram: https://t.me/tezos_cryptiumlabs
- Website: https://cryptium.ch
- Tezos Portal: http://tezos.cryptium.ch
- TzScan: https://tzscan.io/tz1eEnQhbwf6trb8Q8mPb2RaPkNk2rN7BKi8
- Twitter: https://twitter.com/cryptiumlabs