Minimum viable governance #45
This is a complete, top-to-bottom proposal for a better, more explicit governance structure that aims to be as flexible as possible, to preserve as many of the nice things about Ethereum as possible, but also to improve upon transparency, accountability, and inclusivity via signaling. While this proposal targets Ethereum, it could equally be used for another blockchain or similar platform.
1. Base layer
At the bottom we have a real-world legal entity such as a foundation. It should be as "thin" as possible, in the sense that it holds little or no funds or assets, has the simplest possible governance (e.g., a proper board with at least seven directors, a minimal set of bylaws), and acts 100% transparently (something it legally commits to in its charter).
In the early days of bootstrapping a project this entity may fulfill a hodgepodge of functions: legal, recruiting, handling payments, marketing communications, etc. However, over time, it should be reduced to exactly one function: to provide real-world legal protection to the core developers. For this reason it will probably have some legal staff, and may require a contract with each core developer in order to extend legal protection to them.
(A Swiss-style Stiftung may or may not be the right jurisdiction and entity type, but that's beyond the scope of this proposal.)
2. Core developers
At the next layer come the core developers. This is a small, trusted group of individuals who maintain Ethereum clients and other core infrastructure, do research, and participate in rough consensus on protocol upgrades.
We must explicitly recognize that this group exists and that ultimate authority for protocol changes rests in its hands. This is a social layer of governance and is outside of the protocol itself. In order to prevent corruption, capture, and ossification, this group should rotate or new members should be able to join continuously, but this social process is beyond the scope of this proposal.
We may optionally choose to make the membership of this group explicit through an on-chain mechanism: see "core devs DAO", below. However, even in this case, we must remember that the core devs ultimately sits outside of the protocol.
3. The Core DAO
At the next layer, in protocol, exists a "Core DAO" that receives incoming funding, whether via block rewards or donations, and passes it down to a set of member DAOs, which may themselves contain a set of member DAOs, and so on. The Core DAO serves three purposes: it curates its own membership, passes funding down to a set of sub DAOs, and it facilitates and aggregates signals.
The Core DAO has one or more members, each of which is a sub DAO and each of which has a stake. In all votes, each member's voting power is directly proportional to their stake. A member DAO may be as simple as a multisig wallet or may be far more complex, and implements its own governance and management of funds.
Any member may challenge any other member's membership at any time by staking an amount at least as great as that member's stake. Other members may then vote on this challenge. The loser's stake is burned, and if the challenge succeeds, the challenged member's membership is terminated.
In order to add a new member, an existing member must make a proposal and stake a fixed amount of ETH (e.g. 100 or 1000 ETH). The proposal contains: [proposed new member, proposed membership stake]. If there are no challenges to this proposal, then after a set challenge period it passes, and the new member is added with their stake. The proposer's stake is returned.
Any existing member may challenge this proposal with a stake at least as large as the proposer's stake. Other members vote on this challenge as described above, and the loser's stake is burned. If the challenge fails, the new member is added.
A member may withdraw a portion of their stake, or may exit and withdraw their full stake, at any time. A member may only increase their stake via a proposal-and-challenge-period (effectively the same process as adding a new member).
The Core DAO holds no funds (other than membership stakes, which are not spent). All incoming funds (other than membership and proposal stakes) are immediately distributed to the member DAOs proportional to the size of their stake.
Any member may propose a referendum, and during a fixed voting period each member gets a single vote. Referenda are separate from the membership curation process described above, and are non-binding.
These referenda provide valuable aggregate signaling to the core developers and to the community. The core devs may optionally commit to respecting the will of the community as expressed via the signaling mechanism. (However, there is no way to enforce this on chain, and the core devs must anyway be free to change the protocol in case of emergency.)
The Core DAO may launch with one or more member DAOs. It may launch with a single member DAO controlled by the core developers, which may reduce its relative stake over time as other member DAOs join. Having such a "core dev DAO" would make the ultimate stewardship of the network by the core devs more explicit and visible. This "core dev DAO" may choose to use incoming funds to fund themselves, their work, and shared infrastructure, and a portion or all of the incoming funds may be burned.
If only a single other viable DAO exists at launch, that DAO may be given a 10% stake and the "core dev DAO" may hold a 90% stake (as one example).
An ideal set of member DAOs of the Core DAO would be individual DAOs representing different groups of stakeholders, e.g., miners, investors, app developers, exchanges, etc.
Comparison to MolochDAO
This design is quite similar to and informed by MolochDAO, with the following key differences:
Several ERCs might be born out of this schema which could be used by many sub-DAOs, e.g.:
At a high level I think this structure makes sense.
I agree there is a need for a foundation if only to maintain things like the Ethereum trademark. It would be great if it also provided some legal/liability protection for core devs (though as an aside, I think independent devs might be better served by shifting their online presence to that of a company and incorporating as an LLC, rather than trying to rely on an umbrella relationship to a central foundation), I think over time the less dependency the ecosystem has on a single legal entity the better, however, I think its both reasonable and practical to include it as a layer of the overall governance process.
I think the "Core Dev" layer could be reasonably described as the existing EIP + rough consensus process for making protocol changes today. I think, at-least for purely technical changes, the process works reasonably well. However, for non-technical issues or technical issues that have significant non-technical implications the process breaks down.
For that reason I suggest being explicit about the existence and legitimacy of the wider non-dev social consensus layer between core devs and the "Core DAO". This could be completely informal and without structure as it is currently or it could be linked to the foundation and trademark governance, but by recognizing its existence it frames and limits the authority of the Core DAO. Essentially it is saying that while the Core DAO may exist, it can just as easily be made not to exist in the future because the social consensus layer will always super-cede the authority of the Core DAO.
For the Core DAO itself, I found the process reasonable enough though maybe a bit convoluted. Im not entirely sure what benefit there is in having funds flow through the organization versus having funds sit in the organization and then be allocated from there. However, regardless, I think the exact details of how the Core DAO is structured are actually not nearly as important relative to the social expectation set around the role of the DAO and the scope of its authority. I think it would be totally reasonable to have an initial set of members, and have members be responsible for adding or removing members over time. And then have members vote to allocate funds from a shared treasury (either to other DAOs or foundations or companies). The core concern people seem to have is that the Core DAO will concentrate power and the responsibility of allocating funds will make that incredibly likely to happen--but its ultimately the social consensus layer that grants that authority and can revoke it at any point through a hard fork. There is probably also no reason for the fund transfers from the Core DAO to be instant, they could all be subject to a delay of say a month, which would give the social layer sufficient time to coordinate a fork to veto any funding decision.
Anyways, to summarize, I think this is good and I think so long as we set the correct expectations about the authority of the Core DAO relative to the authority of the existing social consensus layer, the organization will be able to help coordinate resources more effectively over the long term (because funds are being sourced from protocol inflation and not from a fixed pool), and more transparently because proposals and decisions will ultimately be made publicly on-chain.
First I'd question the need for a legal entity and a "core developer" layer. The whole point of this governance discussion is to make an on-chain distribution of funds. Of course, it's important to remove legal liabilities and IANAL but I imagine it's easier to do that by having multiple entities being responsible for themselves. Current "mining rewards" do not depend on a Mining legal entity to be disbursed, but of course mining pools and individual miners need to cope with their local jurisdictions.
Second, I would try to simplify the Core DAO much more and remove most of the staking and referendum parts, that should be put in the secondary layer of DAOs.
Remember a DAO is a set of self enforceable power limits so I would start with the basic of what powers we want to limit, so I would start with these set of rules:
In that sense I would simply do this:
(It's accidentally similar to the US constitution, in which the states have their own electors and their rules for deciding how these are alloted, as well as a number of states needed to make general amendments.)
As is being discussed in the Telegram group today, I just want to highlight this because I think it will be one of the hardest parts. I'd love to do this purely as a DAO, without any "real world" legal entity, but I'm not convinced that's possible because of questions of legal liability. Re: this part:
Yes, this is ideal since it would be more decentralized, but speaking personally I wouldn't even know where or how to start figuring this out, and it would be costly and time-consuming, probably enough that it would discourage me from participating in something like this. Being able to outsource this to a trusted, known entity with real lawyers would be a huge advantage to me.
I'm not convinced this is an apples-to-apples comparison since miners are much less likely to be sued, IMHO, than core devs or funds administrators. Also, I suspect mining pools are able to provide legal liability protection to individual miners - I'm only suggesting that we "pool" ourselves and do the same thing.
I like the governance system goals, this list should be stated first!
As for the main "layers":
First off, it is dangerous to assume layering. It channels the mind and causes one to forget alternative structures. Still, I won't quibble. It has to be comprehensible.
Layer 0 includes the people using the blockchain, probably the dapp developers and service operators of all types who depend on the blockchain. They feed back into the governance process as well.
I think the base layer has to be the network itself, not any legal entity. Implementations of the Ethereum protocol collectively generate a network which governs itself! This is potentially a jurisdiction too IMO, we will see how things play out. Its governance involves active participants running nodes: miners, full nodes, light nodes, etc.
As @alexvandesande points out, any legal entities are at the Core Devs and Core DAO levels, definitely at the Sub-DAO level.
I would add Stakeholder Groups from the community here, but perhaps this happens over a very long period of time. It needs to be gradually established that groups' interests, ranging from economics to ethics, are factored into decisions.
The Core Devs may have a legal entity, but I definitely would not consider this to be a part of Layer 1, it is not special. Many stakeholders here need legal protection.
This part I cannot fully comment on, I need to understand the proposal better.
Two things I do see:
It must be clearly stated what the duties of these Sub-DAOs are, and how they vs. the Core DAO act on the Goals of this governance system.
Thanks for the proposal Lane. I have some thoughts on the Core DAO idea (which IMO is the most important link in the chain here, everything else is pretty secondary):
Here are some suggestions (for discussion):
If the stake is in Eth, then this isn't true, which I think forms the main problem with the Core DAO. @lrettig touched on it in the "Bootstrapping" section - essentially, I think we can agree that a number of early adopters of Eth have a balance of Eth that would be quite expensive to acquire now. Therefore, if the initial membership stakes are set too high, then these early adopters will find it relatively easy to form a group that control new membership and can't be voted out. unless a high dollar value is paid to purchase enough Eth to have an equally large stake (although, obviously, that won't necessarily succeed, as those existing members would just not allow them in).
I also feel strongly that we should separate the questions of "where should the ecosystem funding go" from "general decision-making on arbitrary things". The former is a specific problem on which I think we can make good progress, the latter is a thornier question which requires different treatment. For example, the Core DAO idea pertains to ecosystem funding in particular and addresses that problem nicely. The other things pertain to general governance and are more debatable. Forcing the Core DAO to play double duty as a general body voting on general issues is IMO a baaaaad idea.
Lane's suggestion for "minimum viable governance" is a glorified beauty pageant. It is neither minimal nor viable.
What's critically missing is criteria for how performance is measured in terms of the impacts generated with the funding received. Without this the "Core DAO" is little more than a self selected club where members get funding to the degree that they stay popular with other club members and the rest of the community.
A system governed by popularity would reward the squeaky wheels and shameless self promoters of the Ethereum community. Those who talk more than those who do. Instead of funding projects based on merit we would fund them based on marketing.
We’ll end up with more fake “core devs” who aren’t actually contributing meaningfully to development, but instead spend all their time tweeting, promoting unsound proposals that only sound good superficially and traveling around the world playing Ethereum politics at the community’s expense.
The quiet contributors who are actually focused on getting shit done would be at the mercy of this new generation of fork tongued blockchain politicians.
The basic rule of economics is you should reward what you want to get more of and penalize what you want to get less of. What the community should be rewarding with funding is good engineering and relentless execution towards measurable deliverables, not political theater and Twitter circus.
Talking about governance in terms of hierarchies and voting mechanisms misses the point. Those are just mechanisms. A means to an ends. The critical thing to solve is how we measure impacts. With strong measures of impact, we could have a dozen variations of grant-giving DAOs all competing ferociously to get funded by an inflation treasury (or donations).
Any DAO that wants to compete could raise funding from private investors and develop public goods at its own expense. To the degree that it is successful in generating measurable impacts it would receive a return on investment from the public treasury. Or nothing.
With each proposed project, DAOs that deliver will get stronger, and DAOs that don’t will get weaker. Do or die.
Generating and testing variations in a way that increases the influence of those that perform the best while decreasing the influence of those that perform the worst is the basic algorithm for evolution in all its forms. The key is finding the performance function.
Also, we should be mindful that the best way to win the battle is never to have to fight it in the first place. Just because we can fund something from donations or an inflation treasury doesn’t mean we should.
If you’re building a machine that cleans the public air supply you either need to fund that machine from donations or with a tax on everyone that breathes air. If you’re building a toll road, that doesn’t need to be funded with donations or taxes. Private investors can and should fund it. The appeal to public funding should be viewed with suspicion. It should be the last not the first resort. With a bit of creative thinking many problems such as wallet development that seem unsustainable without public funding can be made to be sustainably funded from private investment: https://twitter.com/yoavw/status/1104889949969661953
For Ethereum, we should use inflation treasury only to fund “clean air” projects such as Layer 1 development. Any problem that can be solved as a Layer 2 “toll road” can and should be funded privately.
... and ...
Can't agree with this more.
Here is where accountability/measurement fits in (this aspect is being separately researched @lirazsiri ). Our governance scheme needs to show where it fits into other parts of the greater Block Rewards Funding proposal.
We should consider how this initiative could be a profit-oriented (with investors), however it was decided early on that the source of funds is to be block rewards... "taxes", "inflation", or whatever term we will end up using. This is one of those facets for which there is strong consensus.
Still, could this initiative be more profit-oriented? We should not deny ourselves the opportunity to explore this. Incentives can create good leadership selection, if shaped properly. Incentives will already be at play to manipulate the membership of the Core DAO.
One difficulty for profitability I see is capture of value from the resulting funded projects (often the projects are open source, not going to be fee-based service, and not of the orientation to charge anything for the result). We discussed this a lot at EthCC at EthMagicians Business Models. This is more of a commons.
I had earlier suggested that this project could take on loans repayable on success of the initiative, but even this was objected to by some. Ethereum itself is secured by a profitable activity, bootstrapped by a risky token sale. Forking or creating new blockchains/sidechains does not have to be the only way to have a "liquidity event" at the end of a development cycle.
As an example, Simon de la Rouviere has some very interesting thinking toward maintaining the commons using a combo of TCRs and bonding curves.
Saving The Planet: Making It Profitable To Protect The Commons by Simon de la Rouviere
If I am understanding it correctly, he proposes running a game in which people are either exploiting the commons vs. protecting the commons. There is a TCR for managing the resource with reputation value and a market price to join. Then there is a way to leave the TCR with a profit, because one was early to identify a need to fund the development of a commons.
Even if informed by the work of Elinor Ostrom, I would not risk this proposed game on the commons that is technical governance over the blockchain or governance over funding. But if we are afraid of a straight-up beauty pageant we should consider incentive-based guide rails.
Leader committee selection (for lack of a better term) is one of those key questions we will need to answer. Like the establishment by our consensus of "Block Rewards" as the source of funding, we will need to come to consensus about the principles and mechanism of selecting leadership in the Core DAO.
Agreed! Profit shouldn't be a dirty word. Profit works. We'll be more successful if instead of trying to reinvent the wheel we take the best of what has proven to work in the past and apply it within this new domain we are trying to build.
Appealing to the profit motive seems like a no brainer. If we want teams to compete on execution and innovation we need to reward those who successfully take risks with something. For small enough contributions that something could be social capital. Kudos from the community
For larger contributions teams will need to put real money on the line and it is in our best interests to reward the successful risk takers with something that makes their efforts financially sustainable and encourages others to come in and try their hand at competing.
In that case they may be "clean air" projects that won't be developed any other way than with an inflation treasury, but before we commit to that, we should be thinking really hard about whether it's possible to create sustainable models for those funded projects.
There is a cultural challenge to overcome. "Business" is considered a dirty word by many. Investing a significant amount of energy in coming up with new creative "Business Model" is not something that is currently being encouraged or rewarded by the community. You could spend a year coming up with a new revolutionary model, carefully document the mechanism design, create open source agent model simulations to vet it and receive very little in any of the community's scarce resources (e.g., attention, recognition, funding) in reward. I should know. It has been an uphill battle engagingthe community on CREDO, the decentralized "equity" model for L2/dapps my team has been working on for over a year:
I don't know of any objective measure of impact. Any metric I can think of is subjective. Am I missing something? Do you have any concrete recommendations @lirazsiri ?
I'm inclined to agree with Ameen here. It's turtles as far down as I can see
All that said, there's aren't many people who feel more strongly than I do about representation and measurement, and so I'm 100% on board for developing better measurements of all things. But at this point it seems more a matter of choosing where to put the subjectivity than actually making things more objective.
Somewhat related, but your discussion of the "talkers vs. the doers" in politics reminds me of a passage from Federalist #35 discussing the composition of government and specifically the representation of artisans and craftspeople, which I'll include here for (mostly) historical interest:
The stated "Goals" in the proposal here is actually a list of "Principles" or "Design Principles".
The goals here, or perhaps a better word is "Requirements", are represented by each layer's role in the system:
What other additional requirements should we state?
“We must explicitly recognize that this group exists and that ultimate authority for protocol changes rests in its hands. ” Good luck backtracking this in a court of law. I thought the idea was to limit developer liability, not create more? It’s also untrue IMO, and inflates the amount of direct control developers have on the rules enforced by the network of nodes.