miden-vm icon indicating copy to clipboard operation
miden-vm copied to clipboard

Standard library v0.2 content

Open bobbinth opened this issue 2 years ago • 1 comments

Standard library v0.1 includes the following modules:

  • math::u64 - for handling unsigned 64-bit integer arithmetic.
  • crypto::hashes::blake3 - for computing 2-to-1 hashes only.
  • crypto::hashes::sha256 - for computing 2-to-1 hashes only.

For v0.2 release, I'm thinking it would be nice to do the following:

  • std::math
    • Finish math::u256 module: most of this is already done.
    • Maybe add a few more procedures to the u64 module - e.g., pow, log.
    • Maybe add math::f64 module (or something like that) for floating point operations.
  • std::crypto
    • Add crypto::hashes::keccak256 module: we already have an implementation, but probably could optimize it quite a bit.
    • Add crypto::curves:secp256k1 module: most of this is already one, but we could probably optimize it a bit more.
      • Maybe one procedure we could add here is ecdsa_verify - or maybe it should go into a separate module.
    • Maybe add crypto::sigs::falcon to support Flacon signatures.
  • std::str module with RLP decoder similar to what is discussed in #249.
  • std::stark would be nice to add this for recursive STARK verification - but this might be quite ambitious.
  • std::eth we should probably start adding some Ethereum built-ins - e.g., mload and mstore which will interpret memory the way these opcodes work in EVM.

The above is probably quite ambitious, and I'm probably missing something. So, definitely open to feedback.

bobbinth avatar Jul 09 '22 07:07 bobbinth

std::stark would be nice to add this for recursive STARK verification - but this might be quite ambitious.

Would love to see this @bobbinth.

liamzebedee avatar Aug 29 '22 01:08 liamzebedee