EIP-152 introduced a new Blake2b precompile contract for Ethereum.

This blake2b compression is implemented by Sodium, but Ethereum chose to use a different sigma.

Motivation

Current implementations of blake2b are client-specific - there exists one for each client, so far. They also are implemented in Java where ideally they should be implemented in low-level C, and introduced via bindings.

Finally, this could be easily done by adopting and extending the libsodium primitives.

Scope of work

Identify how to best implement a fast blake2b function, probably by reusing libsodium approaches.

Bundle a C low-level primitive for this precompile with a simple Java wrapper - JNR, most likely.

  • No labels