Code Monkey home page Code Monkey logo

economics's People

Contributors

skcin avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

easyxps

economics's Issues

Constant Block Reward (CBR) Value Proposal and Poll

Reddit Thread

Steemit Thread

CCT Thread

Introduction

The following is the work of a group of community members who explored the Gridcoin economic and incentive systems and the protocol code, defined formulas, and wrote this CBR proposal. Work began in February 2018. Conversations took place primarily on slack, though consideration was given to threads on steemit, reddit, CCT, and GitHub. This proposal would not have been possible without the dedication of the following community members: @jamescowens, @hotbit, huppdiwupp(@skcin), @noah-blaker, @barton26, and @Jringo. Additional contributions came from @TheGoblinPopper. Further contributions came from throughout the community during this months long process.

Overview

Constant Block Reward (CBR) has been voted on and approved by several polls and one previous proposal. We intend to propose definitions for the implementation parameters for CBR. In doing so, we also briefly discuss the differences between interest mechanisms and block reward mechanism.

We propose defining CBR value based on the percentage split between GRC minted by research-mint (RM) and stake-mint (SM). In other words, of 100% of the GRC to be minted per year, X% will be minted by research-mint and Y% will be minted by stake-mint. As we cannot change the number of GRC minted by research at this time (currently 10,220,000 GRC/year), the split definition we agree on will also define the total number of GRC minted per year. It may be possible to change the number of GRC minted by research at a future date.

We present five options based on five different RM/SM splits. Each split option is presented with its corresponding CBR value as determined by the calculations detailed in the section, Proposal, and rounded to the nearest whole number.

The poll is an eight week poll made by an author of this proposal and taking place in the Gridcoin client.

Start time: 11 April 2018, Midnight UTC

End Time: 6 June 2018, Midnight UTC

The validation of this proposal will require 25% or more of "Active Vote-Weight" participation as defined in the section, “Validation.”

Question: What Research-Mint/Stake-Mint split and corresponding block reward do you support?

  • 65/35 with a 16 GRC block reward

  • 70/30 with a 13 GRC block reward

  • 75/25 with a 10 GRC block reward

  • 80/20 with a 7 GRC block reward

  • 85/15 with a 5 GRC block reward

  • Reject Proposal

  • Abstain

Rationale

Introduction

In order to encourage nodes to participate in a blockchain network, rewards are distributed to the node which successfully compiles a block and adds it to the blockchain. Gridcoin uses a proof-of-stake protocol for this process. There are two popular reward mechanisms for proof-of-stake protocols: Interest and block reward.

Interest Mechanism - Example: Peercoin

Interest is a mechanism which guarantees an Annual Percentage Rate (APR) on a coin minted by a blockchain protocol. Interest reward mechanisms do not reward a node for staking a block, rather a node receives the accumulated interest of the coins used to stake at the time of staking. The actual reward for staking a block with interest mechanisms is the transaction fees associated with the block staked. Transaction fees are also a reward in the block reward mechanism. It is possible to implement demurrage protocols on top of interest reward schedules, however this is out of the scope of this proposal.

Gridcoin’s current implementation of interest reward is 1.5% interest.

Benefits to Interest Mechanisms

For mature blockchains, interest from a blockchain serves as a reliable and relatable alternative investment vehicle for entities. Rather than using banks, bonds, stocks, and other traditional investment vehicles, an entity can place their confidence in a blockchain and receive a protocol-defined return on investment.

Drawbacks to Interest Mechanisms

Interest mechanisms do little to incentivize a user to secure the blockchain. This effect is compounded in blockchains which process a minimal number of transactions, meaning incredibly limited transaction fees as rewards for staking a block. This can prove to be detrimental to the security of the blockchain.

Block Reward - Example: Blackcoin

Block reward is a mechanism which guarantees a protocol-defined reward for staking a block.

Benefits to Block Reward

A block reward demands that an entity wishing to receive an APR-equivalent on their holding consistently contributes to securing the blockchain by staking with a balance. This provides greater blockchain stability and security.

Drawbacks to Block Reward

The cost to a node for building a block for a proof-of-stake system, such as Gridcoin, is the time, hardware, and electricity required, combined with the security issues involved in leaving a wallet with a balance connected to the network. It is understandable that an entity would rather receive a reward without exposing itself to the cost of staking, however without blockchain security, there is no network. Fortunately, the proof-of-stake algorithm in Gridcoin is very efficient and consumes little CPU, although running the node and staying up-to-date with the blockchain consumes a moderate amount of network resources.

