-
Notifications
You must be signed in to change notification settings - Fork 118
[Standard] Decoupling Council Rank From GAS Distribution #197
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
base: master
Are you sure you want to change the base?
[Standard] Decoupling Council Rank From GAS Distribution #197
Conversation
This is what can make NEO great again! I'm 100% in favor of this idea. |
Had a couple discussion lately where I expressed a similar opinion as the proposal. It's definitely needed to be able to vote for candidates without the fear of losing $GAS. I understand there is a danger that people can be unmotivated to check whether they are voting for a candidate that is actually still active. I wonder how you view the issue of making sure that people check their votes every now and then. Otherwise I'm all for this change as it's a definite improvement over the current model. |
@snakeyrob Thats an incredibly complicated topic that this proposal doesn't address. There have been some discussions and attempts to define a standard process for council members to yield updates to the ecosystem publically. Most recently, NNT were the only ones to follow the process and some council members weren't even made aware that it should be done (since its a permissionless platform so we cant even get confirmation that communications were received). From a product perspective, engagement tools like the wallets (in the case of COZ) can work harder here. Ultimately, uniformed voting is a major problem in democratic systems and will probably continue to be one. One of the hopes of this proposal is to remove the incentive for uniformed voters to behave as an effective "Public Action Committee" against the informed voting population who may have greater vote distribution. By removing the protocol-level incentive to participate in a PAC, the vote distribution for uniformed voters widens across candidates. This provides a better opportunity to get a signal from informed voters amongst the noise. |
What is with your proposal?... We think the pool idea to stake Neo and earn gas (with depending how much memetoken you hold) is a very good addition to this. Maybe it is possible to make something like this too in a opinion if someone want to make this or want to stake in normal governance 🤗 |
I'm sorry I don't really understand what you mean, I'm not talking about our Grantshares proposal, that's not related to this topic. |
I am eager to see something like this move forward. Thank you Centre Point council members for organizing. I'm not a huge Elastos fan, but they do have an interesting model for voting that encourages council members to stay active and involved, maybe worth checking out. |
What would ensure that a council member or vote recipient was maintaining a healthy consensus node? |
The problems described in this NEP are real, but the proposed solution is inadequate and likely to worsen the situation.
This NEP effectively removes Neo users' last meaningful interaction with the platform, instead of the opposite. |
I agree that folks would “set it and forget it” even harder if all votes delivered equal gas. Ontology and elastos use voting epochs to incentivize re voting and interaction. Could be a time based vote that needs to be reactivated. Council members should actively communicate what they are actually doing to attract votes, whether that is sharing a portion of gas, creating a community fund, managing a wallet, bringing in x users…. Currently I have no idea what Nash is doing with all that gas, certainly not much for Neo. |
@neocactus3 I just proposed something like it. Check #198 |
That proposal doesn't include anything regarding voting activity in my opinion. Also the only voting activity you see now is to make sure you keep getting GAS, so I'm not so sure if losing that is such a big deal. While a mechanism to keep engaging in voting would be great. In that sense timed votes that need a refresh every x days or you'd gradually lose rewards would make much more sense, but that's not a simple change. |
Firstly, I want to say that I’m really happy this topic is now being discussed. It’s something we’ve been concerned about for a long time, and I want to encourage everyone to contribute to the conversation — even if it’s just giving a thumbs-up or thumbs-down to ideas or comments. All the energy helps. I think we have a few different issues we need to address here:
@lllwvlvwlll's initial proposal is a great starting point for solving the first issue — flattening GAS rewards helps redirect voter behavior away from economic maximization and toward other concerns, hopefully ecosystem stewardship. @lock9's proposal when combined with @lllwvlvwlll's, helps address the second point — requiring re-voting every 60–90 days can disrupt passive, long-term voting patterns and encourage voter re-engagement. But this only works if we flatten GAS distribution. Otherwise, the economic incentive to vote for the most profitable node still overrides everything else. Additionally, even with the re-voting requirement, I can still envision voters casting blind votes just to meet the requirement, or automated services emerging to re-cast votes for them every cycle. Or, bNEO may just evolve into a token that just handles re-voting automatically. In these cases, we end up essentially back where we started. So flatting GAS helps in part, re-voting can help in part — and both are improvements to the current situation — but I really think the piece that will help it all come together is solving the third issue: council member accountability. While we can ask council members to do things like provide reports, participate in discussions, and contribute to ecosystem growth through various activities — all of which help demonstrate that they belong on the council and are actively contributing — I believe we can and should still explore protocol-level economic mechanisms that enforce accountability and ensure they remain active and responsive to those who vote for them. There are a large number of people who are simply voting or claiming their rewards without paying any attention to what the ecosystem is doing or what the council members are contributing. For this segment — which I believe represents a significant portion of voters — it doesn’t matter whether council members are providing reports or not. The only thing they care about is whether they’re making money. So unless council accountability is tied to something economic at the protocol level, we’ll never meaningfully influence that group’s behavior. There needs to be some sort of pain or inconvenience to the voter if the council member is not engaged. Here are a few ideas to address this, not as endorsements, but as potential jumping-off points. Hopefully someone smarter than me can come along and suggest more concrete solutions:
Of course, with many of these ideas, there’s the risk of council members automating behavior to simply appear active the same way I'm concerned regular NEO holders would (e.g., with scripts to auto-claim GAS). I don’t have any good suggestions for that yet, but I think it’s something we need to keep in mind. The main point is that we should not overlook the need for on-chain accountability and engagement from council members, especially if we’re asking the same of voters. None of these ideas are silver bullets, but hopefully they spur some ideas more concrete than my own. We can’t have council members sitting idly by and still reaping rewards. There needs to be provable activity — ideally embedded directly into the protocol — so that “set and forget” isn’t an option for them either. |
I agree that a combination of flattening gas rewards and time based voting would solve part of the problem. What if distribution moved from: GAS generated on each block is distributed as follows (from lllwvlvwlll's commit)
to 80% uniform distribution to voting neo. |
They won't cast blind votes if this affects their GAS rewards. That's why there should be a difference if you vote for candidate A or B.
The only way to solve this is by changing Neo Burger or penalizing contract votes (reducing rewards or vote weight).
Anything based on off-chain governance participation is unfeasible and cannot be enforced. A more creative on-chain mechanism is needed, such as allowing votes for multiple candidates, blocking consecutive votes for the same candidate, or implementing a 'vote snapshot' system. In this model, users can change votes freely during a period, but only the snapshot vote counts. That way, users could vote for the next cycle's council this month without affecting ongoing rewards. This NEP raises valid concerns, but flattening the GAS distribution will make voting less impactful. I strongly recommend against it. Only a "Neo Burger with governance steroids" could introduce off-chain accountability tied to node election. |
Flattening the GAS distribution is about making it possible for voters to support someone outside the top 21 without being penalized for backing an up-and-coming council member before they reach that threshold. To me, GAS rewards should be a reward for participating in governance — not a reward for choosing a so-called “correct” council member, which is effectively how the current model operates. Without solving that issue it's impossible to change the status-quo. Anyone who has tried to join the council without a whale backing them has encountered this insurmountable problem. As long as GAS rewards are tied to council status and rank, there will always be an economic incentive to vote for the member who maximizes personal returns, not necessarily the one who will be the most engaged or beneficial to the ecosystem. It means there is almost no fear for current members to be voted out and no feasible way for new members to be voted in. I am totally open to alternatives to a flat GAS distribution, but as it stands, this is the simplest proposal thus far to address the issue of enabling people to vote for candidates outside the top 21 without taking an unreasonable economic hit, and shifting the incentive away from just choosing whichever node yields the most GAS. I have other ideas (such as delegated votes that only come into effect when the delegate candidate achieves enough votes to join the council) but they are all more complicated than the current proposal.
If we do this right, there should still be a difference between voting for candidate A and candidate B - as I said earlier there needs to be economic pain if the council member is not engaged, and that would be a key difference. But I think we can find ways to link that to other economic mechanics than the yield rate, and maybe towards things like how reliably or often GAS is made available to a voting block. As kind of a side note not directly related to my comments above, it's always seemed weird to me that NEO holders have to actively claim GAS but council members don't. |
I agree with the problem: 'the need to support someone outside the top 21 without being penalized', but flattening rewards won't solve it.
This is too abstract to be enforced on-chain. It's also risky to have people who aren't interested in making important decisions. It will result in the same behavior among NEO holders: nodes participating in the governance just to earn. If rewards are flattened, the following will happen:
The first three are critical. They are the favorite activities of NEO holders, and changing them would be extremely damaging to the platform's overall relationship with holders. The only solution is Neo Burger or an equivalent dApp / native contract. Since it's a dapp, it could handle different types of rules to balance vote distribution (in a way that the elected nodes reflect the community's intent). |
In my mind, there are three main groups of voters in the Neo ecosystem. The first group is made up of those who don't vote conscientiously — and likely never will. They’ll either vote purely for maximum profit or just pick any candidate at random for the sake of claiming rewards. I doubt we’re going to change behavior within this group. The second group consists of people who would vote conscientiously — meaning they’d vote for candidates they believe would do the most good for the ecosystem — but right now, they’re incentivized not to. The system nudges them toward changing their vote to the candidate that provides the highest GAS yields or the most consistent return. So they don’t vote according to their principles because the protocol actively discourages them from doing so. Then there’s the third group — those who do vote conscientiously, but only within the limits of the current system. That means voting only for candidates they like, but only in the top 21, because supporting someone outside of that group is essentially throwing their vote away and sacrificing GAS rewards with no clear upside. I believe we should be aiming to:
When it comes to governance, there will always be an off-chain component. Council members should report on their work, contribute to ecosystem growth, build products, run events, support marketing, evangelize Neo — all of these efforts should be encouraged and factored in when selecting council members. But we all know that’s just one layer of governance. A lot of people will never pay attention to those things. And there will always be council members who campaign for a seat and then disappear. That’s why I believe we need an on-chain mechanism — not to measure productivity, but to act as a kind of “proof of life”. Something that demonstrates the council member is still there and paying attention to Neo in some capacity. That could be as simple as regularly claiming GAS, or periodically signing an on-chain message or transaction — just something that proves they’re still engaged in some capacity. It’s not foolproof — but neither is off-chain governance. And if we have this on-chain mechanism in place, we can at least introduce a consequence for voters who support inactive council members: if that council member fails to meet the basic on-chain criteria, their voting base receives reduced or delayed GAS rewards.
When I think about all the teams we’ve lost over the years — or the teams we still have — who could have done/can do so much more with the resources that come with being a council member — I don’t look at the GAS APY calculators and feel like that would be any great loss. If redirecting rewards enables more teams to build, grow, and contribute much more interesting things to do in the ecosystem than play with a GAS APY calculator, that seems like a worthwhile trade-off. And I say that as someone who runs one of the most popular GAS APY calculators which would be rendered useless. I'm not convinced by the second and third point either, especially if we have the re-vote and "proof of life" mechanisms. You could make the argument that there would be more reasons to check on your vote than there is now.
Lastly, I don’t see any meaningful difference between voters picking the first name on the list and voters today who just support the last node with the best returns. Or those who just let NeoBurger do it for them. Functionally, it’s the same behavior — and under this new system we’re discussing, it’s arguably less damaging, because at least those votes will expire every 60 to 90 days and can be refreshed or re-evaluated. I know I’ve said a lot already today, so I should step back and give some space for other community members to chime in. I’m totally open to changing my position — I’d actually love to be convinced by a better idea — but as of now, I haven’t been convinced of the risks enough to move off it or seen an alternate proposal that addresses these issues more effectively than what we’ve outlined here so far. |
In general i agree with this proposal, but in the meanwhile I sort of sharing this concern. reputation system should be involved at least, people should know the behavior of a node, and know who they are voting for.... Or voting for rules, such as
alike. |
This proposal is nice and I think for example removing the |
If there should be a reputation system involved, it should likely include two things: node uptime and contributions to the ecosystem. One is quantitative, and the other is qualitative, but they're both equally important when someone is examining their best options of who to vote for. I'd really like to see a) NEO voters get GAS for voting for someone outside of the Top 21, and b) Council members to prove their worth. I haven't really put much more thought to paper yet, so at the moment, I don't have much more to add to my suggestions. Maybe the inspiration will come over the weekend. |
In the past we had discussed on chain statistics of CNs. I think that publishing CNs stats,agreed during block generation, is a first step to have a public view that can be the basis of a true certified reputation system. |
I certainly can’t speak on behalf of anyone else, but I can say a few things. First, I don't think it's NGD/Neo Foundation votes that are keeping council members in the top 21 at this point. For the members they support, I think they receive around 100,000 to 150,000 NEO in vote support — whereas the lowest-ranked council member currently has a little over 700,000-ish NEO in votes. So even if you removed the NF support the council would remain largely unchanged. (You can look at Neo SPCC's current status as a reverse example of this - they lost the support of a whale, but the remaining votes which I believe is the NF support, does not keep them in the council). Second, based on conversations I've had there is definitely interest on Neo’s side in promoting more diversity and activity within the Neo Council. So as far as NeoBurger voting goes, I don’t think it’s the cause of new candidates being unable to join the Council. If anything, it’s more a symptom of the system’s current structure than a root cause of the problem. |
DHF said that NF holds at least 25M NEO. Recently, they also deposited one million Neo into the bond address. The same is true for Neo Burger: it has almost 2 million Neo deposited. That's more than all current votes combined.
It seems naive to think that NF/NGD/Neo Burger can't intervene. It looks more plausible that they don't want to. Decoupling the gas distribution from the top 21 would cause votes to change, but that alone is dangerous and insufficient. What would happen if four of the top seven elected nodes aren't online? Afaik, it would lead to the network becoming permanently bricked (if these nodes never become online again). Lastly, it's worth mentioning again that a reputation system is not feasible without a DAO or equivalent. You need NEOs to be elected, and that should not change. Changes to Neo Burger are the only thing that can solve the problems mentioned in this proposal, with minimum risk. |
Many of these things were previously discussed in neo-project/neo#1617. I'm not commenting on the economic part, it's hard to say what's more appropriate there, but my concerns wrt any changes in this area are:
Regards, node 22 owner. |
The current system does very little to support community accountability and contributions. Is it stable? Yes. Is it good for the future of Neo, doesn’t seem like it. Give Neo voters power to vote in new projects and we will see a much more thriving ecosystems this desperately needs to change. |
This comment from @Elean0rZ on that issue was prophetic:
It's a valid concern that we need to maintain a certain level of stability within the consensus nodes, and the current system does allow for that. That was also my recollection of why the system we have now was originally chosen. However, given the other concerns outlined here, it’s clear we need to find a better solution. A few days ago, I kind of broke down the different issues that were emerging here — and I think we might want to add one more to that list. To recap:
Maybe it’s best to scope each of these concerns as separate issues here on GitHub? I do think they deserve their own focused conversations. Each one likely has several paths forward, and I’m looking forward to seeing some proposals take shape. It might be hard, but most things worth achieving are on the other side of hard. |
The Neo platform is a proven innovator in many areas in the blockchain space. One particular differentiator is the
unique tokenomic model which rewards NEO holders for participating in our delegated governance process without a lock period. In our current implementation, we only distribute notable reward to voters who support active council members on the voting epoch. GAS is uniformly distributed to each council member's voting bin, then uniformly distributed to the voters in the bin. This process results in a GAS distribution to voters that is inversely proportional to the governance rank of council members, with marginal GAS being distributed to those who vote for candidates without a council seat.
In the field, we have experienced some issues with this distribution strategy. In particular, council "stickiness" has become a significant problem and has led to complacency within platform governance to the point where we increasingly risk being unable to reach the signature threshold for approving protocol level changes without direct Neo involvement.
This proposal will specifically target enhancements to the GAS distribution mechanism to align governance engagement and community participation motivations. The initial specification is a
minimalist
approach and is intended to initiate the discussion. It needs to be evaluated with equivalent scrutiny to any other approaches outlined in the following discussion.Enhancements considering other areas of the governance process including consensus node succession and voting mechanics should be modularly handled in other proposals.