feat(zkvm): state transition function proving using zkvm's - #531
feat(zkvm): state transition function proving using zkvm's #531Sahilgill24 wants to merge 11 commits into
Conversation
|
Note I will be updating and adding proper comments where ever necessary and also try to write a more idiomatic approach for the StfInput if possible, the current version is a basic scaffold as mentioned in the 1st step of the implementation plan in the doc. |
e43aee5 to
f4c5e96
Compare
|
Hey @MegaRedHand, for the commit#d62d221, the zkVM target is specified for the guest program and it's dependencies, I have currently set the target inside the code in the types and metrics crate, but there might be other ways to do so like creating a different no-op module and setting it to the zkVM target. Could you have a look once and confirm which approach would better set with ethlambda's code design format. |
|
Having a no-op module for metrics sounds better than having |
|
Thanks, I will refactor the metrics and make a no-op metrics module as well. |
I think I would need to make this refactor first, so while testing out the prover, the prover has dependency conflicts with lean-sig (the prover runs naitvely, where as the guest runs for the zkvm target that's why guest had no such issues) , there are some temporary solutions, but I think as anyways a refactor needs to be done, I will complete that first :) The changes were quite trivial for this signature logic port, made them here #541 . |
…ypto (#541) ## Description / Motivation porting the lean-sig based signature logic from types crate to crypto crate as mentioned [here](#531 (comment)) It is first of all a cleaner and more idiomatic approach and secondly ethlambda-types crate builds/compiles for the prover crate(zkVM prover), which also leads to dependency conflicts between leansig dependencies and the zkVM sdk dependencies being used. This port removes all leansig dependencies from the ethlambda-types ## What Changed - added a new `signature.rs` file to the crypto crate along with a extension trait `ValidatorPublicKeys` with the same methods as before, it helps in avoiding cyclic dependencies and the call sites remain the same. - removed the older `signature.rs` from the types crate and moved the `SIGNATURE_SIZE` directly to the `attestation.rs` ## Verification Checklist - [x] Ran `make fmt` - [x] Ran `make lint` (clippy with `-D warnings`) - [x] Ran `cargo test --workspace --release` — all passing --------- Co-authored-by: Pablo Deymonnaz <pdeymon@fi.uba.ar>
Description / Motivation
#156
What Changed
The approach is based on this doc ethlambda's stf proving using zkvm's.
Current Progress
Verification Checklist
make fmt— cleanmake lint(clippy with-D warnings) — cleancargo test --workspace --release— all passing