Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[patch."https://github.com/scroll-tech/ceno.git"]
ceno_mle = { path = "../ceno/multilinear_extensions", package = "multilinear_extensions" }
ceno_sumcheck = { path = "../ceno/sumcheck", package = "sumcheck" }
ceno_transcript = { path = "../ceno/transcript", package = "transcript" }
ceno_witness = { path = "../ceno/witness", package = "witness" }
ceno_zkvm = { path = "../ceno/ceno_zkvm" }
ceno_emul = { path = "../ceno/ceno_emul" }
gkr_iop = { path = "../ceno/gkr_iop" }
mpcs = { path = "../ceno/mpcs" }
ff_ext = { path = "../ceno/ff_ext" }
9 changes: 6 additions & 3 deletions src/e2e/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use crate::zkvm_verifier::binding::{
};
use crate::zkvm_verifier::verifier::{verify_gkr_circuit, verify_zkvm_proof};
use ceno_mle::util::ceil_log2;
use ceno_transcript::BasicTranscript;
use ff_ext::BabyBearExt4;
use gkr_iop::gkr::{
layer::sumcheck_layer::{SumcheckLayer, SumcheckLayerProof},
Expand Down Expand Up @@ -329,8 +330,10 @@ pub fn inner_test_thread() {
.expect("Failed to deserialize vk file");

let verifier = ZKVMVerifier::new(vk);
let zkvm_proof_input = parse_zkvm_proof_import(zkvm_proof, &verifier);

let zkvm_proof_input = parse_zkvm_proof_import(zkvm_proof.clone(), &verifier);

let transcript = BasicTranscript::new(b"riscv");
verifier.verify_proof(zkvm_proof, transcript).expect("ZKVM proof verification failed");
// OpenVM DSL
let mut builder = AsmBuilder::<F, EF>::default();

Expand All @@ -347,7 +350,7 @@ pub fn inner_test_thread() {
witness_stream.extend(zkvm_proof_input.write());

// Compile program
let options = CompilerOptions::default().with_cycle_tracker();
let options = CompilerOptions::default();
let mut compiler = AsmCompiler::new(options.word_size);
compiler.build(builder.operations);
let asm_code = compiler.code();
Expand Down
8 changes: 6 additions & 2 deletions src/zkvm_verifier/verifier.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ use crate::transcript::transcript_observe_label;
use crate::zkvm_verifier::binding::{
GKRProofVariable, LayerProofVariable, SumcheckLayerProofVariable,
};
use crate::basefold_verifier::verifier::batch_verify;
use crate::{
arithmetics::{
build_eq_x_r_vec_sequential, ceil_log2, concat, dot_product as ext_dot_product,
Expand Down Expand Up @@ -299,6 +300,9 @@ pub fn verify_zkvm_proof<C: Config<F = F>>(
&mut poly_evaluator,
)
};
// root cause: for keccak, the input_opening_point has length=12
// but outside the loop, it becomes 7
builder.print_v(input_opening_point.len().get_var());
builder.cycle_tracker_end("Verify chip proof");

let witin_round: RoundOpeningVariable<C> = builder.eval(RoundOpeningVariable {
Expand Down Expand Up @@ -375,15 +379,14 @@ pub fn verify_zkvm_proof<C: Config<F = F>>(
);
}

/* _debug
batch_verify(
builder,
zkvm_proof_input.max_num_var,
zkvm_proof_input.max_width,
rounds,
zkvm_proof_input.pcs_proof,
&mut challenger,
);
*/

let empty_arr: Array<C, Ext<C::F, C::EF>> = builder.dyn_array(0);
let initial_global_state = eval_ceno_expr_with_instance(
Expand Down Expand Up @@ -1028,6 +1031,7 @@ pub fn evaluate_gkr_expression<C: Config>(
// _debug
// assert!(parts.iter().all(|part| part.point == parts[0].point));

// FIXME: this is WRONG. we should use builder.dyn_array();
let mut new_point: Vec<Ext<C::F, C::EF>> = vec![];
builder
.range(0, parts[0].point.fs.len())
Expand Down