EOSCommunity.org Forums

Stake-Based Voting and Rewards: A Proposal to Increase Economic Alignment between EOS Participants

This post is a summary of Block.one’s thoughts regarding the Stake-Based Voting and Rewards mechanism. The Prysm Group’s economic analysis can be found in the white paper.

As many know, we are a participant in the EOS public blockchain community and we believe EOS is poised for explosive economic growth in the coming months and years because it remains one of the most advanced public blockchain networks in operation today. On top of technological prowess, EOS is one of the most aligned platforms available with regard to the interests of its participants because the platform consistently prioritizes the token-holder. EOS governance has continued to manifest this through the recent adoption of the new PowerUp resource model in which PowerUp fees are paid back to all token-holders who opt to receive them.

To contribute to the ongoing effort of achieving incentive alignment between network participants, Block.one engaged Prysm Group, a leading consulting firm specialized in the economics and governance of blockchain and digital assets, and has developed a proposal that addresses network inflation, as well as the structure of block producer pay and performance. Today, we’re releasing the economic analysis that was produced as a result of that engagement. This report is meant to begin a conversation and its suggestions are not prescriptive. We are concurrently releasing a software testing program in order to collaborate with the rest of the EOS community on the model and the underlying code. For the sake of starting the conversation, we are publishing possible parameters for the model but ultimately those choices must be made by consensus.

Staking Rewards for Voters

Today, elected Block Producers and Standby Producers are awarded each day with newly issued EOS tokens in the amount of 1% of the total supply per annum. This is commonly referred to as inflation. This 1% inflation is divided among different Block Producers based on their rank. Underpinning this ecosystem of block producer candidates are the voters who delegated their stake to Block Producers, who do not receive rewards directly from the system. This delegation of stake is necessary to secure the network, and is the namesake function of DPoS, or Delegated-Proof-of-Stake, the consensus model upon which EOS is built. So, while voting is necessary and voters incur costs by voting, such as loss of liquidity, they are not necessarily rewarded in kind. This is not as aligned as it could be.

Proposal: We are proposing a staking pool system that can directly reward token-holders in exchange for their vote (required) and securing the network.

Token-holders who elect to receive staking rewards will be required to vote for at least 21 block producer candidates or proxy their vote to a registered proxy.

Through this method, voters can be rewarded for their participatory role in securing the network itself and remunerated for the cost of that participation. We believe this further increases the alignment between the economic success of the network and the token-holder, and also positions EOS more competitively as a store and transfer of value platform.

As a starting point, Prysm has generated example parameters for how this staking pool could be configured, but the ultimate configuration is up to the rest of the EOS token-holders to decide should they opt to move forward with this proposal.

  • Overall system inflation rate: 1.2% to 3.8% annually (includes block producer rewards).
  • Block Producer share of inflation: At least 32% of total inflationary rewards, depending on rate of overall inflation, based on the above overall inflation range. Specifically, this share should represent 1.2% of EOS total supply annually. Both producing and standby Block Producers will share in these tokens.
  • Staker share of inflation: At most 68% of total inflationary rewards, depending on rate of overall inflation, based on the above overall inflation range.
  • Withdrawal limitations: To the extent the EOS community deems limitations on withdrawal beneficial, a withdrawal cadence of once every 7 days, with a per-withdrawal limit of 67% of staked funds; otherwise, a withdrawal cadence of once per day, with no per-withdrawal limit.

Block Producer Rewards

Block Producer rewards can vary widely based on rank. On one end of the reward spectrum we have the top 21 who benefit exclusively from 25% of all block producer rewards on EOS in exchange for actively producing blocks. The Top 21 earns this in addition to their pro rata share of the voting rewards, which comprises the other 75% of total rewards issued and is not exclusive to the top 21. This concentration of 25% of rewards makes sense on its face; producing blocks is active work and should be rewarded. But in practice, the difference in rewards between #21 and #22 is ~40%, despite #22 running nearly identical infrastructure in the case that they are rotated into live production and having less than a half a percent vote difference between them. The top 21 pay cliff has created a vote concentration which exacerbates this reward gap. Despite ~65 rewarded block producers (block producer and standby block producer candidates), the top 21 Block Producers receive an estimated 56% of all votes across actively rewarded block producer candidates, and 72% of all rewards issued per day. For example, between #22 and #26, where there is a significant vote gap, there is 30% drop in rewards.

Proposal: To reduce this gap we are proposing the removal of bpay rewards and instead propose to distribute all rewards through vpay.

Proposal: To help facilitate a healthy distribution of vpay rewards all votes must include 21 block producer candidates.

Block Production is a cooperative effort between all candidates to ensure blocks are produced smoothly. Despite that, there is no real-time accountability measure baked into the technology to ensure this cooperation.

Proposal: We are proposing that Block Producers who underperform, or fail to produce blocks at their designated time, will create a penalty effect that decreases the total inflation in the system.

This means that if Block Producer A fails to produce then the rewards for all Block Producers and token-holders who are voting/staking also drops for a period of time. When all network participants are affected then we are more likely to see a rapid response from voters to adjust their votes (who now participate in inflationary rewards directly) and fellow block producers to be available to cooperatively diagnose any issues that may be present. To help aid in increasing the efficiency of handoffs between block producers within the schedule, we are proposing that schedule ordering be modified from alphabetical order to declared location order. In this way we incrementally reduce handoff difficulty and decrease the likelihood that blocks are missed and inflationary penalties are enforced.

We believe that if the EOS community adopts these proposals, then together they will spur economic growth and increase alignment between all network participants. In addition, we see an opportunity where groups of token-holders may choose to pool their rewards in order to support a particular purpose, such as supporting a public good that can benefit the network as a whole. There are many dynamics and variables at play in this model and we encourage all community members to discuss the model openly and share feedback through the testing program we have released.

We will add participation in this process of testing and feedback to our discretionary voting criteria to encourage block producers to engage with testing this model. We ask that Block Producers publish their opinions and submit them through our feedback form, in order to further develop the conversation about this proposal and to be considered for our associated voting program.

Please review the Stake-Based Voting and Rewards Mechanism code here.

Please submit bug bounties here.

Read the economic analysis white paper here.

Important: All material is provided subject to this important notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions, relating to our software, publications, trademarks, third-party resources and forward-looking statements. By accessing any of our material, you accept and agree to the terms of the notice.

12 Likes

No staking pools in this proposal? I thought that was at the heart of the new staking vision.

1 Like

This is what Kevin Rose said: “We spent a lot of time conducting analysis on staking pools and the yield curve. One major reason it did not work is that there is not enough computational time in a block to be able to run the calculations required to maintain an ever changing ledger of pro-rata share of inflation that a particular pool would award. The pool contract would not be able to account for every user’s entry and exit into and from the pool and then adjust the share of inflation accordingly. It is not technically feasible to implement maturity dates because of this. Because there are no maturity dates, all pools would eventually hit an equilibrium with one another where they would all pay out the same rates, negating the need for multiple pools in the first place.”

4 Likes

I promised to get back with you on this so I followed through.
I really think the community should pivot from rewarding token holders with inflation and focus on using the inflation for EdenOS perhaps. The stake reward system as proposed will cause more problems in my opinion.

1 Like

I agree with your last statement based on what Kevin has claimed in that these time/maturity stake position dynamics are not feasible.

Thanks for getting back w me.

So we have to trust Kevin, even though the original idea sprouted from Dan long ago. Kevin and his legacy EOS NY team are surely competent. And now with his B1 team, we can trust his final answer on this.

But, I would like @bytemaster to concur that this is not possible. Would be a nice to have.

Or, at least have Dan comment on whether or not the original idea is obsolete based on potential solutions in the new proposal.

The latest proposal does not appear to make much of affect on exchanges using their patrons tokens for power, but I may be wrong. I’m not in a position technically to be able to do the math unfortunately.

2 Likes

Pasting my thoughts from Telegram here:

I finished reading the full proposal.

Overall I think there is many good ideas such as punishments for missed blocks and ordering bps based on region to reduce latency and forks. Removing block pay.

Most POS chains have some vote/delegation rewards built into the base layer, so adding this functionality is good in my opinion. The percentage added should be fairly small, less than 1%. It does not solve problems but it does help improve the rewards situation.

Unstaking time probably should be at least two weeks, polkadot is 28 days, we could do that.

The proposed codebase seems like it needs a lot of work, it’s basically going to need a rewrite. Hopefully this upgrade can be done without the need to migrate everyone to yet another system.

My largest issue with this proposal is the way it was built with zero transparency, asking the EOS community to wait patiently for a long time for a product that clearly still needs plenty of iteration and work.

This is not the correct way to engage with a global public community. We could have built and deployed a better solution in an open collaborative process in the time we have spent waiting. The problem is no one dares to compete with B1, and lack of communication from B1 discourages grassroots production.

6 Likes

So as it seems implementing staking pools exactly in the way Dan originally presented (bonds with individual expiration dates calculated for each user) is really unfeasible.

But it should be possible to implement staking pools with simple unstaking process we have currently, only with longer time periods. I personally would even go as far as giving longer time locked pools bigger % of voting power.

As for the Dans latest available opinion on this whole matter - it is expressed in this blog post

However @bytemaster I don’t agree that derivatives are equally as useful and as desired as the base asset they’re derived from. Derivatives are not a magical tool that can be easily used without anyone bearing consequences and being worse off in the end. So using this as an excuse to completely abandon long term staking pools idea is weak in my opinion.

I think two factors need to be considered:

1.the EdenOS’s fund needs, may 0.25% inflation

2.The potential large increase of EOS value(price) will give BPs much more income, which I think may mainly driven by EdenOS and new prosperous DAPPs. So the base price for calculating reward of about 3.0 EOS/USDis too low,take the recent year’s price up of ETH and main other cryptocurrencies more than 10 times for reference, and EOS’s No.1 comprehensive capability, the base price for calculating need to be at least 15.0 EOS/USD (=half of 3.0*10).

