Welcome to build a Smart Contract Hacker Challenge! In this very Topcoder challenge your goal is to prepare a self contained vulnerable MultiSig wallet that is ready to get hacked. All the text below describes the intention of the Smart Contract Hacker Challenge how it should be setup and its objectives. Pay special attention to the Details section, it lists what is expercted from you in this Topcoder challenge.
OverviewThe client's intention is to launch a Hacking Contest for smart contract systems, and this will be its first challenge. Participants will learn smart contract security by trying to exploit vulnerabilities that have occured in the past in popular smart contract projects. The challenges will be published as self-contained GitHub projects, that can be easily cloned and installed locally. Within minutes participants will be able to start hacking smart contract systems in a realistic and safe environment.
- Create a repository that allows users to clone and install locally the vulnerable Parity wallet contracts that were exploited on July 20th 2017 and November 6th 2017. Use the contracts from this commit hash: https://github.com/paritytech/parity/tree/6345b5403448736e633b502cc111f43a67babbf6/js/src/contracts
- It is expected that it will be possible to install the challenge locally in less than 1-2 minutes
- Upon installation the vulnerable multi sig wallet is deployed and funded with 100k ETH. It is recommended to use Truffle for deployment
- The repo should have README.md file, that explains the objective of the hacker challenges (take the text above, and also the specific challenge descriptions below)
- Create test scripts that verify if the challenge 1 and 2 have been completed. Users run the tests to check, if they have succeeded
- Create a writeup on how the challenges can be solved
- Bonus Goal: Alter the vulnerabilities in the MultiSig wallet in a slight way, so that explotation of the flaws can not just be copied from the post-mortem sources of MultiSig wallets. During the review, if several members implement the previous points in equally good way, we will give a small preference to that submission, if any, which achieves this bonus goal.