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] Design and discussion #1617

Closed
SueNEO opened this issue Apr 27, 2020 · 30 comments
Closed

[Governance] Design and discussion #1617

SueNEO opened this issue Apr 27, 2020 · 30 comments
Labels
Discussion Initial issue state - proposed but not yet accepted

Comments

@SueNEO
Copy link

SueNEO commented Apr 27, 2020

Governance

There are three types of roles in the system:

  • Consensus node. The top 7 with the highest number of votes are the consensus nodes of the next block, participating in the dbft consensus.
  • Committee. The top 21 with the highest number of votes are committee members of the next block, and the consensus nodes are contained within the committee. The committee can discuss various modifiable parameters preset by the Neo protocol, as well as some proposals that benefit the community. With the consent of more than 1/2 of the committee members, they have the right to modify the parameters or pass the proposal; the consensus nodes has the right to veto the modifications or proposals, When more than 2/3 of the consensus nodes veto, the committee's decision can be rejected.
  • NEO holder. NEO holders can vote to participate in governance. You can vote for a supported candidate or withdraw the vote at any time, and the voting weight is equal to the NEO balance of the address. Partial voting is not supported.

Token and incentive model

Neo has two native tokens, NEO and GAS.

NEO, with a total of 100 million tokens, represents the right to manage the network. Management rights include voting for consensus nodes and the committee, and so on.

GAS is the fuel token with no upper limit, which is used to control resources when using NEO network. Each block will issue additional GAS in order to incentivize NEO holders and users who contribute to the system, making the system sustainable autonomy. The additional issuance of each block can be adjusted by the committee. Initially, each block issues 5 GAS, that is, about 10 million GAS are released each year.

The additional GAS allocation is as follows:

  • 10% will be distributed to all NEO holders according to the weight of NEO.
  • 5% divided equally among 21 members.
  • 85% will be allocated to the voters who voted for the top 21 nodes. The voters who voted for a consensus node are assigned 2/28 of this part according to the voting weight, and the voters who voted for a committee member (non-consensus node) are assigned 1/28 of this part according to the voting weight.

10% is estimated according to the charging mechanism of NEO3.0, so that 10 days after holding 10 NEO, one can get the GAS needed to send a transaction. This design guarantees the convenient use of NEO holder without falling into the dilemma of having to go to the exchange to buy GAS. 5% is estimated based on the cost required to maintain the committee node, which could cover the cost of the committee node. Under the increase rate of 5 GAS per block, the average GAS income of NEO holder is calculated as follows (the red value in the table is the annualized returns based on the NEO / GAS price of 7: 1).

gv

The extremely high income deviation will encourage NEO holders to actively participate in voting, and will not vote blindly, but vote for the node that is most likely to become a consensus node, this will make the voting more concentrated and not too scattered.

Transaction fees are divided into system fees and network fees. The network fee is allocated to the current speaker (the consensus node that proposed the block) as incentive, and the system fee will be burned.

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

vncoelho commented Apr 27, 2020

Hi @SueNEO, It looks good.
It looks aligned with @vang1ong7ang ideas.

I did not see any mention of Staking. We need to discuss if Committee (or CN, all the same in terms of registering on the Blockchain) will pay GAS or stake NEO during the period they want to participate.
It looks like stake for NEO Holders will be implemented if we follow this strategy, because Voter will receive 85% during the period that they vote, thus, after transferring you need to vote again.

@erikzhang
Copy link
Member

85% will be allocated to the voters who voted for the top 21 nodes. The voters who voted for a consensus node are assigned 2/28 of this part according to the voting weight, and the voters who voted for a committee member (non-consensus node) are assigned 1/28 of this part according to the voting weight.

I thought about it and found it difficult to calculate. Because when I claim GAS, the object I vote for may switch between the consensus node and the committee member. How do I calculate what percentage of GAS should I get? If the GAS distribution is forced on all accounts when the role changes, the calculation will become very large.

@Tommo-L
Copy link
Contributor

Tommo-L commented Apr 28, 2020

More seriously, when the balance of voters changes, the GAS distribution will also be affected.

@gsmachado
Copy link
Contributor

gsmachado commented Apr 28, 2020

Good to see a proposal like this! Nice work! 🎉

So... I just put my questions and thoughts in some bullets points, below. While some are things that are not so clear to me, others are things to raise awareness and, maybe, start brainstorming. :-)

  • Yes, I agree that the calculation to the GAS is kind of complex and it could impact the chain/network, in my opinion. But maybe it's not that clear to me and that's why I'm a bit skeptical.
  • Is there any penalty for committee members that simply don't vote (or don't give any consent whatsoever) for the proposals? Like, ones that are "absent" even being committee members.
  • When Committee members are elected? Is it meant to be a continuous process, right? Or every X blocks?
  • There are many points in this proposal providing explicit incentives to Neo holders or to users that perform transactions to vote for the committee (21 members)... However, I don't see any explicit incentive to actually use the Neo blockchain network. Isn't it the main goal to incentivize users to make transactions in the network instead of just holding Neo assets and wait for the price to go up? I'm fully aware that incentives to use the Neo network could be "implicitly" provided... For example, the more stable Neo governance gets, most likely the more dApps will be deployed on Neo (which can potentially bring higher use to the network). Or, another example, the cheapest transactions are to deploy or interact with smart contracts, the more dApps will possibly exist and used in the network. I'm just brainstorming here... I don't have a solution or a proposal for providing incentives to "use" the Neo network without risking the chain. But while reading it, I feel like there are plenty of (explicit) incentives for hodling compared to few (only implicit) incentives for using the network.
  • What about entities, such as exchanges, that hold many addresses with Neo and, therefore, have the potential to elect committee members with their own interest? At the same time of thinking that complexity without a purpose is useless, I also believe that a solution to this problem will benefit individuals and the true Neo holders. There are potential solutions for this, but as I said, complex ones that I don't know if it's worth pursuing to solve this potential problem.

@Tommo-L
Copy link
Contributor

Tommo-L commented Apr 29, 2020

When Committee members are elected? Is it meant to be a continuous process, right?

Yes, it's a continuous process. But I think we may need to adjust it or adjust the GAS distribution, as the calculation problem.

However, I don't see any explicit incentive to actually use the Neo blockchain network. Isn't it the main goal to incentivize users to make transactions in the network instead of just holding Neo assets and wait for the price to go up?

I think that "incentive to actually use the Neo blockchain network", it's a off-chain mechanism. As NEO is the governance token, we should incentive the holders.

@Tommo-L
Copy link
Contributor

Tommo-L commented Apr 29, 2020

I think we can use the concept of epoch, like one epoch equals 5760 blocks(1 day), and we'll make a snapshot of the voting record(snapshot format: blockHeight -> [committee -> totalVotes]) at the end of each epoch.

User can only claim the previous epochs' GAS, and when the balance of voters changed or switch the votee, both will automatically trigger the claim operation.

@i359
Copy link

i359 commented Apr 30, 2020

  1. It is recommended that after 1200W blocks, 2 gas will be generated for each block until forever. The inflation rate is small and the model is simple.

  2. It is recommended that each block take out 1 gas to allocate to voters, which can be allocated periodically, such as once a month.

@shargon
Copy link
Member

shargon commented Apr 30, 2020

85% will be allocated to the voters who voted for the top 21 nodes.

You mean who voted, regardless of who?

@Tommo-L
Copy link
Contributor

Tommo-L commented Apr 30, 2020

You mean who voted, regardless of who?

I think so.

@Tommo-L
Copy link
Contributor

Tommo-L commented Apr 30, 2020

It is recommended that after 1200W blocks, 2 gas will be generated for each block until forever. The inflation rate is small and the model is simple.

I think committees can decide it, this is their responsibility. Maybe we can use it as the default value?

@roman-khimov
Copy link
Contributor

  1. I think that these non-trivial GAS distribution proportions are not only hard to calculate, but they would also lead to some serious rounding errors. At the moment 1 NEO directly corresponds to 10⁻⁸ GAS, so if there is 5 GAS to be generated for the block as an owner of 1 NEO I'd get 5×10⁻⁸ GAS. I'm not sure what's 2/28 of 85% of that value is gonna look like.
  2. This model doesn't answer the question of why should I run a full non-consensus node. I think we all agree that the network needs more nodes, but at the moment only CNs are incentivized for their work (which is good), ordinary node owners providing P2P and RPC services get nothing, so I think that there is some tendency for the network to converge to CNs only (or CNs plus committee) network. There was a proposal to give more power to ordinary nodes and allow them to earn some GAS from network fees (Transactions order and Block generation #1285), something like that is still needed for the network to solve this problem.
  3. This needs more economic modelling in general to make a balanced system.

@Tommo-L
Copy link
Contributor

Tommo-L commented May 2, 2020

  1. This model doesn't answer the question of why should I run a full non-consensus node. I think we all agree that the network needs more nodes, but at the moment only CNs are incentivized for their work (which is good), ordinary node owners providing P2P and RPC services get nothing, so I think that there is some tendency for the network to converge to CNs only (or CNs plus committee) network. There was a proposal to give more power to ordinary nodes and allow them to earn some GAS from network fees (Transactions order and Block generation #1285), something like that is still needed for the network to solve this problem.
  2. This needs more economic modelling in general to make a balanced system.

It's a good suggestion to let more nodes play value, this is related to consensus mechanism and economic model, like dBFT3.0 proposed by @igormcoelho and @vncoelho , has similar ideas. And I think we need more time for thinking the next neo consensus mechanism.

@EdgeDLT
Copy link

EdgeDLT commented May 6, 2020

I think it is a good time to consider letting any node propose blocks.

It seems to me that we don't really require the CNs to do any more work other than validate as a group, they are the root of trust. But processing of transactions, we could shift that workload to other P2P nodes on the network who in turn can receive the total network fee for the block. Mining but without the waste.

This opens up the opportunity for the network to incentivize participation from all nodes, helps decentralization, and can become a very useful tool for businesses on the network wanting to streamline their services to end users. They could batch their own transfers as new blocks, as long as the numbers add up it is no different in the end than a block of completely random tx proposed by a CN.

One important thing here is that I think it answers the question of "why am I using Neo?" Like with chains driven by mining, it is worthwhile to use the network if the return fee is sufficient. If you can use Neo's facilities to generate profitable transactions, then you have reason to use it and you can specify your own fees for users (as long as it passes the minimum as set by the committee).

Regarding GAS calculation... one option is to use an equal fee for all top 21 nodes, i.e the committee, regardless of whether or not they are actively the top 7 performing consensus. They are held to the same standard, are expected to provide the same service, so should earn the same share.

If we reward the Top 7 separately, we risk incentivizing NEO holders to concentrate their votes into the candidates that already have the most influence, meaning we will trend towards plutocracy as has been demonstrated in practice in existing dPoS models including Lisk, Tron, and EOS.

@diskooooo
Copy link
Contributor

Agreed with Edge. As I mentioned on Reddit, I am a little worried that voters will end up always voting the 7 previously proven winners of previous voting rounds, in an effort to maximalize GAS rewards. If you vote for a CN candidate that was previously not CN, your chances of getting less GAS significantly increase (unless others also do it).

Best to distribute the additional GAS rewards to all people who vote, and NOT just to all people who vote correctly. Also more easy to implement this way, I guess.

@Tommo-L
Copy link
Contributor

Tommo-L commented May 13, 2020

Best to distribute the additional GAS rewards to all people who vote, and NOT just to all people who vote correctly.

The problem is vote once, means vote forever. Is there any big difference with neo holders?

@Tommo-L
Copy link
Contributor

Tommo-L commented May 13, 2020

voters will end up always voting the 7 previously proven winners of previous voting rounds, in an effort to maximalize GAS rewards.

It dosen't mean, vote for CN will get more GAS than vote for CN candidate. Actually, the reward tends to be in dynamic balance. As the following:

The voters who voted for a consensus node are assigned 2/28 of this part according to the voting weight, and the voters who voted for a committee member (non-consensus node) are assigned 1/28 of this part according to the voting weight.

@vncoelho
Copy link
Member

@EdgeDLT,it is good that you are pushing this discussion, we need to discuss that and align with what NeoResearch team has been investigating for dBFT 3.0, @vang1ong7ang is also aware and perhaps some members of the community since we already made the report available,as well as the first mathematical model.

In the report we propose the redudant primary in order to allow other nodes to participate.
Other nodes can join the permanent CN (voted) every round.

@pappas999
Copy link

@EdgeDLT makes a great point. More incentives to participate in the network would be great. Like with ETH2, users are incentivised to run node validators because they can earn passive income of the networks native token if they are chosen to propose a block (& also for confirming blocks, but that wouldn't be the case for NEO).

However careful consideration needs to be taken into how it would affect the performance of the network. One of NEO 3.0s strong points would be its performance.

@Elean0rZ
Copy link

An idea:

Perhaps there's value in having a finite lifespan for votes. The logic for this is as follows.

As seen in DPoS systems, financial incentive is a great way to get people to vote in the first place. However, a separate question is how to KEEP voter engagement over time and ensure that elected nodes reflect current, not past, performance. It's common for voters to vote for a relatively safe candidate with little chance of falling out of the committee (or its equivalent), and then stop paying attention to governance issues. This 'voter inertia' results in a static committee, which results in less incentive for other nodes to try to join the committee, which, finally, results in a reduced incentive for nodes already in the committee to continue improving their offerings. Ideally, a governance system should not only incentivize voter participation, but also include a mechanism to ensure ongoing competition among nodes.

As I understand it (correct me if I'm wrong) NEO nodes are all equal in the reward they can return to voters. That means that the choice of who to vote for should come down to which nodes offer the best service to the network. However, in a system where 'voter inertia' causes nodes to remain in the committee based on past, not current, performance, in practice it may be preferable for a new voter to vote for an entrenched candidate even if there are better alternatives for the network,

Having votes expire after a set period would incentivize voters to continuously (or at least periodically) engage with the governance process and reevaluate their votes. On the opposite side of that same coin, it would encourage nodes to compete for votes. There's no way to guarantee that voters would carefully assess the candidates, and, as in real-world democracies, there would probably always be a bias toward the incumbents. But by reducing the incentive to vote for an established incumbent purely for personal gain, vote expiration would make it easier for more voters to choose based on the only differentiating factor that remains: value to the network. It's also relatively simple to implement.

In terms of specifics, there'd be plenty to discuss. How long should a vote last? Should the timer be relative to each vote, or should there be a set 'election day' every so often, on which all votes expire?

Anyway, just an idea. Cheers.

@Tommo-L
Copy link
Contributor

Tommo-L commented May 13, 2020

Actually, the reward tends to be in dynamic balance.

@Elean0rZ As the voting weight may adjust the reward.

image

@vncoelho
Copy link
Member

After initialization, which are the mechanisms that are going to be used for updating ValidatorsCount and CommitteeMembersCount?

@Tommo-L
Copy link
Contributor

Tommo-L commented May 18, 2020

After initialization, which are the mechanisms that are going to be used for updating ValidatorsCount and CommitteeMembersCount?

I think it can't be updated by committees, as these related to protocol settings, like dBFT2.0 may have the max limit for consensus nodes, and dBFT3.0 may support more validators, and this can't be decided by committees but L1 protocol.

@gracegui43
Copy link

Great discussion! I have summarized the discussions of #1617 and #1446. The following are the questions that have been raised and may need further discussion:

  1. Should all committee members run a node to ensure the stability of the Neo network?

  2. Staking to become committee?

  3. Should we set up an election cycle for the committee?

  4. Should we set voting lifespan to keep voters' engagement overtime?

  5. The non-trivial GAS distribution proportions may be hard to calculate without economic model support.

  6. How to guarantee the final decision of committee is a good reflection of the votes?

  7. Is there any penalty for committee members that simply don't perform their duties?

  8. Should the governance mechanism cover the incentive of the non-consensus nodes participation or the usage of Neo network?

@EdgeDLT
Copy link

EdgeDLT commented May 26, 2020

@grace-gui Thanks for summarizing! For me..:

Should all committee members run a node to ensure the stability of the Neo network?

100% yes. I'd go one further and say that all candidates should run a node, demonstrating that they are capable of securely operating a node before being entrusted with joining or otherwise influencing consensus (and it doesn't hurt to show willingness to help the network out of pocket).

This also allows us to use node health metrics as a way to assess candidates, which can help inform NEO voters who may otherwise struggle to make educated decisions. It also gives us the option to later have committee members contributing in other ways, like running an oracle service or being hot-swapped into consensus if a CN is byzantine.

Staking to become committee?

I am not sure on this point. I like the idea of having no barrier to entry and letting the NEO holders call the shots on who moves up, but stake means skin in the game. I think a stake to be a candidate is probably for the best, as long as it is not so high that it is unnecessarily prohibitive.

Should we set up an election cycle for the committee?

There should probably be a cycle. People signing up for that responsibility should have a base estimate of how long they are expected to participate. Maybe every 3 months?

Should we set voting lifespan to keep voters' engagement overtime?

Following @Elean0rZ's comments, I think this is a good idea as long as it is not so short that people need to constantly re-vote. Every week seems too frequent, so maybe a 1 month expiry (or until the end of the election cycle if it was a late vote) would be viable?

How to guarantee the final decision of committee is a good reflection of the votes?

Veto power on a proposal for CNs as proposed should help solve this problem, since they have the most votes and can prevent a malicious decision from being enforced.

It's not a guarantee, but it helps if we require candidates to state their preferences up-front where possible. This gives us something to compare against the final proposal. E.g, if 2/3 of the committee wants higher fees (and are voted in on this point) but the final proposal would reduce them, we can tell something is wrong.

Is there any penalty for committee members that simply don't perform their duties?

What duties do they have specifically, and what does it mean to not perform them? Is abstaining from a vote not performing a duty, for e.g? What about extenuating circumstances? Do we punish by slashing the candidate's stake, or withholding what would be their share of the committee rewards?

This one is a big rabbit hole heh.

Should the governance mechanism cover the incentive of the non-consensus nodes participation or the usage of Neo network?

I would like to see further exploration into incentives for non-CNs. Not sure what is exactly meant by usage of the network, general usage should all be paid for.

If you mean things like a community fund for issuing grants to projects, then I guess it's something that could be explored, but in today's climate this is solved by crowdfunding and private investment so there's no rush IMO.

@vncoelho
Copy link
Member

@Tommo-L, the commit 9cbc025 of @erikzhang solved this issue now I think.

Now the protocol defines the maximum and the voting process defines the order, correct?

@Tommo-L
Copy link
Contributor

Tommo-L commented May 26, 2020

It looks like that, but I can't find the related PR.

@vncoelho
Copy link
Member

vncoelho commented May 26, 2020

It was directly committed, @Tommo-L. It would had been better if a PR was opened for us to clear this topic, @erikzhang.
Anyway, it is already done. I believe it looks good like this.

@lllwvlvwlll
Copy link
Member

The approach of rewarding voters who win is interesting. What is the motivation behind it?

I'm very concerned that it will have a passivating result where the community will simply fall back on the "safe vote" instead of the "right vote". Having experienced this firsthand in the US...Many people simply vote for a candidate because they "think" the individual will win in lieu of a personal preference of who is the most qualified candidate. I do not think this mentality is in the best interest of the ecosystem and it will happen naturally whether we add an incentive or not so we shouldn't go further to motivate users.

It also further motivates brigade voting and centralization. For example: if a Binance-like actor were to announce who they are voting for, this model would be providing a financial motivation for other voters to also vote for the same entity so the network is effectively rewarding users to centralize. We will already have enough issues with people buying votes. We shouldn't be providing an additional motivation.

@gaoyuan121
Copy link

The approach of rewarding voters who win is interesting. What is the motivation behind it?

I'm very concerned that it will have a passivating result where the community will simply fall back on the "safe vote" instead of the "right vote". Having experienced this firsthand in the US...Many people simply vote for a candidate because they "think" the individual will win in lieu of a personal preference of who is the most qualified candidate. I do not think this mentality is in the best interest of the ecosystem and it will happen naturally whether we add an incentive or not so we shouldn't go further to motivate users.

It also further motivates brigade voting and centralization. For example: if a Binance-like actor were to announce who they are voting for, this model would be providing a financial motivation for other voters to also vote for the same entity so the network is effectively rewarding users to centralize. We will already have enough issues with people buying votes. We shouldn't be providing an additional motivation.

I think the fundamental rationale behind the aggregation of votes towards the final winners is to incentivize active participation and to provide security and stability to the consensus process.

Imagine the scenario that any voter will be rewarded, there are some associated potential problems:

  1. Participation incentive
    There is a chance that "lazy" voters will be randomly voting a candidate just to get the reward, instead of actively following the continuing span of the voting process. Considering how the process will play out, I imagine in the long run, the proportion of "lazy" voters will increase, because the system does not incentivize active participation.
  2. Security and stability Vulnerability
    If votes of the selected consensus nodes and governance committee members are not "converged" or "aggregated" enough, it is relatively cheaper for bad actors to swoop in and take significant proportion of the governance body. In another word, the buffer or threshold would be lower to maintain the integrity of the whole network. From another perspective, if votes are not "converged" enough, there will be frequent changes in consensus nodes and committee members, which will introduce instability and greater possibility of errors.

Regarding the "Binance-like" actors, I think this is an very important issue. When we introduce a certain level of imbalanced distribution of rewards to the system instead of a universal passive reward, institutions will participate to reap the financial benefits. I think the same things will happen to any POS style blockchains, it is an inherent problem of introducing staking, a large proportion of any token holders are speculators. Looking at this issue from a more positive perspective:

  1. there will be many "Binance-like" actors which will create a balance.

  2. If we can provide a smooth UX for voters to engage directly, that would in some degree mitigate the problem because in theory, they will have a better return comparing to staking through agents who would definitely want to take a cut. However, for short term speculators who mostly like hold their tokens in centralized exchange, they would probably still preferred the proxy mode.

However, there should definitely be more discussion on how to limit the impact of those actors, considering that giving the initial distribution scheme, if the vote rate at the beginning is not very high, the financial return of those voters will be very attractive.

@SueNEO SueNEO closed this as completed Jun 24, 2020
@SueNEO SueNEO reopened this Jun 24, 2020
@Elean0rZ
Copy link

Elean0rZ commented Aug 1, 2020

I think the fundamental rationale behind the aggregation of votes towards the final winners is to incentivize active participation.

Maybe I'm misunderstanding, but it seems to me that this would only be true at the very start, and that after that, this system would actually discourage active participation. Consider:

  • When the new system is first released, voters would be incentivized to think about who they're voting for (this is good).
  • Soon after, once it becomes clear which nodes are going to form the committee, any voter that isn't already voting for those nodes would be incentivized to change their vote, not because they changed their minds about who has the best proposal, but because they want the rewards (this is neutral-to-not great).
  • Anyone who comes along later will be incentivized to vote for the existing committee for the same reasons as above (this, in my view, is bad).

The result would be a system in which, over time, the committee becomes more and more entrenched. Even if other candidate nodes provide amazing services, the financial incentive would still be for voters to support the committee. In effect, it becomes a tacit agreement among voters: We'll all only vote for these 21 nodes, so everyone 'wins'. Well, everyone except the network, since there's no incentive for nodes to compete and improve. Over time, this means that committee nodes can become 'lazy' regarding the services they provide. Meanwhile, non-committee nodes would slowly be discouraged from even trying to offer superior services, since their efforts would rarely be rewarded with votes. And voters would 'set it and forget it', knowing that there was no reason for them to remain actively involved in a process that isn't really a 'process' so much as a completed decision.

If votes of the selected consensus nodes and governance committee members are not "converged" or "aggregated" enough, it is relatively cheaper for bad actors to swoop in and take significant proportion of the governance body. In another word, the buffer or threshold would be lower to maintain the integrity of the whole network.

Sure, but then what is the point in having voting at all? If all incentives encourage aggregation of votes around the committee, then the result is, in effect, the same as if we just say "OK everyone, there are 21 permanent nodes". The whole point of having a voting system is to allow for turnover and renewal of nodes, to discourage laziness within the committee and to encourage innovation and effort on the part of non-committee candidate odes.

You can argue that vote aggregation makes it relatively harder for bad actors to 'swoop in', but the flip side is that they can still swoop in right at the beginning, and if they do, they are much harder to remove, since there's a financial incentive for voters to continue voting for them (i.e., network interests and voter interests aren't aligned).

From another perspective, if votes are not "converged" enough, there will be frequent changes in consensus nodes and committee members, which will introduce instability and greater possibility of errors.

Yes, but that is the whole point of voting. There needs to be a realistic possibility of changes in consensus nodes in order for committee members to be motivated to maintain a high quality of service, for candidate nodes to be motivated to try and offer something better, and for voters to be motivated to take an active role in choosing who they think will benefit the network the most. This renewal and refreshment and ongoing 'incentive to be better' is vital to keeping the governance system up-to-date and efficient. Turnover might increase the possibility of errors in the moment of transition, but a lack of turnover would reduce the overall quality of committee nodes and increase the possibility of errors during normal operation (e.g., less incentive to continuously upgrade one's server or uptime, say).

There's no doubt that having a static 21 committee nodes would be an efficient system, and this is certainly a strength of permissioned chains, but again, if that's the desired outcome here then why bother having voting at all?

If we want to incentivize voters to actively participate, we need to ensure that votes mean something, which means that there has to be a realistic possibility of turnover. However, as I've proposed before, another approach is to make votes expire after a period of time, so that voters need to remain engaged if they want to maximize their rewards. Combining the current 'vote aggregation' approach with a vote expiry system might be a way to balance all interests here.

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

Successfully merging a pull request may close this issue.