Please describe your proposed solution
Developing Smart Contracts (SC) on Cardano is especially challenging as the security is an integral part of every SC. Security risks and the ways to mitigate them is a far-reaching and complex subject and the community lacks educational materials to help them design secure smart contracts.
Such a predicament qualifies as a major security problem that can potentially cause staggering financial and reputational damages, sometimes escalating to millions of ADA. Evidence of this problem can be seen in numerous audits of SCs, which frequently uncover a multitude of vulnerabilities of varying degrees. We have found critical vulnerabilities in almost every single audit that we have conducted. Our public reports that show this can be found in our public archive. We also notice this trend in numerous non-public audits. These critical vulnerabilities lead to either freezing or stealing all the funds locked in the contracts.
While our audits prevented these vulnerabilities, an audit should be only one of the steps in the overall security of the code. The security of the final contract should not be based on audit findings only. This starts with raising the security awareness and a proper education in the field.
For these reasons and thanks to Catalyst fund 10, we created Cardano Capture the Flag (CTF) – A hands-on learning experience for enthusiasts to try to exploit purposely vulnerable smart contracts. You can check the milestones and their timely delivery in the milestone module.
We explored how we could provide and gamify this hands-on learning experience around Cardano smart contract security and provided 10 levels of increasing complexity and difficulty. We received very good feedback from people that were solving it. Alongside, we published a series of blog posts explaining more about the vulnerabilities, see our Medium.
We aim to continue with the project. There are a lot of levels we can imagine adding which would serve two purposes:
- Provide materials to new vulnerabilities or different flavors of the same vulnerabilities.
- Make the complexity of the levels more manageable by introducing more of the easier tasks. We believe that this will help with getting more people successfully solving more levels.
The delivery would follow a similar process as before. We plan to:
- Add 14 levels to the game - together with 14+ smart contracts that provide clear examples of common smart contract vulnerabilities.
- All levels will contain a simple-to-use documented offchain code that developers can use to deploy and interact with these vulnerable smart contracts in the emulator and on the testnet.
- A series of blog posts related to the solutions to the tasks, broader materials on the vulnerabilities and ways to prevent them.
- Tweets about the tasks.
- Continue maintaining a Discord channel where users can interact, ask for help and share their results.