Skip to content

Instructions for Quickstart and Implementation doesn't align and invalid verification method #810

@Benny1143

Description

@Benny1143

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions