Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Mythril is a security analysis tool for Ethereum smart contracts, written in Python. It uses the concolic and taint analysis, as well as the control flow checks, to detect a variety of security vulnerabilities.

We look for Topcoder community’s member to fill copilot / release manager role in this project. The perfect candidate is proficient in Python and Ethereum ecosystems, and available to take care about the project on the permanent basis. Our expectations:
  • You will track all incoming issues and PRs into Git repositories of Mythril and LASER-ethereum (coming from external users, not related to TC or the client); in general, we expect you reply them within 24h timeframe;
     
  • You will go into technicalities of mythril and laser, and will be able to efficiently test incoming PRs and/or fixes produced by Topcoder community, to ensure they fix the issues, and don’t introduce any regression;
     
  • When necessary, you’ll be running F2F and/or Code challenges at Topcoder platform to fix reported issues. In all cases you are expected to review code changes, to ensure production ready quality of code in the master branch of mythril; you’ll also release new versions of Mythril to public as soon as possible.
     
  • For complex technical questions you will coordinate with the core client’s team; for any questions related to Topcode side, you’ll coordinate with us.
We will pay you a flat rate, $300/week, expecting ~10h / week involvment into the project. For the work you run through Topcoder platform you’ll be paid extra the standard fees as Topcoder copilot / reviewer. In case of any additional work, will negotiate extra payments on the case-to-case basis.

As a technical test for candidates we run two parallel challenges (here is the second challenge). We will select the member to fill the role from the winner(s) of these challenges. In case you are just interested in these challenges, but not in the proposed role, feel free to do the tasks and submit, just include into your submission a note that you don't want to be considered for the role.

Challenge Scope

Add precompiled contracts

The EVM specification defines four so-called ‘precompiled’ contracts. The four contracts in addresses 1, 2, 3 and 4 execute the elliptic curve public key recovery function (ecrecover), the SHA2 256-bit hash scheme, the RIPEMD 160-bit hash scheme and the identity function respectively.

Call to the ecrecover precompiled contract in assembly:
CALL 0x1

Currently, LASER-Ethereum ignores calls to the precompiled contracts. In this task, the precompiled contracts are to be implemented. When a precompiled contract is called, the result should be computed using the appropriate Python cryptographic libraries. Also create tests for each of the four precompiles.

Go-Ethereum implementation:
https://github.com/ethereum/go-ethereum/blob/master/core/vm/contracts.go

 



Final Submission Guidelines

Submit git patch that resolves the technical ask of the challenge, along with verification guidelines. If you are interested to take the proposed role, feel free to include into submission info about your technical qualifications / fitness to the role. While the placements in this very challenge will rely on the standard review scores, for the suggested role we reseve the right to propose it to the best candidate, not necessarily according to the placement in this very, and the parallel challenges.

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30065730