It has been six weeks since the code for Multi-Collateral Dai was publishedand its contracts deployed to the Kovan testnet. People are eagerly looking forward to the mainnet release, and have (understandably) been asking us: what are we waiting for?
Our main focus until recently was the development of the MCD core contracts. In this blog post, we give the bigger picture of what we are working on to prepare the full MCD release and clarify the scope of what will be delivered.
The first thing that can be expected, is that Maker will once again not compromise on the quality of the code, in particular with regards to security.
While the community now has the time to scrutinize the smart contracts that we have published, two more initiatives are running in parallel to ensure that potential bugs & vulnerabilities are discovered before release.
The previously announced audit by Trail of Bits has been started and the results are expected in a few weeks. At the same time, Maker continues its effort to write more formal verification proofs, drastically expanding coverage since we first released to Kovan.
Once any potential issues raised by the Trail of Bits audit have been resolved, a new version of the MCD contracts may be deployed to the testnet. After this, a significant bug bounty will be started to further incentivize the community to join Maker’s own bug-hunting efforts.
Keep an eye on our blog and twitter account for updates about the audit report and the bug bounty program.
In the spirit of “if it hurts, do it more often,” another team at Maker will be testing critical elements: emergency shutdown, price feed freezing, collateral claims processing, and other rare events in the MCD lifecycle; exactly the kind of events that should be prevented from happening once the system is live.
Precisely because these events are so rare, we found that they are harder to test during development and QA. For this reason, Maker has been working on a test environment that facilitates simulation of emergency and black swan events. This, in turn, will allow us to give these features the attention that they deserve.
This attention will range from additional test coverage, to process improvements, to the implementation of specialized user interfaces. These user interfaces will allow anyone to access the system even in exceptional circumstances, for example in the case of the emergency shutdown.
The same goes for additional features, most notably Savings Dai. The MCD release will include a user interface that allows for switching Dai into Savings mode. Check out this blog post for more info on Savings Dai.
First-class support for freezing price signals in the case of an emergency is not the only love that our Oracle infrastructure will receive. While Single-Collateral Dai feeds have been working without fault the entire time, for MCD we’re making some important improvements. These will enable our Oracle architecture to scale cost-effectively and meet the needs of the additional price feeds required by MCD.
The first generation price feeds each publish their own prices to the blockchain, each one sending a costly transaction for every update. The MCD version, however, will use the Secure Scuttlebutt to communicate prices between each other first, before submitting the combined result to the blockchain in a single transaction. A combination of Scuttlebutt and signing price data with Ethereum keys ensures that the correctness of this aggregated signal can still be verified independently.
Read more about the Scuttlebutt protocol here.
As should be clear by now, the MCD release will indeed contain much more than only the smart contracts. In fact, the scope includes three different abstraction layers through which the MCD functionality can be accessed:
The MCD release will include the first production-ready GraphQL API service that is backed by VulcanizeDB. This is a service that continuously collects MCD-related data from the Ethereum blockchain as new transactions are being mined. It then makes this data readily available in the form of read models for clients that require high-performance read access; an essential building block for real-world applications on top of the MCD platform.
Another key ingredient for the MCD system are the so-called keepers; the services typically run by profit-seeking agents that are bidding on collateral auctions, and that are providing liquidity for the debt auctions selling off MKR, and the reverse buy-and-burn auctions to handle surplus in the system. While our keeper framework was already available for Single-Collateral Dai, our team is now working to finalize the next version for MCD.
One of the main challenges that Maker, and blockchain in general, faces, has little to do with finance or engineering. To get better adoption, ultimately, usability is key.
The Multi-Collateral Dai release will include upgrades of the CDP Portal, as well as the governance website with improvements based on the user feedback that we received.
Launched less than a year ago, Single-Collateral Dai has already reached a supply of more than 65 million. For the many end-users and partners alike, a smooth upgrade path to MCD is crucial.
There will be two services to facilitate this by the launch of Multi-Collateral Dai:
After the launch, Single-Collateral Dai will remain available for at least 6 months before Emergency Shutdown might be initiated. This transition period will allow Dai holders and CDP owners to migrate to MCD without a problem, and Maker will publish the necessary guides and tools to further support this process.
More information about the upgrade process for particular integrations can be asked through our rocket.chat or by sending an e-mail to [email protected].
Last but not least, Multi-Collateral Dai will (unsurprisingly) launch with not one, but multiple types of collateral.
The Maker team has been busy with the assessment of feasible candidates for this within the previously announced risk framework, but the confirmation of this list will be acquired through a governance vote. It is important to note that the voting process will start sometime before the mainnet launch of MCD.
Because this vote will be the next thing that happens on our road to MCD mainnet release, we will write up a more detailed post about this soon. Keep an eye out here on our blog, and telegram and twitter to stay up-to-date!