Additionally, while maintaining the practical utility of an APR tool, block reward replaces the traditional and understood idle-APR mechanism with an active APR-equivalent mechanism based on estimated stakes per years. Active APR is more difficult to understand. This is not necessarily a drawback. It is more an education barrier.

Finally, incentivizing a greater network staking balance might result in more competition for staking blocks. This could raise the minimum balance required for staking within a reasonable time-frame. GRC currently depends on staking to release a user’s Earned Research Reward (ERR) from their Research Savings Account (RSA). This drawback must be considered in relation to the benefit of added overall network stability and security. It is also worth noting that possible solutions to the ERR problem, such as Manual Reward Claims (MRC), are being actively explored.

Countless hours have been spent determining the effects on staking and rewards CBR will bring. @jamescowens, @hotbit, and huppdiwupp have been leading this discussion. An overview is explored in the section “Expected Effects” with additional resources in "Further Reading."

Proposal

The current percent interest mechanism does not incentivize Gridcoin participants to maintain an active GRC balance on the network. This is a combination of minimal transactions performed on the blockchain and the lack of a demurrage system to encourage active participation. It is imperative that we develop and implement a reward mechanism that ensures the security and integrity of the Gridcoin ledger. We propose the following block reward mechanism defined as Constant Block Reward (CBR).

Constant Block Reward

Constant Block Reward will implement a static, protocol-defined GRC reward for staking a block.

Our Process

This proposal was developed over the course of several months and informed by multiple previous discussions regarding block reward mechanisms. The conversation took place in the #economics channel on the Gridcoin slack with consideration given to posts on CryptoCurrency Talk, Reddit, Steemit, and GitHub.

Ultimately, we decided on three major priorities:

  1. Ease of implementation
  2. Economics: The percentage split of GRC minted by research-mint (RM) vs. stake-mint (SM)
  3. Inflation management: Overall monetary inflation rate of the new reward mechanism

Guidelines

We operated under the following guidelines:

  • We are a protocol-defined inflationary currency.
  • The tools we are working with at this point in time are mint by research-mint (RM) and mint by stake-mint (SM).
  • We can have four possible implementations:
  1. Static RM with dynamic SM
  2. Dynamic RM with static SM
  3. Static RM with static SM
  4. Dynamic RM with dynamic SM
  • The results of our implementation will cause either:
  1. A static (target) inflation rate
  2. A dynamic inflation rate

Priorities

We prioritized ease of implementation resulting in the decision to use implementation option 3: static RM with static SM. This choice defined the inflation rate as dynamic and predictably disinflationary, meaning that the inflation rate will start at some percentage and predictably decrease as the number of GRC in circulation increases at a set rate over time.

Current Economics

Next we set out to determine the current approximate GRC minted, RM/SM split, monetary inflation rate, and a corresponding CBR value. Final formulas and figures are in bold.

Current GRC minted by RM

As we do not wish to focus on the number of GRC minted by research-mint at this time, our first step was to find and define the number of GRC minted through RM so we could appropriately define the total GRC minted annually, and the approximate percentage minted by the current 1.5% SM protocol. We determined that:

Kitty = MaximumEmission - (network.payments/14)

MagnitudeUnit = (Kitty/TotalNetworkMagnitude)*1.25

  • Network.payments is the total research payments made in the network over the last 14 days.
  • MaximumEmission is currently 50000.
  • (1) and (2) are mutually interdependent, because the network payments depend on the magnitude, which depends on the Kitty. They interact to provide a “smoothing algorithm” to smooth out the “noise” in magnitude and provide more consistent payments.
  • To determine the actual daily RM, we will assume there is no “noise” and each day’s payment is the same. This forms an equilibrium equation...

Solving (2) for Kitty and substituting into the left-hand side, and using the fact that level network payments for 14 days would be 14*(TotalNetworkMagnitude)*(MagnitudeUnit):

(TotalNetworkMagnitude)(MagnitudeUnit)/1.25 = (MaximumEmission) - (1/14) * 14(TotalNetworkMagnitude)*(MagnitudeUnit)

