Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ream on ERE!

This project is for show-casing Ere with Ream codebase. Each guest program runs process_attestation which is quite simple (and also includes BLS verification).

Prepare

You should install all necessary dependencies for each zkVMs. Find out missing SDK in eth-act/ere repository (link).

Execute

Warning

As Zisk is not explictly supported in macOS (See release note of v0.9.0), I haven't been able to test Zisk.

Warning

Jolt is not fully supported by Ere. make run_jolt will exit with a message.

# Select zkVM with Rust Features in compile time.
make run_<sp1,risc0,openvm,pico,zisk,jolt>

Prove

You can modify host/main.rs like following:

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // ...

    let (proof, report) = zkvm.prove(&input)?;
    println!("prove cost: {:?} s", report.proving_time.as_secs_f64());
    let is_verifier = zkvm.verify(&proof).is_ok();
    if is_verifier {
        println!("Executed successfully");
    } else {
        println!("Verification failed.");
    }
    Ok(())
}

But as BLS verification is included, proving process would take so much time in daily laptops like MacBook. We might improve this by leveraging precompiles.

Notes

About Report

/// ProgramExecutionReport produces information about a particular program
/// execution.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ProgramExecutionReport {
    /// Total number of cycles for the entire workload execution.
    pub total_num_cycles: u64,
    /// Region-specific cycles, mapping region names (e.g., "setup", "compute") to their cycle counts.
    pub region_cycles: IndexMap<String, u64>,
    /// Execution duration.
    pub execution_duration: Duration,
}

Although ProgramExecutionReport has the fields, I'd like to note that not every zkVM supports feature corresponding to each field. For example, region_cycles is only available on SP1 as it supports a cycle tracking feature.

Acknowledgement

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages