miden-vm
miden-vm copied to clipboard
Standard library v0.2 content
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.
- Finish
-
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 one procedure we could add here is
- Maybe add
crypto::sigs::falcon
to support Flacon signatures.
- Add
-
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
andmstore
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.
std::stark would be nice to add this for recursive STARK verification - but this might be quite ambitious.
Would love to see this @bobbinth.