Skip to content

Commit

Permalink
Replace chunk prover and verifier with two-compression-layers prover …
Browse files Browse the repository at this point in the history
…and verifier.
  • Loading branch information
silathdiir committed Jul 19, 2023
1 parent 2664f08 commit 93f8e1c
Show file tree
Hide file tree
Showing 35 changed files with 602 additions and 871 deletions.
3 changes: 0 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@ test-inner-prove:
test-chunk-prove:
@cargo test --features prove_verify --release test_chunk_prove_verify

test-comp-prove:
@cargo test --features prove_verify --release test_comp_prove_verify

test-agg-prove:
@cargo test --features prove_verify --release test_agg_prove_verify

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ make download-setup -e degree=DEGREE params_dir=PARAMS_DIR

`make test-chunk-prove` is the main testing entry point for the multi-level circuit constraint system of scroll-zkevm. Developers could understand how the system works by reading the codes of this test.

Besides it, `make test-inner-prove` could be used to test the first-level circuit, and `make-comp-prove` could be used to test two-layers compression circuits.
Besides it, `make test-inner-prove` could be used to test the first-level circuit.

### Binaries

Expand Down
2 changes: 1 addition & 1 deletion bin/src/prove.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ fn main() {

let now = Instant::now();
let chunk_proof = prover
.gen_chunk_proof(traces.as_slice())
.gen_chunk_proof(traces, None)
.expect("cannot generate chunk proof");
info!(
"finish generating chunk proof, elapsed: {:?}",
Expand Down
4 changes: 2 additions & 2 deletions bin/src/verify.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ fn main() {

let args = Args::parse();
let chunk_vk = read_from_file(&args.vk_path);
let v = Verifier::from_params_dir(&args.params_path, Some(chunk_vk));
let v = Verifier::from_params_dir(&args.params_path, &chunk_vk);

let proof_path = PathBuf::from("proof_data").join("chunk_full_proof.json");
let proof_vec = read_from_file(&proof_path.to_string_lossy());
let proof = serde_json::from_slice::<Proof>(proof_vec.as_slice()).unwrap();
let verified = v.verify_chunk_proof(proof).is_ok();
let verified = v.verify_chunk_proof(proof);
info!("verify agg proof: {}", verified)
}

Expand Down
8 changes: 6 additions & 2 deletions ffi/src/prove.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ pub unsafe extern "C" fn init_prover(params_path: *const c_char, _seed_path: *co
pub unsafe extern "C" fn create_block_proof(trace_char: *const c_char) -> *const c_char {
let trace_vec = c_char_to_vec(trace_char);
let trace = serde_json::from_slice::<BlockTrace>(&trace_vec).unwrap();
let proof = PROVER.get_mut().unwrap().gen_chunk_proof(&[trace]).unwrap();
let proof = PROVER
.get_mut()
.unwrap()
.gen_chunk_proof(vec![trace], None)
.unwrap();
let proof_bytes = serde_json::to_vec(&proof).unwrap();
vec_to_c_char(proof_bytes)
}
Expand All @@ -34,7 +38,7 @@ pub unsafe extern "C" fn create_chunk_proof(trace_char: *const c_char) -> *const
let proof = PROVER
.get_mut()
.unwrap()
.gen_chunk_proof(traces.as_slice())
.gen_chunk_proof(traces, None)
.unwrap();
let proof_bytes = serde_json::to_vec(&proof).unwrap();
vec_to_c_char(proof_bytes)
Expand Down
4 changes: 2 additions & 2 deletions ffi/src/verify.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pub unsafe extern "C" fn init_verifier(params_path: *const c_char, agg_vk_path:
let mut agg_vk = vec![];
f.read_to_end(&mut agg_vk).unwrap();

let v = Box::new(zkevm::Verifier::from_params_dir(params_path, Some(agg_vk)));
let v = Box::new(zkevm::Verifier::from_params_dir(params_path, &agg_vk));
VERIFIER = Some(Box::leak(v))
}

Expand All @@ -25,6 +25,6 @@ pub unsafe extern "C" fn init_verifier(params_path: *const c_char, agg_vk_path:
pub unsafe extern "C" fn verify_chunk_proof(proof: *const c_char) -> c_char {
let proof_vec = c_char_to_vec(proof);
let chunk_proof = serde_json::from_slice::<Proof>(proof_vec.as_slice()).unwrap();
let verified = VERIFIER.unwrap().verify_chunk_proof(chunk_proof).is_ok();
let verified = VERIFIER.unwrap().verify_chunk_proof(chunk_proof);
verified as c_char
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"strategy": "Simple",
"degree": 25,
"num_advice": [
1
2
],
"num_lookup_advice": [
1
Expand Down
31 changes: 0 additions & 31 deletions prover/src/aggregator/prover/chunk.rs

This file was deleted.

106 changes: 0 additions & 106 deletions prover/src/aggregator/prover/common.rs

This file was deleted.

36 changes: 0 additions & 36 deletions prover/src/aggregator/prover/compression.rs

This file was deleted.

74 changes: 0 additions & 74 deletions prover/src/aggregator/verifier.rs

This file was deleted.

1 change: 1 addition & 0 deletions prover/src/aggregator.rs → prover/src/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ mod prover;
mod verifier;

pub use self::{prover::Prover, verifier::Verifier};
pub use aggregator::ChunkHash;
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ use halo2_proofs::{
};
use std::collections::{BTreeMap, BTreeSet, HashMap};

mod chunk;
mod common;
mod compression;
mod evm;
mod inner;
mod mock;
mod utils;

#[derive(Debug)]
pub struct Prover {
Expand Down
Loading

0 comments on commit 93f8e1c

Please sign in to comment.