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

[WIP] On-Chain Governance Implementation #6

Closed
wants to merge 3 commits into from

Conversation

Dev-JamesR
Copy link
Contributor

@Dev-JamesR Dev-JamesR commented Mar 21, 2019

Governance system will consist of a 10 person leadership council
General Information:

  1. Top 5 (rank 1-5) address/users ranked by holdings will be given economic decision making responsibility by splitting development reward among them and voting rights on leadership council
  2. Next 5 (rank 6-10) will be given voting rights only.
  3. Leaders/users will have the ability to link multiple addresses to combine holdings
  4. Leaders will have the ability to designate a proxy for decision making/voting
  5. Leadership council registration will be through a smart contract - nodes will then pull ranked addresses and disperse development block reward
  6. Community members will be able to contribute to a leaders campaign similar to an election simply by sending a tx signaling the use of their own holdings toward the leadership position
  7. Community members will also be able to withdraw campaign support and re-dedicate to a different candidate

@fallengravity
Copy link
Contributor

fallengravity commented Mar 21, 2019

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

@Primate411
Copy link
Contributor

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.

@fallengravity
Copy link
Contributor

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

@Dev-JamesR
Copy link
Contributor Author

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.

@fallengravity
Copy link
Contributor

fallengravity commented Mar 22, 2019

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:

15 Voters
5 Economically empowered

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

2:2 - For economic council (2 votes each)
and
2:1 - to the regular council

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.

@Primate411
Copy link
Contributor

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.

@fallengravity
Copy link
Contributor

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.

@Dev-JamesR
Copy link
Contributor Author

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.

@pistol22cal
Copy link

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.

@fallengravity
Copy link
Contributor

@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.

@pistol22cal
Copy link

@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 ?

@pistol22cal
Copy link

pistol22cal commented Mar 22, 2019

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

@fallengravity
Copy link
Contributor

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.

@Dev-JamesR
Copy link
Contributor Author

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.

There would only be two ways to get into the top 5:

  1. You invest heavily enough into etho to buy yourself a seat - the likelihood of someone investing heavily in the coin to solely try to hurt it would be counter-intuitive as they would only be wasting their own investment. By the off chance this does happen, a community removal campaign backed by an equal or greater amount of etho backing the remainder of the council would remove them.

  2. You are put in power by enough etho holders backing you to dedicate their voting power toward you. This is up to the community to only put people in power that will serve wider community/project interest.

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.

@qbvbsite
Copy link

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 :)

@Dev-JamesR
Copy link
Contributor Author

Dev-JamesR commented Mar 22, 2019

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.

@qbvbsite
Copy link

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.

Sounds great man, I look forward to seeing this in practise :)

@fallengravity
Copy link
Contributor

fallengravity commented Mar 22, 2019

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:

GovernanceAddresses "github.com/ethereum/go-ethereum/consensus/ethash/governance"

Takes me to page not found - Did I miss something?

@Dev-JamesR
Copy link
Contributor Author

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.

@fallengravity
Copy link
Contributor

Ah alright thanks - Sounds good to me.

@alobergsli
Copy link

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.

@Dev-JamesR
Copy link
Contributor Author

Dev-JamesR commented Mar 23, 2019

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.

@Dev-JamesR
Copy link
Contributor Author

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.

@Primate411
Copy link
Contributor

Can the community freely withdraw their pledged support at any time or only during each 1MM block vote?

@Dev-JamesR
Copy link
Contributor Author

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.

@Joseph63211
Copy link

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.

@pistol22cal
Copy link

pistol22cal commented Mar 24, 2019

Pistol | Ether-1 Today at 5:09 PM
@[cryptocasca] - the rich get richer ????? But price increase is good for everyone and 1 etho = 1 etho ------ however as price increases - the powerful become more powerful as the barrier to get into the top 10 goes up in terms of FIAT cost to enter?

[cryptocasca]Today at 5:09 PM
We haven’t even turned on the car. I agree.
Yes. That’s my point pistol.
We’ve seen this happen already in other coins.
Dash is a great example.

@Mu5tbenice
Copy link

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.

@Dev-JamesR
Copy link
Contributor Author

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:
If one member is to be removed the backing for this removal needs to be greater than the total backing of all voting power used to vote in the other 16 members.
Example:
The proposal is to remove council member ranking #4.
The total vote backing for the entire 17 person council during this election period was equal to 4500000 etho.
Council member #4 had a backing of 500000 etho.
It will take a removal vote of a total vote backing greater than 4000000 etho to remove council member #4

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.

@Primate411
Copy link
Contributor

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
5 council members with total backing of 1,000,000 ETHO vote NO

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.

@Primate411
Copy link
Contributor

In general, 50%+ votes are required to pass everything except things that change the rules of the council. That will require a supermajority.

@qbvbsite
Copy link

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.

@Primate411
Copy link
Contributor

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:
Bottom 12 members vote to change the rule of the council but their ETHO backing is less than that of the top 5, who all vote against changing the rule.

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.

@qbvbsite
Copy link

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:
Bottom 12 members vote to change the rule of the council but their ETHO backing is less than that of the top 5, who all vote against changing the rule.

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.

@fallengravity
Copy link
Contributor

fallengravity commented Mar 27, 2019

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:

Apple rejected our mobile wallet from the app store because the app was not created under the same name as the coin: Ether-1. Which means we have to be a legally recognized company to publish the wallet.

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 , and you could subsequently destroy the entire projects - We've all seen it happen with other projects. So how does the governance system handle these things?

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.

@pistol22cal
Copy link

@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.

@qbvbsite
Copy link

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.

@Primate411
Copy link
Contributor

@fallengravity and @pistol22cal
Very valid concerns are being raised here and decisions will need to be made to flesh out the rest of the governance system. These discussions and decisions will be best made by the first council after it's elected. We need to compile a list of things that need to be addressed by the first council, such as: electing official officers, establishing corporate identity, addressing infra costs, etc. We need to discuss how proposals/changes are brought in front of the council. We also need to designate 2-3 official mediums where the council members will be allowed to discuss the matters. To that end, we need to find a simple system to verify council wallet membership for acceptance into the discussions.

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.

@fallengravity
Copy link
Contributor

fallengravity commented Mar 27, 2019 via email

@pistol22cal
Copy link

@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.

@fallengravity
Copy link
Contributor

fallengravity commented Mar 27, 2019 via email

@Dev-JamesR
Copy link
Contributor Author

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.

@Primate411
Copy link
Contributor

Primate411 commented Mar 27, 2019

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.
Look at the community participation right now. Not very many are clamoring to get into the weeds of good governance.

Here's a very simplistic workflow for the governance process to get things bootstrapped:

  1. Decide on election rules and logistics (and kick off ASAP, allowing plenty of time to vote)
  2. Decide how council members and team members will communicate after the election is finished
  3. Decide how provisional governance voting will work and criteria for "going live" with the permanent governance system
  4. Begin council + team deliberations. First statement of work is devised and voted on then work begins in earnest to hammer out the various details. Break up the decision categories as much as possible to allow for the puzzle pieces to easily fit into the final tapestry.
  5. Finalize all deliberations and prepare final document with all the accepted parts from the delib process
  6. Go live with the governance system and elect new council members as part of it. (if you want to design fair a system, give it to your potential adversary for testing)

This is just a brain dump, we will most likely need to improve the specifics of this workflow.

@Mu5tbenice
Copy link

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.

@pistol22cal
Copy link

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.

@fallengravity
Copy link
Contributor

fallengravity commented Mar 29, 2019 via email

@fallengravity
Copy link
Contributor

It has been over 24 hours since we posted a vote in the discord asking:

Would you be interested in being elected as an active council person in the governance of Ether-1? The position requires weekly participation. This is just a theoretical poll to gauge interest in governance.

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.

@cryi
Copy link

cryi commented Mar 30, 2019

Hi, so I will add my thoughts on this topic.

Voting:
It would be really beneficial to stick with foundation of crypto ideology - decentralization. Giving full power to one group people elected or not is not always best and not always provides best outcome.

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:
I understand that we need way to act more promptly in some situations, so I propose partitioning of dev fund - split dev fund equally between the council and node ops voters, so node ops can support ethoLabs and other proposals (doable through SCs) and council can use funds to drive direction of project and more short term objectives - e.g. marketing, dev bounties etc.

Giving dev fund to single party only, we may risk either slow voting process from node voters or fund depletion by rogue council members.
Additional benefit of splitting is possibility for node ops to decide to fund things, which council refuses or vice versa.

Dev fund and multi signature proposals:
Multi signature is not flexible in may eyes to fit our needs. Using 2 smart contracts (for council and node ops) we can secure proper transition of funds based on voting process - eliminating any possibility of wallet with holding.

Council contract would handle council member vote as well (voted by node ops).
Node ops contract would handle only fund distribution, which node ops manages.

Council:
Count of members is not that important for me, but I would not go under 5 or above 20. Also council has to be voted and not buy-able. (Giving vote rights to nodes handles it nicely, because if you would like to buy place in council, you do not need only to buy majority of nodes, but you have to manage and pay VPS fees for them to keep your position)

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:
(optional) I like idea of 70% limit for vote to pass to prevent any 51% votes. For me 51% is not enough and we can always join talks adjust proposal, adjust vote to met requirements of most of community members (70%). It should also limit potential ideology based forking (e.g. BTC SV, BCH) as we ensures that community is more or less united.

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.
Here you may argue, that in theory it is possible to become council member with 1 vote. We can prevent that with limit minimum of community votes required to be applicable. Above 20%/30%/40% whatever works for us. But I would go for anything below 20%. Not everyone is going to vote. And you are always able to check all candidates/options and vote against...

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.

Dev-JamesR pushed a commit that referenced this pull request Apr 25, 2019
* 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
@hashratez
Copy link

Gentleman, I am educating myself on the issue and will provide comments when I feel they can add value. Great job. CT.

@hashratez
Copy link

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.

@Primate411
Copy link
Contributor

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.

@hashratez
Copy link

5 is too thin. I like 9-- more diverse but not unmanageable.

Dev-JamesR pushed a commit that referenced this pull request Mar 25, 2021
* 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>
fractalyse added a commit to fractalyse/Ether1 that referenced this pull request Oct 27, 2021
@Dev-JamesR Dev-JamesR closed this Nov 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.