DAO
- Si Chen
- Andrea Frosinini
- Robin Klemens
- Woody Moore
A Distributed Autonomous Organization, or DAO, is a smart contract which allows different parties to vote on decisions with token holdings. This promises a fast, transparent, yet verified process for collective decision making.
As the third component of our Operating System for Climate Action, a climate DAO could have a variety of uses, including:
- A group of consumers form to purchase climate friendly products together. They use a DAO to vote on which products meet their climate criteria. The DAO could be used to vote on specific products or the methodology for validating the products.
- A group of offsets buyers vote on the validity of proposed carbon offset projects, such as forestry or renewable energy. The DAO could be used to validate the projects while they are awaiting formal certification by a standards-driven body such as the Gold Standard or VCS.
We have customized the Compound DeFI network's DAO to work with the Emissions Tokens Network as an example of the second use case. Here is a video demo:
And here is a technical tutorial of customizing the Compound DAO.
Governance and Voting Rules
The DAO we have working uses the Compound DAO's technical framework, but the rules have been changed significantly to simulate a real world scenario where the tokens represent votes, and the votes are made finite so that voters take them seriously:
- The contract owner gives voting tokens, "dCLM8", to members of the network.
- There is no limit to the potential supply of voting tokens.
- The voting tokens cannot be transferred between voters, though voters can still delegate their votes to another party (for now.)
- Voting tokens expire automatically if you do not use them.
- Voters vote Yes or No on proposals.
- Each proposal has a quorum or minimum number of votes that must be cast to pass. This quorum is set by the contract owner.
- Proposals can be made by authorized entities (ie offsets issuers.)
- Making a proposal requires a fixed number of voting tokens so the proposer cannot force a proposal through with a lot of tokens, but must commit to it with some tokens.
- When you vote your tokens, they are staked on the proposal.
- When you make a proposal, you are required to vote for it with a fixed number of tokens. This means there is a practical limit to how many proposals a party could make.
- You can cancel your vote and get your tokens back within a fixed period of time after you cast the votes, for example 4 hours in a 72 hour voting window. During the last 4 hours, nobody can take their votes back after they've cast them. There is a small fee for taking your vote back, for example 5% of your voting tokens are lost each time. This is to prevent people from manipulating the vote by "fake" voting.
- The proposer can also cancel their proposal within 4 hours of making it and if no one has voted on it. They will get 95% of the tokens which were voted for the proposal as part of making the proposal.
- The vote is held open for a fixed period of time, regardless of how many people have voted, because they could always cancel their votes.
- At the close of voting, the number of votes is compared to the quorum.
- If there are not enough votes compared to the quorum, the proposal fails, and all the staked voting tokens are returned to their holders, except the original proposer who will lose 1/4 of their staked tokens. This is to discourage "spam" proposals of no interest to the rest of the group.
- If there are enough votes compared to the quorum, then the voting tokens are "burned" and cannot be used again.
- If you made a proposal and it succeeds, you are issued the number of 150% of the tokens you staked on your proposal the first time. This means you can make a proposal again if the group liked your proposal plus some extra tokens for more proposals. If however your proposal failed then you do not get those tokens back. This means people who make unpopular proposals eventually run out of tokens to make more proposals.
- Voting is quadratic, so the number of votes cast is the square root of the number of tokens you cast. Quadratic voting has been proposed as a way to better balance the views of many voters with few tokens and a few who hold many tokens.
- Proposals can be broken up into attributes, so you can either vote on the proposal as a whole, which is the same as splitting your vote equally on all its attributes, or cast all your votes on one attribute of it. When proposals are split into attributes:
- All attributes will be subject to quadratic voting based on the voting tokens cast for the attribute.
- All attributes of a proposal must pass for the proposal to pass.
- The sum of all votes cast on all the attributes of all proposals is used to calculate if the quorum has been met.
- Voting tokens can be used as a reputation. Voting tokens can be lost if the proposal is later invalidated (more on this later.)
Examples
Initial conditions:
There are 10 members in the DAO, each with 10,000 voting tokens.
A proposal requires you to stake 2500 tokens.
The quorum is 150 votes (22,500 tokens–remember it's quadratic voting.)
Example 1:
- Arun makes a proposal. He stakes 2500 out of 10,000 tokens. 5 other members vote for with 2500 tokens each. 2 members vote against with 10,000 tokens each. Under quadratic voting, the number of votes for is 6*sqrt(2500) = 300, and the number of votes against is 2*sqrt(10000) = 200. The number of votes is 300 + 200 = 500 which is greater than the quorum and the total number of tokens voted is 6*2500 + 2*10000 = 35,000. The proposal passes even though 15,000 tokens were cast for and 20,000 tokens were cast against. Arun gets 2500 tokens again because his proposal succeeded. All other members have used up the tokens they voted with, so 5 members have 7500 tokens left and 2 members have no tokens left.
- Bianca makes a proposal and stakes 2500 tokens. 1 other member votes for with 2500 tokens and 1 member votes against with 1000 tokens. The total number of votes cast is 2*sqrt(2500) + 1 *sqrt(1000) = 100 + 32 = 132, which is less than the quorum of 150. The vote does not reach quorum and fails. Everybody gets their voting tokens back.
- Chizu makes a proposal and stakes 5000 tokens. 2 other members vote for with 5000 tokens each and 7 members vote against with 2500 tokens each. The total number of votes for is 3*sqrt(5000) = 3*71 = 213, and total number of votes against is 7*sqrt(2000) = 7*45 = 315. Since there are 213+315 votes=528 votes cast, the quorum is passed. However, the proposal fails (213 votes for and 315 votes against, not 15000 tokens for and 14000 against–quadratic voting!) Chizu does not get her 5000 tokens back. All the other voters' tokens are used up.
- Devin has made 3 proposals and staked 2600 tokens on each proposal, and all 3 proposals passed quorum but failed. Devin now has 10000 - 3*2600 = 2200 tokens left and cannot make any more proposals.
- Evgenia makes a proposal with 2 attributes, Socially Positive and Climate Positive. She stakes 2500 tokens on the proposal, and 1 other person votes 2500 tokens for the proposal. A third person votes 2600 tokens against the Climate attribute alone. The proposal reaches quorum because there are 2*sqrt(2500) + sqrt(2600) = 2*50 + 51 = 151 votes cast. The breakdown of the proposal is: Social 2*25 = 50 votes for; Climate 2*25 = 50 votes for, sqrt(2600) =sqrt(2600)=51 votes against. As a result the proposal fails because there are 51 votes against the Climate attribute and 50 votes for it. All 3 voters' tokens are used up.
- Faraji makes a proposal with 2 attributes, Socially Positive and Climate Positive. He stakes 2500 tokens on the proposal. 1 other person votes 2000 for the Climate Positive attribute, and a third person votes 2000 tokens for the Socially Positive attribute. In total there are sqrt(2500) + 2*sqrt(2000) = 50+45+45 = 140 votes cast. This is not enough for the quorum. The proposal is not enacted. Faraji loses 1/4 * 2500 = 625 voting tokens. The other two receive their tokens back.
You can test the math with this spreadsheet.
Possible Applications
Corporate Climate Initiatives
Many companies do not want to undertake significant climate initiatives because they feel their customers won't care about them. Lyft, for example, quietly stopped offsetting all its trips' emissions, probably due to a lack of positive response or proven ROI. At the same time, consumers often view companies' more limited climate initiatives as greenwashing.
With a DAO, companies and consumers can work together instead being separated by a fog of distrust. One or more corporate sponsors could give tokens to customers and the general public to vote on the projects (ie offsets) they like. They could then commit to investing in offsets only based on the response or votes from the consumers. Thus, consumers could choose the projects they believe in, while companies can feel they got real engagement and feedback.
Customer Driven Supply Chain
Agroup of consumers can set up a DAO to collectively choose climate friendly consumer products. They could vote on both rule based code like the Emissions Data Channel or products themselves or both. It is like a token-linked social network.
Validating Carbon Offsets
While standards like Gold Standard are very rigorous, they are also expensive and time consuming. There are many potential projects -- seagrass, satellite monitored forestry, biochar, small scale renewables -- that could or should qualify but cannot. So one way a DAO can address this problem is to have a collective validation of these projects with the goal of eventual certification by Gold Standard or the like. For small scale renewables we just need to aggregate enough deals to be large enough. For forestry, we could fill the gap where developers have to wait 7 years to start minting offsets, by using satellite imaging to start verifying projects in the interim. For seagrass, biochar, and a host of others, it's a long waiting period for a standard to evolve.
While we wait, a DAO could certify projects and help get them funded. By voting for the projects, you stake reputation tokens, and when a verification entity such as the Gold Standard validates the project, your tokens increase in value. Alternatively if the project is ever invalidated, you lose your tokens. Rewards are set up so that voting with the consensus yields small rewards, and a minority view which proves correct will yield big results. Based on the vote of reputation tokens, funders can have a guide for investing in projects.
This simulates a current practice where investors hire experts to invest in high uncertainty, long lead time projects. The difference is that the relationship between experts and funders can be more open, and the value of experts is more transparent. Also a separation of experts and money reduces some of the market distortion that could happen if people "vote with their dollars."
Get Involved
Get Involved
This is an open source project and anyone is welcome to get involved and we will be happy to see you contribute.
1) Start by subscribing to the Climate SIG mailing list for updates and meeting notifications.
2) Join our bi-monthly Peer Programming Zoom call for developers on Mondays at 9 AM US Pacific time (UTC-07:00 America/Los Angeles.) Please check the calendar for the next call.
3) Check out the good first issues from our blockchain-carbon-accounting in Hyperledger-labs and feel free to contribute a fix for one that looks interesting to you.
4) See our How to Contribute page for other ways how you could get involved.