So the BPs’ reward should not be inceased more than 1% (the current inflation rate). And the total inflation should not be more than 2%, otherwise, EOS may fall in critization on inflation just like legal tender.

2 Likes

The proposal to have inflation at 3.8% with 1/3 to BPs and 2/3 going to Rex, No Lockup periods, removal of Bpay and implementation of penalties for missed blocks seems to be a solid take. What do you guys think? consensus?

2 Likes

It’s awful, unjustified banana style inflation and especially completely removing lock ups is a disgrace. This agenda is pushed by scavenger BPs/token holders looking to juice the chain short term to the fullest.

How will missed blocks be measured?

Is there an existing on-chain mechanism to track missed blocks?

Since it’s privileged, the system contract knows when each block is produced

great! so how does the system contract actually know if a BP has missed a block? is there an example somewhere?

Nodeos creates a transaction with an onblock action automatically at the beginning of every block. eosio.contracts/producer_pay.cpp at master · EOSIO/eosio.contracts · GitHub At this point in the code, the system contract has both the timestamp of the previous block, and the block’s producer. From that it can collect whatever statistics it needs.

1 Like

If there are no missed blocks, the timestamps will be exactly 0.5s apart. Each missed block will add an additional 0.5s to the time since the previous block.

1 Like

Thank you @tbfleming for the prompt and detailed response. I am glad there is a way to detect missed blocks objectively and in a way that is easily verifiable.

I was only aware of methods that calculated missed blocks stats off-chain by comparing schedules with historic data.

After reading many responses and thinking through things, I am actually against the proposal to increase inflation. Increasing inflation to reward token holders for just voting will:

  1. Further concentrate power to those who have custody of more tokens.

  2. Reward people who are not creating significant value to grow the EOS community as a whole.

  3. Start a ponzi scheme which will lure people into the EOS Community for the pump. While this might sound like a marketing strategy, this might be bad for the EOS community in the long run.

  4. Create a future of uncertainty. (It will set precedence for future Top 21 Block producers to adjust inflation easily without community consensus due to rich token holders taking over the network. We have to “assume” that not all top 21 producers will want what is best for the network. Some are in to make money and money only)

  5. Devaluation of EOS currency in the long run.

My suggestion:

  1. Leave the 1% inflation to Block Producers as-is. Implement penalties for missed blocks. Leave Rex as-is (as EOS grows organically from within and the fundamentals are sound, the yield will increase for token holders who have staked). Leave the time delay in Rex in place as this serves as a security feature for some community members.

  2. When topics are being discussed with community members, Block producers and authors of articles have to explain things in layman terms. Members of the EOS communities are from all walks of life. Not all members are lawyers, game theorist, computer engineers, philosophers, English professors, economist, accountants, physicians etc. For the community to be able to consent and build consensus on these tough topics, all discussion has to be plain, simple, and transparent.

  3. Wait for Eden OS to mature and use its governance method to help build consensus on topics like these

  4. Discuss amongst ourselves if consumption Tx Tax can be implemented to help build the EOS community instead of inflation. (using Eden OS)

3 Likes

We have had numerous discussions on this topic about the stake pools. To best satisfy all the EOS community members, I say we:

  1. Set inflation to ~ 0.7% to stakeholders for everyone (Even though I can’t entirely agree with rewarding stakeholders, I think it is a good compromise)

  2. Inflation to Eden (we need to send 2% to Eden to help build applications and Market EOS Mainnet)

  3. Two staking pools (same 0.7% inflation for both pools).

a. Instantaneous pool with 1x voting power
b. One month withdrawal limit pool with 4x voting power

  1. In the future: possibly experiment with (assuming Eden on EOS demonstrates it is trustworthy), allow the token holders (with no time delay) to rank BP’s. Then the Eden board (or maybe one layer lower) would vote to select among the qualified BP candidates who should be the standby set and the active set.
1 Like

Here is my economic analysis of B1’s “Stake-based voting and rewards proposal”:
https://james-mart.medium.com/economic-analysis-of-block-ones-stake-based-voting-and-rewards-proposal-ce2d3d078349

Tl;dr: Overall it’s a great proposal. It helps with many aspects of incentive alignment and would benefit the EOS community if adopted. I also propose adding 1T1DV into this proposal.

1 Like


With a little adjustment, I think this economic alignment will work great.
The adjustments:

  1. Only rewards the staked eos tokens that do not vote to BPs. Directly or Indirectly, BPs will pay for the tokens which voted to them.
  2. The staked tokens that do not vote to BPs can select to delegate to eden proxy or just staked.
  3. Eden can only vote the negative vote to BPs which abusing their responsibility. And how many eden can vote depend on how many staked token selected eden. Yeah, I think it is great to think eden is a special vote proxy.

If BPs abuse their responsibility, eden can send the negative vote to take them out. If eden does not work well, no tokens will select eden. If so, the system will works great!

1 Like