-
Notifications
You must be signed in to change notification settings - Fork 33
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
[WIP] On-Chain Governance Implementation #6
Conversation
It was brought up - how do we manage wallet sizes changing - One day I might have the biggest wallet and win the vote but the following day you might have a larger wallet - What happens then? If this hasn't been addressed I reckon we should look at the council members serving terms possibly 1-2 years but with the option to remove them - I'm not sure how we'd work removing them - I'm sure if we didn't allow removal we'd end up with some malicious actors |
If removing elected representatives by fiat is an option, without an election, the centralization issue is not addressed and a governance system is superfluous altogether. The removal decision needs to be done by peers in order to be valid and a viable option long term for a serious project. |
100% agree we need to look at something like a court system if majority of the council feels that a council member is not performing - then they should present their case to the public and the council member the same and then allow the community to vote to remove someone from power |
No implementation will be perfect but a system needs to be in place. I propose the first order of business for first council is ratifying a constitution that all follow on councils will abide by (vote ratio requirements, rules, regs, etc). 1-2 years is too long in crypto; I propose 1 million block intervals between elections and a council member can be removed by a community consensus. It’s a math problem; the likely participation rate will be inline with the node participation rate so at around 50% that leaves 50% of etho in circulation floating on average available for a takeover/removal for a bad actor. The council member removal method should be something along the lines of the amount of etho held in support of the other 9 members needs to be exceeded for a removal vote of the bad actor. Makes it very very difficult for someone to accumulate all circulating etho to force a false removal of a righteous leader but still doable in the event of an emergency as most node owners would likely be particpants in the vote/removal of a legitimately bad actor. |
I could live with 1 Million blocks. It would seem common consensus from the few that made comments on the discord about this proposal is a larger Council size. The suggestion I saw was:
I'm not sure how I feel about such a thing - I think 10 is a good number if the council wishes to change it then they have my blessing. As of last night, there are tons of circulating ETHO and it's cheap too - I've been stocking up making sure I'm on the first council. 😄 EDIT: I don't think the size of your vote should equal the size of your wallet - Vote ratios should be
There again it's based on wallet sizing but at least it's not I have 10 votes because I have 10K - if you're in top 5 - you get 2 votes. If you're in the bottom 5, you get 1. |
Disagree about giving the top 5 addresses 2x more voting power in addition to dev funding. If anything dev funding should go to the addresses not already in the top 5. |
Well, then ratio it 1:1. I don't really mind the specifics - I don't agree with anyone < The 5 top getting dev fund. Perhaps swap it around. 1:2 Voters only. |
The system needs to be kept simple in order to promote participation. You need more than 1 or 2 controlling the dev fund to make it harder for bad actors to control the economic viability of the project but not more than 5 as diluting economic control too much will hamper progress and ability to get things done. An example would be 20 in control of the dev fund (which i feel is too many), at current reward levels that is only 10k etho per month per leader if it were top 20. 10k etho would not be enough for any one person to get anything substantial done. The overall leadership council needs to be larger than 5 though in order to promote control decentralization over project direction. Its not purely about individual wallet size as any number of community members holding smaller wallets can dedicate their voting power toward a candidate they wish to see have more control (like potential economic control in the top 5) hopefully giving more power to a broader range of interests. There will always be the top 2 or 3 holders in the group but with broader participation of the community, hopefully the individualized control is sufficiently diluted and decentralized. |
I 1000000% dont think ANYONE should get paid just for holding etho - thats absurd - I also dont think this will work - youre going to have people with money influence the coin - just like money in politics - It needs to be independent in some shape or form - the voters should be elected not based on how wealthy they are thats just not fair. |
@pistol22cal But you can't dispute it kinda makes sense because the biggest holders are the most heavily invested so they need Ether-1 to succeed the most so by doing this we're forcing them to work or they are forced to hire a proxy to work for them to ensure Ether-1 is successful. |
@fallengravity dont get me wrong i see what its meant for - but whats to stop someone who is malicious from buying 10000$ worth of ether-1 and say ok now i have 1/5 the say ? |
Or say a group of 5 people ? @fallengravity - I mean with 1 BTC you could split enough etho so those 5 would run the coin |
That's the thing they don't have 1/5 of a say, they have 1/10th but, provided they are in the top five then they will get a cut from the dev fund which they can use to hire workers etc. Even if a group were to take over 50% they'd have to do some work otherwise their 10000$ worth of ETHO is going down the shitter. Plus that's why we spoke about implementing a system to remove the nefarious actors. |
There would only be two ways to get into the top 5:
One foreseeable problem is someone buying a seat to just collect the dev fund reward. This would only hurt themselves by devaluing their own investment but a community removal vote would also be an option. We need to balance both commitment, desire and ability to lead the project in a positive direction and the only two ways to measure this are by financial commitment and community desire to have someone lead and implement interests for the greater good. This is again not perfect but is any democractic-like system? All details are still open for debate so if you see a better method propose it here and we can weigh the positives and negatives. |
I like the idea as laid out, the support piece I think is key for making this work. As it allows active members that may not have the ETHO to get on the board. Question for the top 5 spots, is that purely ETHO wallet based (their own wallets) or does the top 5 also have the ability to get support from the community (so someone who is active but don't have enough ETHO to get top 5)? Personally, I think all 10 spots should be race-based and the top 5 given the vote/dev rights and the bottom 5 just voting rights. Another point would be what about the exchange wallets as they are clearly top wallets?. Great work James :) |
The intent was to allow all council positions to be supported by community members. It boils down to a simple sum of etho backing. Since we cannot accurately determine ownership of any given wallet then we need to allow all wallets to be allowed to put their vote/backing toward any one position or candidate. If you chose to vote for yourself by using your own funding/backing that is your prerogative but be aware that you can be removed if an overwhelming majority desires this outcome. Being difficult to remove an elected leader is necessary as to not allow for discarding leaders due to someones whimsical preference. Exchange wallets are publicly known so we can exclude them from the process. |
Sounds great man, I look forward to seeing this in practise :) |
Now it looks like we just need to figure out how to make Stex put their ETHO up for me 😂 Side note - I see this link is referenced in line 27-30 in consensus/ethash/consensus.go Link being:
Takes me to page not found - Did I miss something? |
It’s not a full buildable repo yet as contract and rules aren’t finalized. The contract address in consensus.go only exists on a testnet currently. Contract code, bindings and sorting are missing from the build. Once we finalize rules, I’ll finalize contract/bindings and push full repo for testing. |
Ah alright thanks - Sounds good to me. |
May I suggest James holds a permanent seat and then 10 others can be elected and replaced as suggested. That would mean there won't be any deadlocks, James would be the swing vote. It is his project and I think it is more then fair he gets a vote. |
Good point about a deadlocked council. Moving the council to 9 or 11 members may be prudent to address this. I would push back with making myself a permanent member as I think the rules need to be the same across the board. I would hope the council/community would like to keep me around for now but in the future if my vision/direction is counter to what the consensus is I don’t think I should have any more control than is available to anyone else. I would like everyone to be on an even playing field and despite what others may think I want less control. As long as the community wants me on the council they are free to put their voting power behind me or anyone else. More often than not someone who has strengths in development/coding lacks skills in leadership. I am a good example of this so allowing the community to have absolute control over leadership is imperative in my opinion. |
I want to add another caveat here. The top 5 will have economic responsibility: what does this mean? With current market conditions I periodically have to contribute my own funds to operating costs. When governance goes live and the top 5 take over control of the dev reward they will then be responsible for assuring project longevity which includes figuring out operating costs. Control of the dev reward is not as glamorous as everyone thinks. |
Can the community freely withdraw their pledged support at any time or only during each 1MM block vote? |
They can freely move around their support at any point - this gives the feel of polling during an election - so a leader can see their own real-time support but results will only be certified and positions changed every 1MM blocks. |
Just a point about using github. I understand the format is more professional, however I think the move to a different medium should be considered after governance, not before it. The discord has around 2000 members, whereas only a handful have been active on the github. I think the precedent is clear that discord is the prefered medium of converse. This means as a measure against the discord community there's been around a 0.4% participation rate on github, which I don't think is particularly indicative that the move to github has been welcomed. While the number of people involved does not correlate directly to the quality of discussion, I think a much better and inclusive discussion can occur in discord. I don't see any reason to make it more difficult for people to chime in than absolutely necessary, as governance is an important topic which should be fully discussed and debated. |
Pistol | Ether-1 Today at 5:09 PM [cryptocasca]Today at 5:09 PM |
Vote participation should be something to think about. I think it's naive to think all holders of ETHO will be interested in participating in governance. This is why I think there are a higher % of users who are active in the community who run nodes compared to the % of users who are active in the community who simply hold to ETHO. Thus making a governance system based on active participants to achieve better results on decision making. |
It seems we are leaving discussion of a leadership council and turning to voting methods. Our first priority should be to determine what takes over leadership/planning/responsibility of the project to solidify long term goals and viability. We can then have a vote on the preferred voting method to get there and whether or not we should value node owners more than etho holders. I think most are on the same page with top 5 council members controlling economic responsibility but the debate is around total council size. I propose moving the total council size to 17 due to majority of input that has been put forward. Once council is in place is a simple majority required for a passing vote? Or a supermajority? The initial proposed council member removal process is as follows: This removal vote is the current best running theory but does have flaws. One of the potential flaws I see is that it would take less vote backing to remove #1 than it would take to remove #17. I would like to see some comments/concerns on this point and potentially some alternate ideas put forward for a council member removal. |
I think the voting out mechanism proposed above is not the most easy to understand or the most natural way to go about it. I think the vote should be a simple up/down vote where the number of ETHO for removal is subtracted from the number of ETHO against removal. If the net number is more more than the backing used to elect the member in question, they are removed. For example: Council member #4 has backing of 500,000 ETHO. Council member #3 proposes that #4 should be removed from the council because he/she never spends any ETHO on Ether-1 improvement and doesn't communicate in a timely fashion. 12 council members with total backing of 4,000,000 ETHO vote YES The net vote ends up with 4MM-1MM = 3MM to remove the council member. The vote needs 500,000.000000001+ ETHO to succeed. This way getting #1 removed from the council is still feasible if it's necessary. Removing lower equity members is also feasible if necessary. |
In general, 50%+ votes are required to pass everything except things that change the rules of the council. That will require a supermajority. |
I think 17 is a good number for counsel with top 5 being responsible for the dev fund. I think all regular votes should require 2/3 participation with a simple majority for a passing vote. As for removing a member, the above solution seems a little complicated. I was thinking a much simpler vote with a passing vote requiring 2/3's votes by the remaining council members. |
Let's say it's a 17 person council. Are votes going to be based off the numbers of the council or based on the ETHO backing? For example: IMO we should go off the numbers of the persons voting. In the example above, the bottom 12 could win because they have a supermajority in the council representation itself, regardless of the backing. The ETHO backing comes into play for votes regarding member removal and for member elections. For votes regarding membership itself (i.e. removing bad actor), the member is removed immediately upon vote completion and the #18 person on the list of ETHO backing becomes the new member. The only complication here is actually contacting the #18 person and letting them know they are not responsible for voting. |
I agree, ETHO backing on comes into play in choosing counsel. After that, it's 1 vote per member to achieve and pass/fail vote. As far as removing members I think it's the counsel's responsibility and done much in the same way as a regular vote except it requires a higher % to pass. If the community is unhappy with the whole counsel there could be a way to achieve enough backing to trigger a new election. |
I'm interested in how this is logistically going to work - thinking about it further without some sort of irreplaceable figure it's tough, For instance:
How would such a thing work with this governance system? Furthermore: What if the council selected is not technically capable but refuses to hire James? Things like the node payout mechanism & Node DB are not toys. One mistake, one incorrect EDIT: Not trying to be a downer - Just questions I don't have an answer too & they're important things that need to be addressed. |
@fallengravity see this is my concern as well - just because you hold a lot of Ether-1 doesn't mean you know what you are doing. From how I read everything, the council has full power to do whatever whenever, as they wish. To make changes, hire and fire, hell they could say we want Ether-1 to be CN based algo OR remove or change any and all aspects of the coin without challenge or question. From BR to Node Rewards - To even restarting the project and implementing any changes they wanted. |
Well, the idea works very much like the government. The community backs ppl they feel have the best views/direction of the project with hopes that once on council they will fight for these changes. With a council of 17 ppl is really unlikely to see huge changes without the communities backing (such as algo changes, reward structures, etc). I do think we can maybe do this in stages where James would still hold power for the first few elections so that the council doesn't have complete control, in the beginning, to see how it works out. |
@fallengravity and @pistol22cal The reason I think we should let the council make these fundamental decisions is to get more heads into the process and have them know the stakes these decisions hold for the future of the project. The provisional council will be assisted by the current de facto reps of the project. Once this provisional body has done its deliberations and all processes and procedures are in place along with the charter/rules, the final system will supplant the provisional system. |
Still unsure how we’d be able to do any business with companies that require us to be a legal entity - EG: Apple.
Can you change the owner of a company every 150 Days? If you can, how does one ensure that change of hands occurs a sour person who wishes to not have been voted out in the latest election but was previously holding the rights to the company? He/she could simply refuse to hand over. Not sure how American law works.
…Sent from my iPhone
On 27 Mar 2019, at 21:10, James Keir ***@***.***> wrote:
Well, the idea works very much like the government. The community backs ppl they feel have the best views/direction of the project with hopes that once on council they will fight for these changes. With a council of 17 ppl is really unlikely to see huge changes without the communities backing (such as algo changes, reward structures, etc). I do think we can maybe do this in stages where James would still hold power for the first few elections so that the council doesn't have complete control, in the beginning, to see how it works out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@Primate411 I like what you have said here - - - @fallengravity Owners of a company are changeable at any point in time - In the USA a Corporation is its own entity it exists separate from those that govern its day to day activities - LLC - S Corp - C Corp are all normal option each of which have advantages and disadvantages. These will need to be discussed with a lawyer and I would HIGHLY recommend that @Dev-JamesR seek legal counsel. |
All interesting, lots of very loose ends that need to be tied up, **lots** being an optimistic view.
|
A corporate structure is a completely separate issue. The coin/chain itself is a decentralized entity governed by this leadership council which will never have a corporate structure. The corporate structure needed for things like mobile wallets will need to be a separate entity similar to ethoLabs which could have a permanent group who runs it. It will be up to the Ether-1 Leadership Council to determine if this entity should receive some sort of funding or not so it can continue to exist. |
There's a good chance we will end up with a multi chamber system at the end. But we can't put the cart before the horse and design all the unknowns into the perfect system without all the stakeholders at the table. Here's a very simplistic workflow for the governance process to get things bootstrapped:
This is just a brain dump, we will most likely need to improve the specifics of this workflow. |
I think all the points made are very helpful and im happy to see everyone coming together. Perhaps there should be some kind of opt-in where we can visualise just how many members of the network are interested in actively participating, we may be surprised by the numbers. Having a good understanding of just how many people would be interested enough in the first place to put themselves forward would probably eliminate a few unnecessary discussions. |
GreedMOTO I did not know where to post this so apologies if this is the wrong location. I just wanted to give my $0.02 Etho perspective as someone who has been here since before launch. I support a committee. I like the idea of a leadership team. I even like the idea of elected delegates. But with regard to voting I disagree. I am not convinced that a select few will have or share my motives (whatever they may be) and I do not want to count on someone to speak for me. I would very much like to at least discuss the voting side of things. Signalling to the network with a node ID to cast a vote gives EVERYONE invested (big or small) a voice that counts. Larger bag holders with larger nodes and multiple nodes will also have weighted votes. But everyone gets to have a say. This fosters community involvement well beyond talking to the people who will vote for you and limits the power of the huge holders. This is not to say that major players shouldn't have a say; it just evens the playing field where the smaller holders can affect the future too. Sorry for the wall of text. This has been on my mind for a few days and I see that discussion of node voting got buried and dismissed. |
So quick thoughts:
IF we’re being serious about governance & removal of members from council. Why do we not implement a court system?
Instead of relying on the bigger wallet for removal we should rely on judgement.
This is how I see it working:
A member from council, let’s call him member X decided another member from the council, member Y, is not performing and needs to be removed. Member X says he will be launching a removal Vote. Member X my present a case against member Y showing proof he/she is abusing the system and should be removed. Member Y must show proof as to why he/she isn’t abusing the system and shouldn’t be removed. A community vote is then started - voters read each parties statement and then decide reject the removal, abstain from voting or accept the removal (Voters being the community at large. Removal based on majority {51/50})the other way around is to allow and independent organization such as ethoLABS to hear each parties case and then vote on it with removal being based on the majority (51/50).
Obviously the details such as how cases are presented should be taken into consideration possible presentation: a Google doc where both council members (The person starting the removal voted and the accused) have 24 hours to create a comprehensive document to support their arguments which is then reviewed by the community/independent body and the decision is made after 24 hours from the release of both parties cases. If the member who proposed a removal vote does not create a supporting document the case is thrown out. IF the accused does not create a supporting document it is proof enough that they have no proof to support their council membership & therefore the removal is automatically passed without needing deliberation or a vote.
Those are my thoughts on removal - not sure how everyone feels about it but my personal opinion is that removal needs to be based of community not wallet.
|
It has been over 24 hours since we posted a vote in the discord asking:
We've had 8 interested parties - I think 17 Might be stretch from the council sizing - that being said in all fairness there was no ANN asking users to vote but still - it's a good indication of who is watching & interested and I can say with some level of confidence starting with 17 is far too big. |
Hi, so I will add my thoughts on this topic. Voting: Imho give votes based on money only is not good idea. We have advantage of existing (and working) master node network, which we can use and vote foundation. The core idea is, that we want to have decision makers, which are engaged into the project and want it to sustain. I propose to give vote to system/master/gateway node operators, which operates node for some time, so we know, that they are here to support project. E.g. after month of running system/master/gateway node you will get 1/3/7 votes to vote with. If your system/master/gateway node loses collateral you will lose your votes (counted per node). It would be reasonable here to penalize node down time as well, but not that strictly as with rewards. E.g. you lose funds after 3 days of MN inactivity Dev fund and council: Giving dev fund to single party only, we may risk either slow voting process from node voters or fund depletion by rogue council members. Dev fund and multi signature proposals: Council contract would handle council member vote as well (voted by node ops). Council: I also mentioned (in discord) possibility of KYC in case of council members. There are multiple ways how to handle KYC and stay anonymous and no doubt it would be great to have KYC approved council. It may not be necessary, but I believe, that if people interested joining council provide their KYC approval, they will have much higher chance to get elected. Voting: It would be 70% of votes joined the voting process not 70% of all available votes (possibility not to participate in vote). E.g. council vote would require each member to have at least 70% approval rate of votes assigned to him and top XX members would be selected. We will also require continuous voting mechanism e.g. council members. My vision is, that I dont have to vote for specific council member every month (the ideal election period imo), but I would assign my yes vote for year. I could change it each month, but without my action it would be applicable for a year. After a year it would be invalid and require me to vote again. (To prevent zombie votes). Final thought: Vote and funds control should be interconnected - ideally implemented as smart contract. To clarify: multi signature and decentralized governance are two opposite philosophies of organization. Multi sig dev fund basically renders governance useless. So either we have to drop multi sig idea in favor of smart contracts or any other technology allowing dynamic fund management or it makes no sense to talk about governance. V. |
* added tests for new abi encoding features (#4) * added tests from bytes32[][] and string[] * added offset to other types * formatting * Abi/dynamic types (#5) * Revert "Abi/dynamic types (#5)" (#6) This reverts commit dabca31d797623d43bd780721fc0ad461d24be53. * Abi/dynamic types (#7) * some cleanup * Apply suggestions from code review apply suggestions Co-Authored-By: vedhavyas <vedhavyas.singareddi@gmail.com> * added better formatting (#8) * review chnages * better comments
Gentleman, I am educating myself on the issue and will provide comments when I feel they can add value. Great job. CT. |
Whatever is decided the number for any Board or Council needs to be odd to break any stalemate. I would say 5-9, no more than that. Also while some have chimed in on other ideas like GW node operators and such I am not so sure. If the project is going to attract others people than geeks (and I'm a geek node operator) --- in a broader sense we may want people on board that aren't geeks. We don't want to rule out non-geek participants. I do not believe anyone should be given a permanent seat. More thoughts to come. |
I agree with @hashratez about the odd number. The council of 9 had a nice ring to it. The reason some folks feel strongly that node operators should get a seat at the table is because node operators are the spine of the decentralized network. Without the node operators there's nothing to rule over, which is exactly the word they will use when they describe what the council of 9 does to them all the time in the future. Bitcoin has its geeks that keeps it going, Ethereum has theirs and Ether-1 will have our own and we want to make the governance more inclusive as possible to account for the extra responsibility inherent within our system. People are uploading stuff to our nodes, we should have some say about all that stuff. A single body like the council of 9 has a possible flaw of being too aggressive or disconnected from reality or a variety of other things. If we split the "legislative" process into the council of 9 + node operators we can put rules in place that prevent something from passing if it has broad node operator dissent. Another item for thought is making sure we have people who own project domain names and githubs be part of separate governance body to check the legislative body with a supermajority overrule option. |
5 is too thin. I like 9-- more diverse but not unmanageable. |
* internal/build: implement signify's signing func * Add signify to the ci utility * fix output file format * Add unit test for signify * holiman's + travis' feedback * internal/build: verify signify's output * crypto: move signify to common dir * use go-minisign to verify binaries * more holiman feedback * crypto, ci: support minisign output * only accept one-line trusted comments * configurable untrusted comments * code cleanup in tests * revert to use ed25519 from the stdlib * bug: fix for empty untrusted comments * write timestamp as comment if trusted comment isn't present * rename line checker to commentHasManyLines * crypto: added signify fuzzer (#6) * crypto: added signify fuzzer * stuff * crypto: updated signify fuzzer to fuzz comments * crypto: repro signify crashes * rebased fuzzer on build-signify branch * hide fuzzer behind gofuzz build flag * extract key data inside a single function * don't treat \r as a newline * travis: fix signing command line * do not use an external binary in tests * crypto: move signify to crypto/signify * travis: fix formatting issue * ci: fix linter build after package move Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Governance system will consist of a 10 person leadership council
General Information: