If you notice some outdated information please let us know!
PASS
The final review score is indicated as a percentage. The percentage is calculated as Achieved Points due to MAX Possible Points. For each element the answer can be either Yes/No or a percentage. For a detailed breakdown of the individual weights of each question, please consult this document.
Very simply, the review looks for the following declarations from the developer's site. With these declarations, it is reasonable to trust the smart contracts.
This report is for informational purposes only and does not constitute investment advice of any kind, nor does it constitute an offer to provide investment advisory or other services. Nothing in this report shall be considered a solicitation or offer to buy or sell any security, token, future, option or other financial instrument or to offer or provide any investment advice or service to any person in any jurisdiction. Nothing contained in this report constitutes investment advice or offers any opinion with respect to the suitability of any security, and the views expressed in this report should not be taken as advice to buy, sell or hold any security. The information in this report should not be relied upon for the purpose of investing. In preparing the information contained in this report, we have not taken into account the investment needs, objectives and financial circumstances of any particular investor. This information has no regard to the specific investment objectives, financial situation and particular needs of any specific recipient of this information and investments discussed may not be suitable for all investors.
Any views expressed in this report by us were prepared based upon the information available to us at the time such views were written. The views expressed within this report are limited to DeFiSafety and the author and do not reflect those of any additional or third party and are strictly based upon DeFiSafety, its authors, interpretations and evaluation of relevant data. Changed or additional information could cause such views to change. All information is subject to possible correction. Information may quickly become unreliable for various reasons, including changes in market conditions or economic circumstances.
This completed report is copyright (c) DeFiSafety 2023. Permission is given to copy in whole, retaining this copyright label.
This section looks at the code deployed on the relevant chains and team aspects. The document explaining these questions is here.
1. Are the smart contract addresses easy to find? (%)
The Maker Protocol provides all of its smart contract addresses and their Application Binary Interfaces (ABIs) in a centralized location, the Chainlog (chainlog.makerdao.com). The Chainlog provides information for both the Ethereum Mainnet and the Ethereum Goerli Testnet. It provides contract addresses with links to Etherscan and their respective ABIs. This information is easily accessible and clearly labeled, meeting the criteria for a 100% score.
2. Does the protocol have a public software repository? (Y/N)
The protocol's documentation mentions the use of Github for hosting their codebase. This suggests that they have a public software repository on Github.
3. Is the team public (not anonymous)?
Multiple contributors to the GitHub repository are public.
4. How responsive are the devs when we present our initial report?
Devs did not respond to our comment on the #developers of their discord for 3 days.
This section looks at the software documentation. The document explaining these questions is here.
5. Is there a whitepaper? (Y/N)
Location: https://docs.makerdao.com/
6. Is the protocol's software architecture documented? (%)
Excellent architecture documentation is included.
7. Does the software documentation fully cover the deployed contracts' source code? (%)
Maker's documentation is impressive and covers all deployed contracts in a highly organized fashion.
8. Is it possible to trace the documented software to its implementation in the protocol's source code? (%)
There is clear association from the documents to the code, but there is no explicit traceability to the implementation.
9. Is the documentation organized to ensure information availability and clarity? (%)
Organization and clarity is excellent.
This section covers the testing process of the protocol’s smart contract code previous to its deployment on the mainnet. The document explaining these questions is here.
10. Has the protocol tested their deployed code? (%)
As per the SLOC, there is 222% testing to code (TtC).
11. How covered is the protocol's code? (%)
Code coverage is mentioned, but proof could not be found. Nevertheless, there's evidently heavy testing on this protocol.
12. Is there a detailed report of the protocol's test results?(%)
Code coverage is mentioned, but proof could not be found. Nevertheless, there's evidently heavy testing on this protocol.
This section looks at the 3rd party software audits done. It is explained in this document.
14. Is the protocol sufficiently audited? (%)
The protocol has undergone multiple audits prior to deployment. The documentation provides transparency to the community with respect to the results of the Multi Collateral Dai (MCD) Audits, Bug Bounty Program, and Formal Verification. These audits are publicly accessible, and any feedback from these audits have been implemented by the protocol's developers. This is evident from the regular updates on MCD Security Roadmap and the publication of the Runtime Verification Audit. Therefore, the quality and adequacy of the protocol's smart contract audits are high.
15. Is there a matrix of audit applicability on deployed code (%)? Please refer to the example doc for reference.
No explicit matrix of audit applicability was found. However, there are a small number of audits and all are clearly applicable to the multi-collateral DAI deployed. For this reason the intent is met and a 100% score is given.
16. Is the bug bounty value acceptably high (%)
MakerDAO initiated the Bug Bounty program privately for selected researchers (Private testnet on June 3rd). This does not count based on our process. They launched a public bu bouty program through HackerOne. With a top payout of 100k, this scores 70% as per our guidance.
17. Is there documented protocol monitoring (%)?
Maker is a very mature protocol where dynamic on chain variations can have significant impacts on the protocol. For this reasoning bots for may aspects have always been a big part of the protocol, such as auction keepers and market maker keepers.
18. Is there documented protocol front-end monitoring (%)?
Based on the provided sources, there is evidence of one out of four security measures. The documentation mentions that the website is protected by Cloudflare, which provides DDoS protection. However, there are no explicit mentions of DNS steps to protect the domain, intrusion detection protection on the front end, or unwanted front-end modification detection.
This section covers the documentation of special access controls for a DeFi protocol. The admin access controls are the contracts that allow updating contracts or coefficients in the protocol. Since these contracts can allow the protocol admins to "change the rules", complete disclosure of capabilities is vital for user's transparency. It is explained in this document.
19. Is the protocol code immutable or upgradeable? (%)
The code is upgradeable via spells which have timelocks and roles and it executes automatically based on MKR votes.
20. Is the protocol's code upgradeability clearly explained in non technical terms? (%)
50% Code is upgradeable with minimal explanation. The detailed documentation on spells does not clearly describe the capability. The language is very specific and would not be clear to an finance person without extensive MAKER experience.
21. Are the admin addresses, roles and capabilities clearly explained? (%)
Evidently all code changes are executed via spells. Spells are automatically executed after a MKR vote, meaning their are no admins. This not clearly explained. The language is very protocol specific. The provided documents contain information about various aspects of the protocol but do not specifically detail the admin addresses, roles, and capabilities. While the documentation does provide in-depth details about contract mechanisms, parameters, and authorizations, it does not clearly define or explain the roles and capabilities of admins within the protocol. The information appears to be dispersed and fragmented, requiring further investigation and potential inference to identify admin-related details.
22. Are the signers of the admin addresses clearly listed and provably distinct humans? (%)
Evidently all code changes are executed via spells. Spells are automatically executed after a MKR vote, meaning their are no signers per say. The detailed documentation on spells is not clear on this even after it is explained, you cannot find clear words in the documentation.
23. Is there a robust documented transaction signing policy? Please refer to the Example doc for reference.(%)
Evidently all code changes are executed via spells. Spells are automatically executed after a MKR vote, meaning their are no signers per say. For this reason a transaction signing policy is not required and a 100% score is given. The provided documentation does not appear to contain a transaction signing policy as outlined in the research instructions. The documentation mainly focuses on the operation and governance of the protocol, but does not provide any specific procedures or requirements for transaction signing, such as the use of specific wallets, browsers, or VPNs, or requirements for the physical and digital environments in which transactions are initiated and executed.
This section goes over the documentation that a protocol may or may not supply about their Oracle usage. Oracles are a fundamental part of DeFi as they are responsible for relaying tons of price data information to thousands of protocols using blockchain technology. Not only are they important for price feeds, but they are also an essential component of transaction verification and security. These questions are explained in this document.
24. Are Oracles relevant? (Y/N)
25. Is the protocol's Oracle sufficiently documented? (%)
The protocol's Oracle is sufficiently documented. The Maker Protocol's Oracle Module is thoroughly outlined in the technical documentation which includes details on its core components, Median and OSM contracts. It provides information on the function of the Oracle Module, which is deployed for each collateral type and feeds price data for a corresponding collateral type to the Vat. The documentation also explains the mechanism of the Oracle, which includes the whitelisting of addresses and how price updates are broadcasted off-chain, fed into a median, and then pulled into the OSM. Additional details are provided in the Median - Detailed Documentation which explains the function and behavior of the median in the Oracle Module.
26. Can flashloan attacks be applied to the protocol, and if so, are those flashloan attack risks mitigated? (Y/N)
The Maker Protocol has implemented a Flash Mint Module which allows anyone to mint DAI up to a limit set by Maker Governance with the condition that they pay it all back in the same transaction with a fee. While this could potentially open up the protocol to flashloan attacks, the module has been designed in a way to exploit arbitrage opportunities without having to commit upfront capital. This makes the DeFi space safer overall as it allows for exploits requiring a large amount of capital to be found quicker. The fees also provide an income source for the protocol. Therefore, the protocol has implemented countermeasures against flashloan attacks.