distaff icon indicating copy to clipboard operation
distaff copied to clipboard

Zero-knowledge virtual machine written in Rust

Results 11 distaff issues
Sort by recently updated
recently updated
newest added

This PR will attempt to add support for random access memory. This requires: - [ ] Move `PUSH` operation out of high-degree operation class into its own class. - [...

Current default security level of the proofs is around 110 bits (not 120 as mentioned in the docs). Getting more security than this would require running FRI in a quadratic...

Optimization
Security

Some of the instructions below would require support for 2-parameter instructions. ### Crypto instructions * `digest.n` to support hashing long sequences of values (as in #38) ### Bit manipulations *...

enhancement
instruction set

Candidates for addition: * `CSWAP` to maintain consistency with `CSWAP2` instruction. Candidates for removal: * `CHOOSE2` operation can be emulated by using `CSWAP2` operation. * `CHOOSE` operation can be emulated...

instruction set

Current `hash` instructions allow hashing between 1 and 4 field elements. Hashing of more than 4 elements is possible but requires the user to manually calculate the number of `hash`...

enhancement
instruction set

It would be great if the VM supported EC operations (point addition, doubling, multiplication). This would open the door for verifying EC signatures (e.g. Schnorr) within the VM as well...

enhancement
help wanted

To improve code organization the repo should be split up into multiple crates. Potential crates are: * *Math* with all the functionality that currently lives under /src/math * *Crypto* for...

enhancement

Currently, stack is the only place to store values. This is rather limiting, and can be improved by introducing random access memory. Adding RAM would require: 1. Implementing ALT stack...

instruction set

This is great work! Do consider taking inspiration from ZkVM, since it implements a nice Bitcoin Script-like language (w/ bulletproofs as the proof system). You might get some nice ideas...

Currently, proof generation is done in a single thread. Prooving time can be sped-up significantly by taking advantage of multi-threading. The following areas could be parallelized (ranked in order from...

enhancement