-
Notifications
You must be signed in to change notification settings - Fork 266
Description
Documentation Alignment issue
Following: https://jolt.a16zcrypto.com/usage/quickstart.html#project-tour
Under Project Tour,
The book suggested that the src/main.rs looks like
pub fn main() {
let (prove_fib, verify_fib) = guest::build_fib();
let (output, proof) = prove_fib(50);
let is_valid = verify_fib(proof);
println!("output: {output}");
println!("valid: {is_valid}");
}But when generating new project with jolt new <PROJECT_NAME>, src/main.rs looks like
pub fn main() {
let target_dir = "/tmp/jolt-guest-targets";
let program = guest::compile_fib(target_dir);
let prover_preprocessing = guest::preprocess_prover_fib(&program);
let verifier_preprocessing = guest::preprocess_verifier_fib(&program);
let prove_fib = guest::build_prover_fib(program, prover_preprocessing);
let verify_fib = guest::build_verifier_fib(verifier_preprocessing);
let (output, proof) = prove_fib(50);
let is_valid = verify_fib(50, output, proof);
println!("output: {output}");
println!("valid: {is_valid}");
}I'm unable to use build_fib as shown in the newer version of Jolt.
Am I misled by the different version of Jolt as it seems to me the documentation provides a much simplified manner to develop ZKP as compared to the version it currently presents itself.
Invalid verification method
The method verify_fib(proof) is replaced by the new verify_fib(50, output, proof) which doesn't make sense as the private input for the proof is required for the verification. This doesn't align what how ZKP are supposed to work as mentioned in Microsoft's Spartan proving the knowledge of a secret s such that H(s) == d for a public d