This simplifies to:

(TotalNetworkMagnitude)(MagnitudeUnit)/1.25 = (MaximumEmission) - (TotalNetworkMagnitude)(MagnitudeUnit)

And rearranging:

(1+1/1.25)(TotalNetworkMagnitude)(MagnitudeUnit) = (MaximumEmission)

The equilibrium quantity

(TotalNetworkMagnitude)*(MagnitudeUnit) is the (Daily RM)

Therefore:

(9/5) * (Daily RM) = (MaximumEmission)

Or:

(Daily RM) = (5/9) * (MaximumEmission)

As (MaximumEmission) is defined as 50,000, the equilibrium daily RM will be ~27778. To account for target variability and to simplify math moving forward, we define the number of Gridcoin minted by RM as:

28,000 GRC by RM / day
10,220,000 GRC by RM / year

Current GRC Minted by Staking (SM)

We determined the number of GRC minted by SM under the current 1.5% interest protocol, assuming a circulating supply of 400,000,000 GRC:

SM/year = 1.5% * 400,000,000 = 6,000,000

6,000,000 / 365 Days = 16,438.35616438

16,438.35616438 GRC by SM / day
6,000,000 GRC by SM / year

Current Total GRC Minted per Year and RM/SM Split

We determined the total GRC minted per year through both RM and SM, and the current RM/SM split:

(Total GRC minted per year) = RM + SM

10,220,000 + 6,000,000 = 16,220,000 total GRC minted per year

The percentage of this total that is minted by RM is RM/Total.

10,220,000 / 16,220,000 = 63%

The percentage of this total that is minted from SM is SM/Total.

6,000,000 / 16,220,000 = 37%

We rounded these numbers to 65% by RM and 35% by SM to define the current RM/SM split as 65/35.

Recalculated Totals Minted by RM and SM

We then recalculated the total number of GRC minted per year and by SM assuming 10,220,000 GRC by RM was part of a 65/35 split:

Total GRC minted per year = (RM per year)/(Percentage RM)

Which is:

10,220,000 / 65% = 15,723,076.92307692 Total GRC minted per year

And

GRC minted by SM in 1 year = (Total GRC minted per year) * (Percentage SM)

Which is:

15,723,076.92307692 * 35% = 5,503,076.92307692 GRC minted by SM in 1 year

Current Equivalent Block Reward

We proceeded to determine the appropriate block reward for a 65/35 split:

(SM per year/365)/(960 blocks per day) = CBR

Which is:

(5,503,076.92307692 / 365) / (960) = 15.70512820 CBR

Current Monetary Inflation Rates

These values gave us the monetary inflation rate, the monetary inflation rate by RM, and the monetary inflation rate by SM:

  • Total Monetary Inflation Rate: 3.93%
  • Monetary Inflation Rate by RM: 2.56%
  • Monetary Inflation Rate by SM: 1.38%

Proposed Economics

We propose that 65/35 be the maximum possible RM/SM split. We define four other options by changing the split increments by 5s. Using the formula above we calculate:

  • 65/35 = 15.70512821 GRC block reward
  • 70/30 = 12.50000000 GRC block reward
  • 75/25 = 9.72222222 GRC block reward
  • 80/20 = 7.29166667 GRC block reward
  • 85/15 = 5.14705882 GRC block reward

Split Option GRC Minted by Year

  • 65/35

    • By SM = 5,503,076.924784
    • By RM = 10,220,000
    • Total = 15,723,076.924784
  • 70/30

    • By SM = 4,380,000
    • By RM = 10,220,000
    • Total = 14,600,000
  • 75/25

    • By SM = 3,406,666.665888
    • By RM = 10,220,000
    • Total = 13,626,666.665888
  • 80/20

    • By SM = 2,555,000.001168
    • By RM = 10,220,000
    • Total = 12,775,000.001168
  • 85/15

    • By SM = 1,803,529.410528
    • By RM = 10,220,000
    • Total = 12,023,529.410528

Split Options Monetary Inflation Rates

You can see the monetary inflation rate values and long term trends below:

Monetary Inflation Rate Graphs

Key:

Option A: 65/35 with a 15.70512821 GRC block reward

Option B: 70/30 with a 12.50000000 GRC block reward

Option C: 75/25 with a 9.72222222 GRC block reward

