Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
TomAFrench committed Oct 30, 2024
1 parent 58d0406 commit 8a5e139
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[package]
name = "double_verify_honk_proof"
type = "bin"
authors = [""]

[dependencies]

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// This circuit aggregates two Honk proof from `assert_statement_recursive`.
global SIZE_OF_PROOF_IF_LOGN_IS_28: u32 = 463;
global HONK_IDENTIFIER: u32 = 1;
fn main(
verification_key: [Field; 128],
// This is the proof without public inputs attached.
// This means: the size of this does not change with the number of public inputs.
proof: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28],
public_inputs: pub [Field; 1],
key_hash: Field,
// The second proof, currently set to be identical
proof_b: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28],
) {
std::verify_proof_with_type(
verification_key,
proof,
public_inputs,
key_hash,
HONK_IDENTIFIER,
);
std::verify_proof_with_type(
verification_key,
proof_b,
public_inputs,
key_hash,
HONK_IDENTIFIER,
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[package]
name = "double_verify_honk_proof_recursive"
type = "bin"
authors = [""]

[dependencies]

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// This circuit aggregates two Honk proofs from `assert_statement_recursive`.
global SIZE_OF_PROOF_IF_LOGN_IS_28: u32 = 463;
global HONK_IDENTIFIER: u32 = 1;
#[recursive]
fn main(
verification_key: [Field; 128],
// This is the proof without public inputs attached.
// This means: the size of this does not change with the number of public inputs.
proof: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28],
public_inputs: pub [Field; 1],
key_hash: Field,
// The second proof, currently set to be identical to the first proof
proof_b: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28],
) {
std::verify_proof_with_type(
verification_key,
proof,
public_inputs,
key_hash,
HONK_IDENTIFIER,
);
std::verify_proof_with_type(
verification_key,
proof_b,
public_inputs,
key_hash,
HONK_IDENTIFIER,
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[package]
name = "verify_honk_proof"
type = "bin"
authors = [""]

[dependencies]

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// This circuit aggregates a single Honk proof from `assert_statement_recursive`.
global SIZE_OF_PROOF_IF_LOGN_IS_28: u32 = 463;
global HONK_IDENTIFIER: u32 = 1;
fn main(
verification_key: [Field; 128],
// This is the proof without public inputs attached.
// This means: the size of this does not change with the number of public inputs.
proof: [Field; SIZE_OF_PROOF_IF_LOGN_IS_28],
public_inputs: pub [Field; 1],
// This is currently not public. It is fine given that the vk is a part of the circuit definition.
// I believe we want to eventually make it public too though.
key_hash: Field,
) {
std::verify_proof_with_type(
verification_key,
proof,
public_inputs,
key_hash,
HONK_IDENTIFIER,
);
}

0 comments on commit 8a5e139

Please sign in to comment.