In a little over a week (Nov 2nd-4th), the Maker-SourceCred working group will submit a formal proposal to integrate SourceCred directly with the Maker protocol. This is very exciting! If accepted by MKR holders, this will be SourceCred’s first integration with a protocol running on a blockchain. Maker Governance Facilitotor @LongForWisdom has put together a technical subproposal, MIP13c3-SP6: SourceCred Funding, which provides a high-level overview of the integration for MKR holders. From my own understanding and initial conversations, the requirements in the proposal are within our capabilities. However, to be sure I wanted to reach out to the wider community for feedback. This also presents a nice opportunity to start fleshing out design ideas, as this may help uncover potential issues and prepare us for tough questions by Maker stakeholders during the governance process. Below, I try to provide as much background and context as possible, and also toss out some initial ideas with the hope of spurring better ones
Background
Maker has been trialing paying contributors on its forum according to Cred scores for ~5 months. As detailed in the final report on the initial phase of the trial, the Maker-SourceCred working group and contributors are generally happy with SourceCred, and want to pursue a technical integration whereby contributors are paid directly from the protocol. This will help further MakerDAO’s goals around fully decentralizing and eventually dissolving the Maker Foundation (which is currently funding our work via a development grant).
Governance Process
Our technical subproposal, MIP13c3-SP6: SourceCred Funding is a Declaration of Intent. If passed, it will signal that MKR holders are on board with building a technical integration. The current trial will then be extended for 6 months, during which time we will build the technical integration. Once the integration is complete, MKR holders will hold another vote on whether to turn the integration on.
The Declaration of Intent will pass through Maker’s November monthly governance cycle. Below is a rough timeline of that process.
-
Nov 5th (Thurs) @Gov-Facillitators review formally submitted MIPS, determine if MIP13c3-SP6: (SourceCred Funding) will be put forth in Inclusion Polls.
-
Nov 9th - 12th (Mon - Thurs), Inclusion Poll (poll to determine if MIP13c3-SP6 is included in the Monthly MIP Governance Poll)
-
Nov 12th (Thurs) - During weekly Governance and Risk Call, @Gov-Facillitators perform Inclusion Poll Review and determine if MIP13c3-SP6 is eligible for Monthly MIP Governance Poll
-
Nov 16th - 19th (Mon-Thurs) MIPs Governance Poll
-
Nov 19th (Thurs) During weekly Governance and Risk Call, @Gov-Facillitators perform Governance Poll Review.
-
Nov 23 - 27th (Mon) Executive vote
Maker Governance Context
Any workable technical integration should be aware of a number of technical, governance and political issues Maker governance is currently grappling with.
Decentralized Funding
One of the biggest open questions the DAO faces is how to fund decentralized teams in general. The closest thing to SourceCred’s MIP is probably MIP14: Protocol DAI Transfer. This MIP seeks to define a generic process whereby MKR holders could authorize DAI transfers to any party. Theoretically, this could have been used to pay people using SourceCred, at least as a first step towards a tighter integration. However, back in June, an on-chain poll was conducted to include MIP14 in the June monthly governance vote, and MKR holders voted it down by a large margin. An informal poll was taken to gauge what issues MKR holders had with MIP14. While this poll was largely speculation on the part of regular contributors, as MKR holders vote anonymously, a number of potential issues were raised, including:
While SourceCred may not need to solve all of these problems, these problems likely need to be solved for a successful SourceCred integration to happen. Namely, we need to figure out how to get DAI in a reliable, orderly way from the surplus buffer (currently holds up to 2M DAI, though may soon be increased to 4M), and how to manage and distribute the received DAI in a trust minimized way.
A related declaration of intent currently working its way through Maker governance is MIP13c3-SP3: Declaration of Intent - Strategic reserves fund (SRF). If passed, this MIP would create a strategic reserve fund, which aims to create a decentralized treasury. This could potentially feed into a SourceCred integration.
By being narrower in scope than MIP14 or the Strategic Reserves Fund (SRF) MIP, SourceCred may hopefully not have to face all of these issues. It could also just be a good opportunity to move the conversation forward for Maker generally, by figuring out more about MKR holders’ desires and reservations.
Requirements of technical integration
From MIP13c3-SP6: SourceCred Funding:
This funding should:
- Come from the Maker Protocol using funds from the surplus buffer or generated through MKR minting.
- Be distributed according to cred scores generated using weightings ratified by Maker Governance.
The technical implementation of this funding system is flexible, but should:
- Allow variable amounts of value in the form of DAI to be drawn from the Maker Protocol for distribution.
- Follow best practices and be audited by one or more Smart Contracts Domain Team personnel.
- Be presented to Maker Governance in the form of a technical MIP.
The technical implementation of the distribution system is flexible, but should:
- Allow for variable amounts of any token to be distributed according to cred scores.
- Ensure that off-chain cred scores are communicated for on-chain distribution in a trust-minimized way.
- Follow best practices and be audited by one or more Smart Contracts Domain Team personnel.
- Be presented to Maker Governance in the form of a technical MIP.
In addition, the following point should be addressed:
- Off-chain cred scores should be calculated in a reliable and trust-minimized way.
Initial Ideas
Below are some initial ideas. My hope is that this can at least expose some potential risk and issues so we can make sure we don’t paint ourselves into a corner with the requirements in the MIP.
Transmitting scores in a trust minimized way is somewhat challenging. The SourceCred algorithm is too computationally intensive to run on a blockchain (certainly on Ethereum 1.0). Further, the algorithm is still evolving rather quickly. It has not yet “ossified”. This makes it difficult for a third party oracle to serve reliable scores. One potential solution would be to build a web API that an oracle service (e.g. Chainlink) could call to serve data from. Another, perhaps more practical in the near-term solution, would be for SourceCred to simply continue providing the scores, and having a third party validate them. The potential for SourceCred to abuse this trust could be minimized in other parts of the solution. I imagine the minimum information a smart contract would need is just what is necessary to calculate the DAI payouts (or just the payout amounts themselves), and how much (if any) DAI needs to be taken from the surplus buffer.
To avoid Flop auctions (minting MKR and selling for DAI if the surplus buffer is empty, which MKR holders seem adverse to), I imagine a “rainty day fun” address could be created. This address could hold enough for perhaps a few months worth of distributions. This would provide enough DAI to continue paying contributors even if the protocol faces a long DAI shortage, as it did after Black Thursday. This would also provide on-chain guarantees to contributors that there was at least X months of payouts coming. This fund could be topped up periodically from the surplus buffer if there was available DAI. Should MKR holders decide to end the program, this would act to soften the blow, acting as a kind of ‘severence package’. It could also keep payments going if MKR holders were simply too busy with other governance issues to approve payouts, or did not reach quorum for some reason. This fund could potentially be controlled via a multi-sig scheme, keeping any one party from being able to unilaterally drain the fund or hold up payments. For instance, we could implement a 2-of-3 multi-sig between SoruceCred (or 3rd party oracle), the Foundation, and MKR holders. This would allow SourceCred (or oracle) to continue distributing payouts even if MKR holders missed a vote to approve funds because it was too busy with other issues or did not reach quorum. It would also allow the Foundation and MKR holders to stop payments should they decide to end the engagement, or if SourceCred (or oracle) went rouge.
As for generating ‘weights ratified by Maker governance’, I think what we need is a minimum number of variables that Maker governance can use to ‘steer’ the instance in response to feedback and changing conditions. This minimization strategy is essentially what Maker pioneered with its own governance, and should be understandable to MKR holders. On the algorithm side, this would presumably be the alpha parameter and node and edge weights (i.e. what’s in the config file). To determine payout amounts, presumably we’d need the total amount distributed (e.g. for a given month), % of lifetime Cred vs immediate Cred (last week) Cred (a good proxy for ‘old guard’ vs new contributor cohorts), and a whitelist of ETH addresses for recipients. One can imagine other parameters being introduced for more fine-grained control, but for now, these seem to be the basics. Additionally, if Maker was more concerned about stability and credible neutrality than new features, we could limit scope (e.g. just stay on Discourse) and upgrades, at least for the initial integration. I think that for these parameters to make sense to MKR holders, we’ll probably need to continue conveying info about how the integration is going. This could be though the dashboard, continued reports, or other comms as needed. This would give MKR holders confidence in voting on monthly distributions without having to do intensive audis of every distribution. In time, this could be phased out if the algorithm proves stable, credibly neutral and highly trusted.
Phew! If you’ve made it this far, thanks for reading! If you see any potential issues, please let us know so we can investigate and update the MIP before Nov 4th.