Staking and Voting on WAX: A Technical Deep-Dive
This is our fourth communication regarding the WAX Blockchain and Protocol Token release, following last week’s overview of WAX Block Rewards, staking and voting, guilds and more. For all news related to the WAX Blockchain mainnet and protocol token release, click here.
Last week we introduced an overview of WAX Block Rewards, staking and voting, and guilds. In this post, our WAX Blockchain Development team takes you through a technical deep-dive of those features including:
- How WAX differs from EOS in the areas of staking and voting
- Calculating stake weight
- Calculating WAX Staking Baseline Rewards
- Calculating WAX Guild Rewards
- Standby Guild readiness requirements
- WAX Guilds at the WAX Blockchain mainnet launch
Staking and Voting: WAX vs. EOS
WAX differs from EOS in several distinct ways:
Calculating Stake Weight:
As we mentioned in a previous post, voter apathy is a concern for DPoS blockchains. We’ve seen how other DPoS blockchains have been adversely affected by lack of voting. To drive community interest in the voting process, we’ve developed WAX Block Rewards. The amount of WAX Block Rewards that a staking WAX Token holder earns is based on their current stake weight. Stake weight for voter i is calculated as:
The above stake weight calculation is similar to EOS’s function, but it’s accelerated to a 13 week half life for WAX instead of the 52 week half life for EOS (if you notice in the equation, we replace double(52) with double(13) in the denominator of weight).
In the last post, we simplified this calculation by stating vote strength was bounded between [0,1]. In the actual implementation, vote strength increases with new votes having more strength than old votes. Thus vote strength doesn’t decay, but new votes have increased weight. Each week, vote strength grows at 5.4766%, and in 13 weeks new votes will double in strength. In contrast, vote strength on EOS grows at 1.34% weekly, and new votes double in strength every 52 weeks. We’ve accelerated the decay rate to encourage WAX Token holders to return to the platform and vote regularly. While EOS uses stake weight only for voting, WAX also uses it to calculate Staking Baseline Rewards (and in the future, other types of WAX Block Rewards).
Calculating Daily WAX Staking Baseline Rewards:
Staking Baseline Rewards and other WAX Block Rewards mechanisms combined equal 2% annual inflation (i.e. 40% of the total annual inflation). At launch, Staking Baseline Rewards will be 1% annual inflation (i.e. 20% of the total annual inflation).
The following equations are used for calculating a voter’s daily Staking Baseline Rewards (note: details on average guild performance are in the next section).
Calculating stake weight:
We can calculate the stake weight for a voter who has 10,000 staked WAX Protocol Tokens and votes on June 30, 2019.
Calculating total stake weight:
Total stake weight is defined as the sum of all voters’ stake weight.
For simplicity, we will assume all users vote on June 30, 2019 (i.e., everyone has the same vote strength of 2⁷⁸.24). At launch, there will be 1,850,000,000 WAX Protocol Tokens eligible to be staked.
Calculating average guild performance:
Average guild performance will be set to 100% (or 1) at launch.
Calculating a voter’s daily Staking Baseline Rewards:
In this example, we assumed that every user would vote at the same time. It is easy to show that if the WAX Token holder has been slower to refresh their votes relative to all other voters, then the holder’s rewards would decrease.
In summary, it is important to refresh your vote and to vote for at least 16 different guild candidates. This enables you to maximize both your Staking Baseline Rewards and your vote’s power since your guild vote counts more if you refresh your vote.
Calculating WAX Guild and Standby Guild Rewards:
Guilds and standby guilds will share rewards equalling 2% annual inflation (i.e. 40% of the total annual inflation). This amounts to 74,000,000 WAX Protocol Tokens annually (3,700,000,000 * .02) or 202,739 WAX Protocol Tokens daily. The 21 WAX Guilds will share 60% of the reward pool, and each WAX Guild is expected to earn 5,792 WAX Protocol Tokens per day if they produce all their scheduled blocks. The 36 standby guilds will share the remaining 40% of the reward pool, and each standby guild is expected to earn 2,252 WAX Protocol Tokens per day if they produce all their scheduled blocks.
To encourage WAX Token holders to vote for the highest quality WAX Guilds to produce blocks on the WAX Blockchain, in the future Staking Baseline Rewards will be tied to the performance of the WAX Guilds that the WAX Token holder is voting for (this is not reflected in the above example since it will not be live at launch).
If a WAX Guild that you voted for is underperforming, your Staking Baseline Rewards will decrease.
Your Staking Baseline Rewards are scaled by the performance of the WAX Guilds you vote for:
Recall the function to determine a voter’s Staking Baseline Rewards proportion:
Therefore, if the WAX Guilds that you vote for only produce 90% of blocks scheduled to them, your Staking Baseline Rewards will be 90% of the maximum possible amount. If the WAX Guilds that you vote for produce 50% or less of the blocks scheduled to them, you will not earn any Staking Baseline Rewards in exchange for voting for them. In addition, these WAX Guilds will not be paid their WAX Guild Rewards if they produce 50% or less of their scheduled blocks.
This formula applies to standby guilds as well. This means the vote you cast for a standby guild will receive the same potential reward as the vote you cast for a guild that becomes one of the top 21 (i.e. a WAX Guild). This makes you agnostic as to whether a guild that you vote for is likely or not to be one of the 21 WAX Guilds. We want WAX holders to cast their vote for the guild they believe best represents them, without being penalized.
If you proxy a vote to someone who votes for underperforming WAX Guilds, your Staking Baseline Rewards are diminished since your rewards are calculated based on the WAX Guilds that a proxy selects for you. Please note that a proxy cannot refresh your vote weight when they vote on your behalf; rather, you must refresh your vote for the proxy you choose in order to regain full vote weight capacity, and consequently, to regain full Staking Baseline Rewards capacity.
In the future, a proposal could be submitted to hire an independent inspector general to judge WAX Guild performance. Voters could incorporate this performance reporting from the inspector general in their selection of WAX Guilds and standby guilds.
Standby Guild Readiness Requirements:
Standby guilds are critical to ensuring a robust network with maximum block production capacity. We will allocate 1% of all blocks to be produced by standby guilds. These blocks will be allocated in a pseudorandom manner to the standby guilds. This compels standby guilds to maintain 24/7 uptime since they cannot predict when they will be assigned to produce a block. It also allows for voting on standby guild members.
EOS allows anyone to represent themselves as a standby block producer. Although there are suggested hardware requirements to operate an EOS block producer, there isn’t a test to determine if all producers can actually produce a block. If a lower quality standby producer is voted into the list of top 21 block producers, it is possible that the lower quality producer will be unable to produce its assigned blocks resulting in lower chain performance.
The lower quality producer, however, would still get paid a share of the block reward. EOS block producers and standby producers share 0.75% inflation based on the number of votes they receive. This may give incentive for lower quality producers to promote themselves as a producer without having sufficient block producing capabilities.
The WAX Blockchain uses three mechanisms to address this problem. First, WAX standby guilds must prove their ability to produce blocks in order to be included in the pool of 57 qualified guilds (21 WAX Guilds + 36 standby guilds). Second, as with WAX Guilds, WAX standby guilds are penalized if they can not produce at least 50% of the blocks assigned to them. Lastly, because staking incentives are tied to guild performance, token holders will be economically encouraged to direct their votes to higher performing guilds.
WAX Guilds at WAX Blockchain Mainnet launch:
The WAX Blockchain is optimized for e-commerce and digital items trading. When coupled with our forthcoming microservices layer, we believe the WAX Platform provides the best business and usability experience for dApp developers and customers. To accomplish this result, we have made significant enhancements to the EOS codebase. We are excited to share all the valuable capabilities that can be powered on the WAX Platform. However, we are also keenly aware that WAX’s specific combination of custom features, governance protocols, and community incentives is brand new for a DPoS-based blockchain. Accordingly, we will roll out these features over time to ensure that the WAX Blockchain ultimately will self govern in such a way that productive feature enhancements can be easily proposed and timely activated.
As we gradually roll out the self-governance features and incentives, WAX and StrongBlock, a company comprised of founding technical team members of Block.one, the creators of EOS, will initially run the 21 WAX Guilds.
Because WAX and Strongblock will run the genesis phase of the network, we will not require standby guilds initially. However, we are eager to have more WAX Guilds onboarded as quickly as possible so that eventually all guilds are run by the community. For that reason, guild candidates can begin submitting proposals on June 30, 2019. We will release instructions for applying to become a guild, and specifics on the number of WAX Tokens to be earned from WAX Guild Rewards, before mainnet launch.
Let us know what you think by joining the WAX community:
Disclaimer: WAX reserves the right, at its sole discretion, to modify, change, edit, alter, delete and/or replace the terms of the launch of, and other information concerning, the WAX Mainnet found in this post at any time and without notice. You are encouraged to check the latest information on the launch of the WAX Mainnet on the WAX website at https://wax.io/.