Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Governance] Incentive #1438

Closed
SueNEO opened this issue Feb 6, 2020 · 4 comments
Closed

[Governance] Incentive #1438

SueNEO opened this issue Feb 6, 2020 · 4 comments
Labels
Discussion Initial issue state - proposed but not yet accepted

Comments

@SueNEO
Copy link

SueNEO commented Feb 6, 2020

Public permission-less blockchains are open and distributed systems with diverse groups of participants. A well-designed crypto-economics model is to provide incentives so that participants' pursuit of own economic interests leads to desired emergent behaviors in alignment with the protocol, to contribute to the blockchain network's success.

More specifically, the design of a crypto-economic system must provide answers to the following questions:

  • How can the economic model ensure the security of the protocol?
  • How can the economic model ensure long term sustainability of the protocol?
  • How can the economic model align the objectives of different actors to grow the value of the protocol network?

Incentive layer is to solve such problems with a robust economic model.

Incentive Abstraction

We can only use the token on neo to incentive participants because it is on-chain incentive. The input of incentive process are the balances of all accounts and a sequence of governance transactions while the output of incentive process are the new balances of all accounts. The changes of each balance reflect what we incentive for.

image

Incentive Metrics

The following metrics are used to make comparasions between incentive solutions.

  1. correctness on rational assumption
  2. complexity

Incentive Solution

The solution of incentive layer will be proposed in the following sections.

Incentive layer consists of two parts:

  1. income

    where the system income and how to get the income

  2. redistribution

    how to redistribute the system income to incentive good behaviour and make the network sustainable

Token Model

The dual token model (a.k.a NEO and GAS) is one of the distinctive features of Neo. Divisible NEO is proposed as an optional optimization in #1439.

NEO is governing token. NEO holders can take part in Neo network management, including voting for consensus nodes, network parameter modification, etc. NEO's total amount is 100 million. Its minimum unit is 1 and can not be divided. It's registered in Genesis block, and stored in standby validators' muti-signature addresses.

GAS is utility token, or network fuel token. Operation costs and incentive for consensus node in Neo network are paid in GAS. GAS's total amount is also 100 million and can be divided to 0.00000001 unit. Gas is registered in Genesis block and issued afterwards as block incentive for NEO holders.

Some transactions on the Neo network require fees. The network uses a fee structure with two types of fees; system fees and network fees. All fees are paid in the native utility token GAS

Type Description
Network Fee Fee to pay the validator for including the transaction in the block
System Fee Fixed fee to pay the network for operations

It is hard to say the dual token model of Neo is totally better than single token models like Ethereum and EOS, but we believe the dual token model has its unique advantages.

Actually mixing utility token and governance token is a dangerous way and it limits the maximum activity of the network. There is a competition of occupancy rate between utility token and governance token in single token model and governance token is related to security and utility token is related to activity. In other words, the network will be in danger and easily to be attacked if the network is popular enough because the more utility token, the less governance token.

Inflation

We recommend to keep the way of GAS inflation (we treat the GAS release is actually a kind of inflation) on Neo2 as a respect to supply model of NEO and GAS because it would works well in the foreseeable short term (There is no inflation for NEO in our dual token model).

100 million GAS is issued gradually in 22 years according to a attenuation algorithm. No GAS is issued afterwards.

System Income

System income comes from GAS inflation and transaction fees on Neo network.

image

Transaction fee consists of system fee and network fee.

image

Redistribution

Before reading this section, you need to know how Neo2 distribute the GAS while consensus per block. Actually in Neo2, system fee is distributed to all NEO holders, and network fee is given to the current speaker (one of the consensus nodes who propose the block).

The system income will be redistributed to different roles on Neo network. We have the following equation to describe the rule of redistribution.

image

We define the earning vector as the vector of earning expectations of all the roles in Neo network and we consider 3 roles in Neo network, which is, consensus nodes, voters and NEO holders. One can play multiple roles at the same time.

Note that we are using earning expections instead of earnings because it is average earnings. We keep the mechanism in Neo2 to give a part of the transaction fee to the current speaker in each block instead of all the consensus nodes. So here we just calculate the earning expections because such part of transaction fee will be distributed to each consensus nodes almost equally in long run..

image

We define the income vector as the vector of inflation and transaction fee.

image

The redistribution matrix shows in the following in our solution.

image

We use the reserve rate to adjust the distributed GAS to the NEO holders. It is a number between 0 and 1. r = 0 means NEO holders never get GAS unless they participate in governance process while r = 1 means NEO holders never get additional GAS in governance process.

We recommend to choose the reserve rate as small as possile to incentive the voters, but better to make all NEO holders be able to vote or transfer their NEO in 90 days. In other words, if I have 1 NEO without GAS, I can have enough GAS for me to vote or transfer my NEO 90 days later. Then NEO holders don't need to buy additional GAS from elsewhere to participate in the governance process of Neo network.

We define a weight vector as following:

image

The following equation is satisfied.

image

@SueNEO SueNEO added the Discussion Initial issue state - proposed but not yet accepted label Feb 6, 2020
@vncoelho
Copy link
Member

vncoelho commented Feb 6, 2020

Sounds good idea and reasoning, I remember this draws with @vang1ong7ang.

We just need to be aware about the current PR opened about burning system_fees, better to discus this first before merging. Otherwise we would need to revert that. #1430

@vang1ong7ang
Copy link
Contributor

@vncoelho

Do you remember we discussed the redistribution matrix in Ouro Preto? The matrix is used here to make the analysis of redistribution problem much easier.

@vncoelho
Copy link
Member

vncoelho commented Feb 6, 2020

I remember, @vang1ong7ang, very good job.
What are the plans for discussing this here and reaching a conclusion for guiding the next steps?

@Tommo-L
Copy link
Contributor

Tommo-L commented Feb 11, 2020

We just need to be aware about the current PR opened about burning system_fees, better to discus this first before merging. Otherwise we would need to revert that. #1430

@vncoelho Agree. We look forward to reaching a conclusion on incentives. Especially how we deal with network fee and system fee.

@SueNEO SueNEO closed this as completed Apr 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion Initial issue state - proposed but not yet accepted
Projects
None yet
Development

No branches or pull requests

4 participants