MakerDAO Governance Audit
Abridged spent significant time interviewing multiple parties to pull together this report on the systems involved in the MakerDAO governance process today. At the end we highlight a few solutions that may be implemented to reduce the frictions involved by creating more accessible voting systems, reducing gas cost, and increasing information access via notifications.
Any of our proposed solutions should focus on designing around the system that exists today to limit change in contracts and satisfy the needs of incumbent users.
Please reply with any questions or comments!
This was ported from Notion. Find the original document here
A. Introduction and Research
DAO Ops is a set of practices that aims to systematize the management of DAO functions and reduce human coordination costs associated with resource allocation, decision-making processes, and membership administration. This idea emerged from work created by Abridged when tinkering with integrating DAO capabilities into chatbot interfaces.
Abridged has recently focused on understanding the needs of the MakerDAO ecosystem. There has been much research and discussion previous to this proposal attempting to define the largest points of friction today. We worked closely with folks from Comm Dev and governance and held interviews with many of the key stakeholders facilitating governance of the MakerDAO protocol today. This includes people pushing forward the new MIP process, delegate voting, Maker participation metrics, and relevant notifications with the MKR bot.
LFW is a critical piece of the MKR governance system, here he summarizes issues from the Why arent MKR Holders Voting? forum post. (1)
A.0.0 Survey Results
The past three weeks has been filled with zoom calls and rocketchat conversations on a variety of topics related to Maker governance. Below is a summary of the different initiatives in development at Maker today, as well as results from a survey we ran.
A.0.1 Survey Results
Our process included a survey advertised on Reddit, in the Forum, and in Rocketchat. Find details here. Please see responses below.
A.0.2 Survey Questions
"Please provide the links you rely on most for participating in and understanding Maker governance."
Maker 101 pdf
"Please describe the Maker governance process today."
“Maker Chat, forum posts and governance meetings to achieve rough consensus to see what goes into Monday Governance polls. Result of these polls become Executive votes on Fridays.”
"A broad group of stakeholders, within the Ethereum and fin-tech ecosystem, use open forums/platforms to discuss and distill opinions around the Dai stable coin system. Using an interconnected but ever more technical set of systems a series of consensus votes are debated in the open, transparently, and then placed on chain for a group of skin in the game participant. These participants can be included, lead, shape, or work with the stakeholders in open forums but ultimately they govern the risk parameters that direct upgrades, changes, and parameters in the Day Stablecoins system. They are MKR token holders. MKR token holders are tasked with maintaining the health of the system and the stability of the peg while defending against any proposals that seem antithetical to the overall governance objective.
There can only be one active executive proposal as it represents all the parameters of the system combined into one ‘state’. It is not possible to revert the current state of the system as it is possible that the underlying architecture of the ecosystem has changed. I.e. the Executive vote represents the ‘settings’, the Dai Credit System is the ‘program’. Can’t always go back to old settings safely if the program has been updated.
Every week these stakeholders open a call to the broader community and discuss an agenda about the direction of governance then go back to the forums to distill consensus and put that on chain."
"Ratified governance proposals are made into slates for execution.
Slates of proposals are created and voted on by MKR holders in a continuous approval vote"
"Weekly governance calls to talk about most pressing issues.
Forum/rocketchat for ongoing discussions.
Emergency off schedule governance/risk calls for when shit hits the fan.
vote.makerdao to voice your support."
“Anyone can Vote and sign on a contract and contribute his opinion or idea about the governance or anything else. On-chain pooling vote for proposal and forum members participation. MKR holders can vote as well non MKR holder and made a decentralized voting contract.”
"Members of the forum create topics and discuss. Polls are created to decide intentions/opinions. A member of the foundation organizes an onchain poll or executive vote to finalize. How decisions are then executed are a mistery to me. I imagine resources are allocated (money or development time) by the foundation.
Recently MIPs have been added to formalize the process above."
“Ideas/proposals are brought up in the forums, discussion is had, proposal is formalized and organized, community vets and Then raises a poll or vote”
“A messy combination of signal requests, domain team fiat, and last minute emergencies.”
“Topics are moderated and discussed in the Discourse Forum. The governance facilitator and/or Rich brings up current topics for discussion & the risk team present parameters in the forum and weekly call. A poll goes up to gauge signal on vote.makerdao.com and is notified on the forum. After collecting responses, then the Maker Foundation Interim Governance Facilitator places an Executive Vote into the voting system.”
A.1.0 MakerDAO Structure
MakerDAO uses a variety of on-chain and off-chain decision making and communications to build and execute improvement initiatives and make changes to the protocol.
Who are the decision-making bodies?
Maker Foundation - controls the majority(?) of the value accrued to initial protocol investments in MakerDAO. This entity is incorporated in Delaware, and employs 50-100 people full time.
MKR Holders - votes and executes on-chain decisions.
Community Development Team - manages community development projects and initiatives.
Governance and Risk Team - monitors and determines items of highest importance.
How are decisions made?
The way decisions are made rely on forum discourse, rocketchat comms, and the following voting types:
Governance and Risk Meetings
Forum Poll Votes
Where to find the latest decisions?
Governance in General: https://forum.makerdao.com/t/governance-at-a-glance/84
CDIPs: reviewed in community standup every Wed.
A.1.1 Communications and Decisions
The majority of communications within Maker happens between the Maker forum and Rocketchat. Communications within maker revolve around the following changes and updates to keep a healthy protocol:
Stability Fees (if DAI is above peg then lower SF and visa versa)
- MCD - ETH - weekly
- USDC Stability Fee - weekly
- SCD - ETH - weekly
DSR - biweekly, near term incentivization
- Spread relative to the stability fee
- Levers immediate profit vs growth
- If DSR and SF are the same
Other Changes (look at https://catflip.co/)
- Don’t want the debt ceiling to be too high
- Main consideration is the liquidity in the system
- Gap should be <20M
- Flip - Auction Collateral
- Flap - Burning MKR
- Flop - Printing MKR
GSM (Pause) - time lock for governance changes, once a vote is cast, changes are queued into
- Surplus auction buffer (if this becomes negative)
- MKR Burned in the ESM (emergence shutdown mechanism)
- Bad debt increasing
- Flop auctions
- Adding collateral types
A.1.2 Maker Initiatives
Backbone of MakerDAO Governance:
Weekly Cycle / Signal Request Process
Maker Improvement Proposal (MIP) process
- Used for protocol changes, liquidity support opportunities, and community development grants
Community Development Improvement Proposal (CDIP) process
Delegate Voting - give voting responsibility to someone I trust.
**MKR Bot** - a source of all important information for MakerDAO.
SourceCred Integration - an automated participation rewards system.
Maker Ecosystem Onboarding Process - an initiative spurred on by the Comm Dev team to make onboarding and orientation easier for Maker newbies.
Maker Badges - another participation rewards system.
A.1.3 MIP Process
The Maker Improvement Proposal (MIP) process is a formal voting process for changes to the Maker protocol. The governance process is defined in MIP3.
This was found in the MIP3 forum post written by a community member.
Maker Governance Cycle (from MIP3 forum post)
A.1.3 CDIP Process
The Community Development Initiative Proposal (CDIP) process defines community initiatives to supply resources for beneficial development initiatives including hackathons, events, applications, and educational resources.
A.1.4 Voting Types
Executive votes occur once a month and require MKR holders to stake enough MKR to grant the “hat” to the new executive decision. This also involves a default inclusion threshold which requires a minimum amount of MKR to vote yes on a proposal before it passes.
Poll votes happen in the second and third week of the month. An MIP must pass through both the inclusion poll in the second week, and then the governance poll in the third week to be accepted as a spell in the executive vote.
Signal Requests - https://forum.makerdao.com/tags/signaling
Weekly Cycle - https://vote.makerdao.com/polling
Confirmatory Forum Polls are used by working groups to make lower risk decisions. Recently the SourceCred trial was passed by an initiative through a governance working group and forum poll.
A.2.0 Problems and Goals
We break the feedback down from this research into a few interrelated categories, Goals, Pain Points, and Magic Moments. This section largely comes from the detailed UX research created by Jordan Jackson.
A.2.1 Goals - things we want to accomplish
The goals of the MakerDAO governance system should assist the DAO’s decision-making function by increasing access to relevant information and encouraging engagement of the community.
We are breaking down this category in two parts, first that an individual’s influence is valued in the governance process, and second that we are able to create a system that enhances each participants decision-making.
Value my Influence!
We need to give maker voters a clear reason and incentive to vote.
Enhance my Decision-Making!
Creating ways to give voters context and increase their ability to make confident decisions is important. Voters should be given relevant information in bite sized ways to increase their understanding of goals and past precedents.
Make it easy for me to participate!
Participation requires someone to feel well informed enough to make a decision. To do this we need to break down information into more bite sized pieces, at the right time, through the right interface.
A.2.2 Pain Points - things we want to ease
These are the aspects of the process that cause mental stress to MakerDAO community members. Accomplishing our Goals and amplifying the Magic Moments should reduce the influence and prevalence of these pain points.
Subcategories for this section include increasing information access, reducing friction for voting, and eliminating any fear involved with the system.
Forming consensus and forecasting the consequences of decisions is an area of struggle.
Clear history and easy to understand historical context.
Staying informed and up to date with governance is hard and time consuming.
Getting set up to vote is difficult and scary. As best we can we need to take away all obstacles when casting a vote.
Fear experienced by Maker voters includes bot social fear that their vote is too small to matter, and fear of technology creating vulnerabilities with their digital assets.
A.2.3 Magic Moments - things we want to enhance
These are the pieces that assist in encouraging user engagement. While they exist today, we need to find ways to amplify!
Enhancing the ability for users to experience magic moments help accomplish our goals, and reduce the pain points present in the system today.
My Influence Matters!
Help voters feel motivated and rewarded after taking action. Help them stay encouraged by generating the “aha” that I made a difference and sense of pride for participating. This could be as simple as gifting a Maker badge or sending a happy “You Voted!” email.
We Solved the Thing!
Proof that collectively we made the right decision. The system is stable.
B. Proposed Solutions
The proposed solution to the above mentioned issues includes providing a way to increase:
1: New Voting Pathways - ease of access to vote in Rocketchat or Discourse without compromise on key management.
2: Voting Notifications - accessibility for relevant information to surface for a particular vote.
3: Ecosystem Navigation - ease of engagement and orientation for new community members.
Implementing these targeted goals must include explicit detail around key and identity management. We want to inspire confidence from members of the MakerDAO that their keys and tokens are secured to create a seamless experience for both new and old users.
B.0.0 New Voting Pathways
This section will review the heaviest technical advancement in the MakerDAO Ops system. We provide a brief analysis of digital asset risk for past MKR voters, the benefits and challenges for a contract account system in Rocketchat, the benefits and challenges for a key-based account system in Rocketchat, the potential for a poll signaling system in Discourse, and how to upgrade to a delegate or batched transaction system.
The success of most of these implementations lies in the ability to add read and write functionality into communication interfaces like Rocketchat and Discourse. Historically we’ve been able to do this using Abridged no-code to build Web2 interfaces into contract or key based account systems.
This document is created to present the scope of potential integrations and gauge interest within the community to determine value. Technical implementation on any of the below proposals will require additional research.
B.0.1 Digital Asset Risk
Creating a system with secure and safe digital asset management is of top priority for the DAO Ops project. With this, we investigated the number of voting MKR accounts and the USD value held of the digital assets within these accounts.
76% of the top 100 MKR voter addresses have less than 1 ETH in their account and 67% of these accounts hold less that $100 USD in digital assets. At the same time 24% of these accounts hold more than $2000 USD in them.
We consider these numbers to get a sense of the financial risk associated with accounts of . voting MKR holders. We can assume that the majority of token holders will be using these accounts primarily for voting rather than digital asset management. As the number of assets managed in a specific wallet increases, so does the risk. For the 24% with more than $2000 USD in their account holdings, we expect any key management changes to be more difficult. For the 67% with less than $100 in total assets, the migration to a more convenient voting system should be easier.
B.0.2 Contract Account Upgrade
We suggest integrating an Abridged contract wallet to create an easy to access system in Rocketchat or Discourse for the following reasons:
- Security - multi signature allows for recoverability.
- Functionality - can leverage upgrades to the system with batch transactions, metatransactions, and layer 2 voting.
- Mobile Access - with metatransactions innate to the platform, voting and calling information is available on mobile and desktop.
This setup defined below considers an integration of contract-based wallets in the proxy voting system. We created this image in part from this resource, which explains the proxy voting process today.
Benefits of a Contract Account
- Higher future functionality (batch and delegate voting)
- More robust key management (guardian key / recovery options included)
- Mobile reading / writing accessible
- Allows for simple onboarding for new users (no need to save PK)
Challenges with a Contract Account
- Transition to a contract account will require more learning for incumbent users
- Shift in process can create uncertainty
B.0.3 Using a Key-Based Account
Key-based accounts are the original and most widely used system for managing funds and digital assets today. The issues with these accounts involves the fragility of private key management, and this system also does not allow for programmable access of on chain identities.
Developing a system that allows for voting and notifications within chat or forum using a key-based account does create different vulnerabilities for the voter. More research needs to be done around the possibility of utilizing WalletConnect as a safe way to vote on mobile, but the solution for now allows for connection via desktop. Mobile would require a user to add their PK to local storage on their phone.
The image below shows a user adding the private key from their MetaMask proxy account to an contract account . Another option to explore here is whether connecting with WalletConnect to the system could provide a similar benefit.
Benefits of Key-Based Accounts
- Incumbent users know this system well
- Fully non-custodial
Challenges of Key-Based Accounts
- Fragility of PK security
- Non newb friendly
- Mobile access introduces vulnerability
B.0.4 Poll Signaling
The poll voting system in Maker governance is a precursor to the executive vote. LFW discusses an even lighter process than poll voting here.
We can create a system within Discourse that may not need an actual vote on chain by gathering sentiment through signature verification of MKR holders. This would be the easiest implementation to improve the voting process and bring in broader feedback from active community members.
B.0.5 Future Developments (Delegate and Batched Voting)
Creating a delegate voting system to ease the burden of frequent decision-making would be possible if MKR holders upgraded to a contract based account system.
This has been explored deeply in this document.
Poll votes can number as many as 9 in a given week. The base cost of voting on every poll vote in a given month could reach $18. If we were able to batch all poll votes to wrap up in one on chain transaction, we can reduce the price to the cost of a single transaction. This batch voting could be created with a contract account, or by redesigning the voting contract and governance dashboard.
B.1.0 Voting Notifications
Maker Governance Cycle (from MIP3)
PLAN: Create a system for someone to easily decide how they will vote. Distill the information from past votes into accessible and relevant data to inform the voter.
Hurdle: Distilling the information down to something easily digestible (this will require some dedicated work by a person with deep Maker knowledge).
B.1.1 Tell me when things happen
Scottrepreneur has created a really robust system of information for the Makerbot. We need to filter this system even more to provide the simplest answer for those reading.
Charles St. Louis is spearheading the MIP process. DAO Ops could automate updates like this.
One system we could spec would be a MIP subscription service, for people to subscribe to specific MIPs. Likely notifications will need to start broadly with updates on voting deadlines etc.
B.1.2 Provide easy access to relevant information
Typically relevant information can look standard. What was the peg last week? How did the vote change the peg last week? How did the people I trust vote?
On Governance: https://forum.makerdao.com/t/governance-at-a-glance/84
B.1.3 Tell me the outcome of my participation
These features should encourage participation by both showing the voter that their voice matters, and that their votes made a meaningful difference in the outcome of a decision.
B.2.0 Participation Rewards
Participation rewards come both from a gas cost and community participation.
Gas Cost: We could discuss creating a system that paid users for voting rather than spent their resources. This would involve creating a relayer system that pays for all Maker votes.
Community Participation: Another way to reward governance is to use social tracking algorithms like SourceCred, badges, and merch to encourage engagement in forum and chat discourse, community calls, etc.
B.3.0 Ecosystem Navigation
This user needs to get up to speed quickly with the state of the ecosystem, and how to participate. To do so, the Maker bot needs an on-boarding loop to answer FAQs, orient the new user, and lead them to the conversation they find most interesting.
- Community Development Portal: https://community-development.makerdao.com/
- Introduce yourself: chat.makerdao.com
- Active discussion topics: https://forum.makerdao.com/t/forum-navigation-index/648
- Awesome MakerDAO: https://github.com/makerdao/awesome-makerdao/blob/master/README.md#governance
- Behavior forum post: https://forum.makerdao.com/t/maker-governance-overhead/1129
- Catflip: https://catflip.co/voting
- Delegate Voting: https://docs.google.com/document/d/1VxqHQsmkvrFkLF6er93IvifY9QodG_YMf9FCRU0SoIk/edit?usp=sharing
- Demo Videos: https://blog.makerdao.com/an-update-to-maker-governance-polling/
- GSM: https://community-development.makerdao.com/governance
- Glossary: https://community-development.makerdao.com/makerdao-mcd-faqs/faqs/glossary
- Governance Dash: https://vote.makerdao.com/
- Governance Module: https://docs.makerdao.com/smart-contract-modules/governance-module
- Maker Chat: https://chat.makerdao.com/channel/chakachat
- Maker Voting Today: https://forum.makerdao.com/t/why-arent-mkr-holders-voting/301/1
- MkrBot: https://github.com/scottrepreneur/mkrbot/blob/master/mkrbot_guide.md
- On Governance: https://forum.makerdao.com/t/governance-at-a-glance/84
- Poll Signaling: https://forum.makerdao.com/t/wanted-a-plugin-that-allows-signalling-with-mkr-on-a-discourse-forum/1876
- Risk Calls: https://forum.makerdao.com/t/special-governance-and-risk-calls-tuesday-4-14-and-4-15/1962
- SourceCred Trial: https://forum.makerdao.com/t/maker-sourcecred-trial/2551
- Tools: https://mkr.tools/
- Top 100 Voting Accounts: https://docs.google.com/spreadsheets/d/1a1X7EFdabGvHXWsou0Aq9ky_PfbQNT6RnZvGkaOd4mc/edit?usp=sharing
- Voting Metrics: https://mkrgov.science/
- Voting, Linked Wallet: https://www.youtube.com/watch?v=-zq6_ZJ0MpI&t=43s
- Voting, Single Wallet: https://www.youtube.com/watch?v=nWhLzyhZV-Q