Overview
Status: Open Project Type: Traditional: One applicant is selected to work on the task. Time Commitment: Days Experience Level: Intermediate Size: USD 2'000 in ICP
Description
Since the Internet Computer allows canisters to sign Ethereum transactions, there's a need to hash those transactions. This is currently not directly possible in canisters written in Motoko. and a workaround like calling the EVM utility canister has to be used.
In this bounty, you will implement two cryptographic hashing algorithms in Motoko. Keccak-256 is the hashing algorithm used for signing Ethereum transactions. It is similar to the standardized SHA-3 but uses a different padding. Hence, it makes sense to include both variations, although the official SHA-3 is not used in Ethereum.
Acceptance Criteria
- Implementation with tests
- Meaningful readme with usage example
- Open Source license (e.g. MIT)
- Available in the mops package manager
How to apply?
- Include links to previous relevant work.
- Include a brief overview of how you will complete the task.
- Give an estimated timeline for completing the task.
- Post your application text in this thread
References
SHA-3 and Keccak implementations
- https://github.com/ethereum/eth-hash
- https://github.com/RustCrypto/hashes/tree/master/sha3
Examples of cryptographic hashing libraries in Motoko
- https://github.com/timohanke/motoko-sha2
- https://github.com/aviate-labs/crypto.mo
- https://github.com/tgalal/motoko-bitcoin