This bounty is no longer available
Web3 DAO | DFINITY Logo

BNT-4: Keccak-256 and SHA3 Motoko Library

Organization

DFINITY

Deadline

in over 262 years

Status

ENDED

2000 USD

INSTRUCTIONS

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 (at time of distribution)

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

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