Option D: 80/20 with a 7.29166667 GRC block reward

Option E: 85/15 with a 5.14705882 GRC block reward



Source:

https://docs.google.com/spreadsheets/d/1OgDny1pxlyHTqLQFpo4hdztNdSbz5COcTuR6rw_kJvU/edit?usp=sharing

Expected Effects

  • CBR will incentivize more GRC to be kept online, thereby increasing the Gridcoin blockchain network weight.

  • An increase in netweight will increase the minimum GRC balance required to stake proportionally to the netweight increase. Use the formula below to estimate the minimum GRC required to stake once per 6 months (180 days) at any difficulty.

Formula:

(Expected Time to Stake in days) = (10000/(Stakable Balance)) * Difficulty

Where

10000 = The number of the GRC required to stake once per day with a difficulty of 1.0

  • The math and definitions presented with this proposal will lay a foundation for further economic exploration and development.

  • It is ultimately impossible to predict what the new average difficulty will be with CBR

  • Real effects ultimately depend on the new average network weight and resulting difficulty. Below are some charts of the estimated time to stake (ETTS), expected rewards, and effective APR of the five options assuming a new average difficulty of 10, which would mean about 100,000,000 GRC are kept online to secure the network.

The full and editable spreadsheet can be found at:

https://docs.google.com/spreadsheets/d/10az17S8KeoMQAl825vBKJVoNFPLtZQCYIdIQ2UMcrL0/edit?usp=sharing

Feel free to copy the spreadsheet and experiment.

Further Reading

You can find more relevant reading at the following links:

https://steemit.com/gridcoin/@jringo/gridcoin-4-0-2018-general-roadmap-poll-solving-the-stake-weight-problem

gridcoin-community/Gridcoin-Research#106

https://gridcoinstats.eu/poll/roadmap:_solving_the_stake_weight_problem

https://gridcoinstats.eu/poll/technical_poll:_should_we_implement_fixed_pos_block_rewards

https://steemit.com/gridcoin/@hotbit/confident-time-to-stake

https://steemit.com/gridcoin/@hotbit/cbr-the-way-to-split-coins-draft

https://steemit.com/gridcoin/@jamescowens/a-quick-rule-of-thumb-formula-for-calculating-expected-time-to-stake

gridcoin-community/Gridcoin-Research#1044

The Poll

We propose defining CBR value based on the percentage split between GRC minted by research-mint (RM) and stake-mint (SM). In other words, of 100% of the GRC to be minted per year, X% will be minted by research-mint and Y% will be minted by stake-mint. As we cannot change the number of GRC minted by research at this time (currently 10,220,000 GRC/year), the split definition we agree on will also define the total number of GRC minted per year. It may be possible to change the number of GRC minted by research at a future date.

We present five options based on five different RM/SM splits. Each split option is presented with its corresponding CBR value as determined by the calculations detailed in the section, Proposal, and rounded to the nearest whole number.

The poll is an eight week poll made by an author of this proposal and taking place in the Gridcoin client.

Start time: TBD, Midnight UTC

End Time: TBD, Midnight UTC

The validation of this proposal will require 25% or more of "Active Vote-Weight" participation as defined in the section, “Validation.”

Question: What Research-Mint/Stake-Mint split and corresponding block reward do you support?

  • 65/35 with a 16 GRC block reward
  • 70/30 with a 13 GRC block reward
  • 75/25 with a 10 GRC block reward
  • 80/20 with a 7 GRC block reward
  • 85/15 with a 5 GRC block reward
  • Reject Proposal
  • Abstain

Validation

CBR has been approved by the network on multiple occasions. This proposal and poll is to define the CBR value, not to determine whether we should implement CBR. As such, we propose using this opportunity to experiment with poll validation requirements.

We propose a validation system based on the active network weight throughout the duration of the poll. We call this, Active Vote-Weight (AV-W).

AV-W seeks to solve the problems of total vote-weight validation, including lost vote-weight due to lost and burned coins, coins in cold storage, and vote-weight frozen by the pool.

AV-W also allows for proposals to be validated without requiring large balance participants to vote. Large balance participants might not wish to vote because they can often push a poll one way or another, yet they are sometimes forced to vote with their full weight in order to validate a poll. With AV-W, a participant with massive vote-weight can participate in the democracy without being forced to control it.

There are some unique features to AV-W, such as super validation. Super validation would be a proposal that is supported by more than the active network vote-weight during the poll, giving it a validation greater than 100%. Super validated polls can be said to be so important that they encouraged participants to bring coins onto the network in order to vote. In the future, super validation might be a requirement for major protocol changes while marketing initiatives and other proposals might require an AV-W validation score under 100%.

As CBR has already been approved, and this is the first poll to try AV-W, the validation of this proposal will require 25% or more of "Active Vote-Weight" participation.

We defined Active Vote-Weight (AV-W) as:

AV-W = Active Network-Weight + Active Magnitude-Weight

Where:

Active Network-Weight = (Network Weight Over The Poll Duration as Determined by Average Difficulty)

Active Magnitude-Weight = (((Total Active Magnitude - PoolMag)* (MoneySupply/TotalNetworkMagnitude + 0.01)/5.67)

To determine the average network balance over the poll's duration, we use the following formula:

nCoins = (162^2561250000diff)/(tmaxTarget*COIN)

Where t=90, maxTarget=2^224, COIN=100,000,000

When solved, we get:

nCoins = diff* 9544371.769

The complete formula used to determine Active Vote-Weight is:

_AV-W = (Average Difficulty 9544371.769) + ((TotalNetworkMagntiude- Average Pool Magnitude) (Average MoneySupply/TotalNetworkMagnitude + 0.01)/5.67)_**

Where all averages are averages over the duration of the poll.

To determine the average difficulty during the poll, we will use the RPC command getblockstats.

Considering The Pool Poll

Developers will consider the results of the pool poll when making the final implementation decisions regarding CBR. If the overall results change drastically as a result of including the pool poll results, the final implementation may differ from the outcome of the client poll. As the pool poll is not part of the blockchain, it may also be disregarded at the discretion of developers.

https://www.grcpool.com/polls

Action

If validated, the CBR value of the winning option will be implemented, thereby creating the corresponding RM/SM split. The approved value will be tested on testnet for no less than one month before ultimately being implemented into production through a mandatory update.

If not validated or if this proposal is rejected, the current %1.5 idle-APR system will remain in place.

Other Options We Explored

There are several potential options when it comes to determining a reward mechanism for a proof-of-stake protocol. We have chosen Constant Block Reward for the reasons described above, however this was not without considerable debate. We seriously explored two other options: Dynamic Block Reward and proof-of-stake-time (demurrage). We intend to continue researching and experimenting with these and other mechanisms as they develop over the coming months and years. Proof-of-stake-time is not described below as it differs greatly from the already agreed on constant block reward reward mechanism.

Dynamic Block Reward - No examples

Dynamic block reward would seek to target an inflation rate determined by outside influences, whether they be market, political, economic, technological, or other. It views monetary inflation and deflation as economic tools and seeks to utilize them appropriately for specific situations.

Its main argument is summarized by the following:

Let us build a platform that expects and adapts to change. If reality says that the blockchain needs more security for reasons X, Y, and/or Z, the protocol changes the ratio of RM/SM to adapt to this reality. If reality says that the network can reduce reward for SM while maintaining security, the protocol changes the ratio of RM/SM to increase rewards for crunchers resulting in a short-term increase in adoption and a long-term increase in security -- Gridcoin is one of few blockchains which increases staking security through an on-boarding mechanism other than "buying in." Let's build an economics protocol that can use that.

Additionally, let us build a protocol that can adapt should reality suggest a higher or lower inflation rate, a deflation rate, or otherwise.

Developing this process comes with risks and would require extensive research and development resources. As we prioritized ease of implementation, dynamic block rewards is not practical at this moment in time.

We did, however, come up with initial formulas we hope to continue exploring:

RM = ((GRC supply at start of interval)(RM payout fraction * target APR)(time interval))

SM = ((GRC supply at start of interval)((1 - RM payout fraction) * target APR)(time interval))

Block Reward Value = SM / (# of blocks in interval)

Conclusion

This proposal takes the community’s approval of CBR as an opportunity to explore the economics of Gridcoin, and presents options based on that exploration. There will undoubtedly be questions, concerns, and required explanations. We look forward to further discussion on the reddit, steemit, and CCT threads, along with during the Gridcoin Hangout and The Fireside Chat.

For science!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.