From 9a50aebf543d0405942ad531635117dd14ca5c7e Mon Sep 17 00:00:00 2001 From: ananas-block <58553958+ananas-block@users.noreply.github.com> Date: Sun, 27 Oct 2024 16:34:50 -0400 Subject: [PATCH] feat: add flexible nullifier to update circuit (#1315) * feat: add flexible nullifier to update circuit * regenerate update keys * fix: derive nullifier in circuit from leaf and tx hash * regenerate uodate keys --------- Co-authored-by: Sergey Timoshin --- .../light-prover-client/src/batch_update.rs | 13 ++- .../src/gnark/batch_update_json_formatter.rs | 9 +- .../light-prover-client/tests/gnark.rs | 80 +++++++++-------- .../src/verifying_keys/update_26_1.rs | 90 +++++++++---------- .../src/verifying_keys/update_26_10.rs | 90 +++++++++---------- .../src/verifying_keys/update_26_100.rs | 90 +++++++++---------- .../src/verifying_keys/update_26_1000.rs | 90 +++++++++---------- .../src/verifying_keys/update_26_500.rs | 90 +++++++++---------- light-prover/prover/batch_update_circuit.go | 42 ++++++--- .../prover/batch_update_circuit_test.go | 20 +++++ light-prover/prover/marshal_update.go | 18 ++-- light-prover/prover/test_data_helpers.go | 15 +++- light-prover/scripts/download_keys.sh | 2 +- light-prover/scripts/generate_keys.sh | 2 +- 14 files changed, 364 insertions(+), 287 deletions(-) diff --git a/circuit-lib/light-prover-client/src/batch_update.rs b/circuit-lib/light-prover-client/src/batch_update.rs index 3052eef101..85bdc0cdc1 100644 --- a/circuit-lib/light-prover-client/src/batch_update.rs +++ b/circuit-lib/light-prover-client/src/batch_update.rs @@ -10,6 +10,7 @@ pub struct BatchUpdateCircuitInputs { pub public_input_hash: BigInt, pub old_root: BigInt, pub new_root: BigInt, + pub tx_hashes: Vec, pub leaves_hashchain_hash: BigInt, pub leaves: Vec, pub merkle_proofs: Vec>, @@ -38,6 +39,8 @@ pub fn get_batch_update_inputs( // get from photon current_root: [u8; 32], // get from photon + tx_hashes: Vec<[u8; 32]>, + // get from photon leaves: Vec<[u8; 32]>, // get from account leaves_hashchain: [u8; 32], @@ -54,6 +57,7 @@ pub fn get_batch_update_inputs( // Hence we patch the proofs with the changelog. let mut changelog: Vec> = Vec::new(); let mut circuit_merkle_proofs = vec![]; + let mut nullifiers = vec![]; for (i, (_leaf, (merkle_proof, index))) in leaves .iter() .zip(merkle_proofs.iter().zip(path_indices.iter())) @@ -70,9 +74,10 @@ pub fn get_batch_update_inputs( } let merkle_proof = bounded_vec_merkle_proof.to_array().unwrap(); - + let nullifier = Poseidon::hashv(&[&leaves[i], &tx_hashes[i]]).unwrap(); + nullifiers.push(nullifier); let (root, changelog_entry) = - comput_root_from_merkle_proof([0u8; 32], &merkle_proof, *index); + comput_root_from_merkle_proof(nullifier, &merkle_proof, *index); new_root = root; changelog.push(changelog_entry); @@ -86,6 +91,10 @@ pub fn get_batch_update_inputs( public_input_hash: BigInt::from_be_bytes(&public_input_hash), old_root: BigInt::from_be_bytes(&old_root), new_root: BigInt::from_be_bytes(&new_root), + tx_hashes: tx_hashes + .iter() + .map(|tx_hash| BigInt::from_bytes_be(Sign::Plus, tx_hash)) + .collect(), leaves_hashchain_hash: BigInt::from_be_bytes(&leaves_hashchain), leaves: leaves .iter() diff --git a/circuit-lib/light-prover-client/src/gnark/batch_update_json_formatter.rs b/circuit-lib/light-prover-client/src/gnark/batch_update_json_formatter.rs index 24d628f676..e3908e946f 100644 --- a/circuit-lib/light-prover-client/src/gnark/batch_update_json_formatter.rs +++ b/circuit-lib/light-prover-client/src/gnark/batch_update_json_formatter.rs @@ -24,6 +24,8 @@ pub struct BatchUpdateProofInputsJson { pub height: u32, #[serde(rename(serialize = "batchSize"))] pub batch_size: u32, + #[serde(rename(serialize = "txHashes"))] + pub tx_hashes: Vec, } #[derive(Serialize, Debug)] @@ -38,7 +40,6 @@ impl BatchUpdateProofInputsJson { let old_root = big_int_to_string(&inputs.old_root); let new_root = big_int_to_string(&inputs.new_root); let leaves_hashchain_hash = big_int_to_string(&inputs.leaves_hashchain_hash); - let leaves = inputs .leaves .iter() @@ -54,6 +55,11 @@ impl BatchUpdateProofInputsJson { let path_indices = inputs.path_indices.clone(); let height = inputs.height; let batch_size = inputs.batch_size; + let tx_hashes = inputs + .tx_hashes + .iter() + .map(big_int_to_string) + .collect::>(); Self { public_input_hash, @@ -65,6 +71,7 @@ impl BatchUpdateProofInputsJson { path_indices, height, batch_size, + tx_hashes, } } diff --git a/circuit-lib/light-prover-client/tests/gnark.rs b/circuit-lib/light-prover-client/tests/gnark.rs index 7cdfbd8304..ec8e519bec 100644 --- a/circuit-lib/light-prover-client/tests/gnark.rs +++ b/circuit-lib/light-prover-client/tests/gnark.rs @@ -78,51 +78,57 @@ async fn prove_inclusion() { const HEIGHT: usize = 26; const CANOPY: usize = 0; let num_insertions = 10; + let tx_hash = [0u8; 32]; - info!("initializing merkle tree"); + info!("initializing merkle tree for update."); let mut merkle_tree = MerkleTree::::new(HEIGHT, CANOPY); + for _ in 0..2 { + let mut leaves = vec![]; + let mut nullifiers = vec![]; + for i in 0..num_insertions { + let mut bn: [u8; 32] = [0; 32]; + bn[31] = i as u8; + let leaf: [u8; 32] = Poseidon::hash(&bn).unwrap(); + leaves.push(leaf); + merkle_tree.append(&leaf).unwrap(); + let nullifier = Poseidon::hashv(&[&leaf, &tx_hash]).unwrap(); + nullifiers.push(nullifier); + } - let mut leaves = vec![]; - for i in 0..num_insertions { - let mut bn: [u8; 32] = [0; 32]; - bn[31] = i as u8; - let leaf: [u8; 32] = Poseidon::hash(&bn).unwrap(); - leaves.push(leaf); - merkle_tree.append(&leaf).unwrap(); - } + let mut merkle_proofs = vec![]; + let mut path_indices = vec![]; + for index in 0..leaves.len() { + let proof = merkle_tree.get_proof_of_leaf(index, true).unwrap(); + merkle_proofs.push(proof.to_vec()); + path_indices.push(index as u32); + } + let root = merkle_tree.root(); + let leaves_hashchain = calculate_hash_chain(&nullifiers); + let inputs = get_batch_update_inputs::( + root, + vec![tx_hash; num_insertions], + leaves, + leaves_hashchain, + merkle_proofs, + path_indices, + num_insertions as u32, + ); + let client = Client::new(); + let inputs = update_inputs_string(&inputs); - let mut merkle_proofs = vec![]; - let mut path_indices = vec![]; - for index in 0..leaves.len() { - let proof = merkle_tree.get_proof_of_leaf(index, true).unwrap(); - merkle_proofs.push(proof.to_vec()); - path_indices.push(index as u32); + let response_result = client + .post(&format!("{}{}", SERVER_ADDRESS, PROVE_PATH)) + .header("Content-Type", "text/plain; charset=utf-8") + .body(inputs) + .send() + .await + .expect("Failed to execute request."); + assert!(response_result.status().is_success()); } - let root = merkle_tree.root(); - let leaves_hashchain = calculate_hash_chain(&leaves); - let inputs = get_batch_update_inputs::( - root, - leaves, - leaves_hashchain, - merkle_proofs, - path_indices, - num_insertions, - ); - let client = Client::new(); - let inputs = update_inputs_string(&inputs); - let response_result = client - .post(&format!("{}{}", SERVER_ADDRESS, PROVE_PATH)) - .header("Content-Type", "text/plain; charset=utf-8") - .body(inputs) - .send() - .await - .expect("Failed to execute request."); - let status = response_result.status(); - assert!(status.is_success()); let num_insertions = 10; - info!("initializing merkle tree"); + info!("initializing merkle tree for append."); let merkle_tree = MerkleTree::::new(HEIGHT, CANOPY); let old_subtrees = merkle_tree.get_subtrees(); diff --git a/circuit-lib/verifier/src/verifying_keys/update_26_1.rs b/circuit-lib/verifier/src/verifying_keys/update_26_1.rs index d4cf0a10ff..18fe97ea1d 100644 --- a/circuit-lib/verifier/src/verifying_keys/update_26_1.rs +++ b/circuit-lib/verifier/src/verifying_keys/update_26_1.rs @@ -4,62 +4,62 @@ use groth16_solana::groth16::Groth16Verifyingkey; pub const VERIFYINGKEY: Groth16Verifyingkey = Groth16Verifyingkey { nr_pubinputs: 1usize, vk_alpha_g1: [ - 9u8, 143u8, 125u8, 152u8, 67u8, 157u8, 160u8, 211u8, 179u8, 117u8, 64u8, 31u8, 121u8, - 130u8, 54u8, 34u8, 52u8, 211u8, 94u8, 220u8, 203u8, 29u8, 171u8, 209u8, 131u8, 44u8, 212u8, - 115u8, 61u8, 188u8, 164u8, 12u8, 20u8, 48u8, 61u8, 101u8, 162u8, 205u8, 197u8, 123u8, 64u8, - 255u8, 223u8, 210u8, 9u8, 1u8, 156u8, 67u8, 93u8, 183u8, 103u8, 124u8, 172u8, 32u8, 120u8, - 143u8, 111u8, 20u8, 244u8, 118u8, 206u8, 166u8, 61u8, 214u8, + 18u8, 242u8, 15u8, 176u8, 13u8, 65u8, 99u8, 219u8, 222u8, 77u8, 59u8, 192u8, 147u8, 96u8, + 169u8, 206u8, 57u8, 25u8, 132u8, 202u8, 191u8, 245u8, 30u8, 62u8, 224u8, 234u8, 6u8, 225u8, + 39u8, 53u8, 67u8, 251u8, 40u8, 163u8, 190u8, 114u8, 60u8, 43u8, 210u8, 54u8, 48u8, 46u8, + 180u8, 239u8, 212u8, 232u8, 249u8, 80u8, 50u8, 153u8, 215u8, 69u8, 221u8, 47u8, 49u8, 55u8, + 30u8, 162u8, 187u8, 229u8, 188u8, 161u8, 240u8, 132u8, ], vk_beta_g2: [ - 10u8, 39u8, 82u8, 65u8, 235u8, 40u8, 7u8, 253u8, 127u8, 238u8, 111u8, 111u8, 28u8, 69u8, - 23u8, 206u8, 190u8, 36u8, 59u8, 18u8, 215u8, 172u8, 174u8, 221u8, 146u8, 213u8, 92u8, - 216u8, 96u8, 57u8, 108u8, 154u8, 8u8, 34u8, 244u8, 65u8, 149u8, 207u8, 121u8, 200u8, 179u8, - 172u8, 1u8, 158u8, 254u8, 47u8, 160u8, 12u8, 193u8, 10u8, 255u8, 17u8, 80u8, 87u8, 171u8, - 92u8, 90u8, 217u8, 119u8, 197u8, 54u8, 14u8, 166u8, 41u8, 39u8, 139u8, 77u8, 200u8, 244u8, - 248u8, 190u8, 98u8, 122u8, 74u8, 13u8, 246u8, 166u8, 131u8, 104u8, 247u8, 236u8, 211u8, - 207u8, 216u8, 207u8, 112u8, 183u8, 222u8, 27u8, 88u8, 216u8, 198u8, 251u8, 5u8, 78u8, - 251u8, 40u8, 41u8, 21u8, 34u8, 16u8, 187u8, 130u8, 134u8, 22u8, 166u8, 169u8, 179u8, 193u8, - 183u8, 123u8, 173u8, 146u8, 22u8, 22u8, 103u8, 218u8, 249u8, 131u8, 24u8, 49u8, 141u8, - 60u8, 1u8, 103u8, 179u8, 230u8, 160u8, + 44u8, 44u8, 62u8, 149u8, 146u8, 105u8, 72u8, 46u8, 27u8, 24u8, 232u8, 24u8, 109u8, 253u8, + 184u8, 1u8, 203u8, 159u8, 186u8, 113u8, 55u8, 58u8, 84u8, 82u8, 241u8, 225u8, 115u8, 80u8, + 249u8, 89u8, 212u8, 58u8, 43u8, 189u8, 109u8, 149u8, 201u8, 77u8, 92u8, 122u8, 42u8, 193u8, + 172u8, 108u8, 156u8, 96u8, 135u8, 51u8, 151u8, 69u8, 50u8, 96u8, 67u8, 239u8, 88u8, 99u8, + 239u8, 30u8, 249u8, 100u8, 109u8, 141u8, 200u8, 37u8, 7u8, 253u8, 159u8, 93u8, 35u8, 242u8, + 66u8, 9u8, 108u8, 167u8, 73u8, 152u8, 151u8, 86u8, 43u8, 155u8, 8u8, 246u8, 3u8, 61u8, + 84u8, 152u8, 38u8, 119u8, 199u8, 25u8, 132u8, 26u8, 248u8, 12u8, 61u8, 233u8, 45u8, 152u8, + 185u8, 117u8, 249u8, 240u8, 41u8, 208u8, 156u8, 32u8, 37u8, 17u8, 96u8, 211u8, 37u8, 21u8, + 247u8, 141u8, 220u8, 167u8, 130u8, 185u8, 61u8, 193u8, 208u8, 190u8, 184u8, 255u8, 10u8, + 92u8, 27u8, 209u8, ], vk_gamme_g2: [ - 39u8, 111u8, 183u8, 210u8, 58u8, 72u8, 54u8, 223u8, 74u8, 240u8, 100u8, 227u8, 203u8, - 240u8, 117u8, 63u8, 59u8, 141u8, 49u8, 242u8, 239u8, 248u8, 202u8, 251u8, 226u8, 51u8, - 195u8, 114u8, 157u8, 129u8, 3u8, 19u8, 0u8, 160u8, 157u8, 147u8, 217u8, 222u8, 163u8, - 163u8, 229u8, 184u8, 93u8, 135u8, 53u8, 34u8, 177u8, 56u8, 124u8, 96u8, 135u8, 161u8, - 126u8, 109u8, 200u8, 240u8, 156u8, 26u8, 34u8, 89u8, 14u8, 173u8, 201u8, 131u8, 26u8, 17u8, - 107u8, 164u8, 111u8, 82u8, 81u8, 170u8, 3u8, 95u8, 175u8, 85u8, 41u8, 112u8, 126u8, 139u8, - 183u8, 214u8, 63u8, 83u8, 241u8, 223u8, 117u8, 124u8, 104u8, 1u8, 76u8, 42u8, 172u8, 93u8, - 89u8, 98u8, 16u8, 164u8, 65u8, 217u8, 126u8, 17u8, 4u8, 25u8, 147u8, 29u8, 145u8, 25u8, - 178u8, 205u8, 187u8, 245u8, 24u8, 187u8, 106u8, 129u8, 92u8, 19u8, 175u8, 157u8, 35u8, - 209u8, 19u8, 13u8, 34u8, 163u8, 82u8, 25u8, + 40u8, 150u8, 246u8, 24u8, 45u8, 65u8, 115u8, 247u8, 236u8, 172u8, 212u8, 166u8, 156u8, + 162u8, 177u8, 45u8, 101u8, 131u8, 68u8, 40u8, 243u8, 37u8, 192u8, 144u8, 228u8, 127u8, + 197u8, 158u8, 129u8, 197u8, 168u8, 139u8, 13u8, 60u8, 131u8, 176u8, 128u8, 144u8, 254u8, + 64u8, 152u8, 11u8, 101u8, 122u8, 50u8, 30u8, 43u8, 8u8, 169u8, 246u8, 45u8, 61u8, 202u8, + 98u8, 14u8, 167u8, 116u8, 248u8, 184u8, 53u8, 166u8, 174u8, 50u8, 209u8, 7u8, 140u8, 86u8, + 75u8, 213u8, 217u8, 31u8, 228u8, 157u8, 41u8, 58u8, 239u8, 65u8, 51u8, 5u8, 23u8, 121u8, + 1u8, 26u8, 207u8, 217u8, 68u8, 105u8, 137u8, 108u8, 107u8, 205u8, 61u8, 138u8, 43u8, 26u8, + 144u8, 15u8, 239u8, 138u8, 134u8, 129u8, 8u8, 178u8, 132u8, 163u8, 89u8, 130u8, 126u8, + 70u8, 218u8, 212u8, 209u8, 64u8, 109u8, 136u8, 149u8, 56u8, 156u8, 223u8, 53u8, 101u8, + 186u8, 14u8, 56u8, 49u8, 195u8, 146u8, 155u8, ], vk_delta_g2: [ - 30u8, 38u8, 169u8, 252u8, 228u8, 121u8, 115u8, 47u8, 9u8, 222u8, 132u8, 156u8, 150u8, 78u8, - 155u8, 242u8, 109u8, 137u8, 142u8, 125u8, 42u8, 244u8, 105u8, 33u8, 246u8, 122u8, 206u8, - 88u8, 76u8, 254u8, 71u8, 94u8, 25u8, 243u8, 217u8, 74u8, 16u8, 132u8, 43u8, 28u8, 187u8, - 70u8, 180u8, 195u8, 25u8, 132u8, 249u8, 147u8, 6u8, 138u8, 218u8, 3u8, 177u8, 119u8, 98u8, - 124u8, 219u8, 34u8, 122u8, 115u8, 59u8, 39u8, 246u8, 164u8, 33u8, 254u8, 212u8, 37u8, - 118u8, 103u8, 177u8, 174u8, 223u8, 93u8, 178u8, 22u8, 232u8, 130u8, 161u8, 83u8, 38u8, - 146u8, 158u8, 154u8, 50u8, 148u8, 184u8, 67u8, 231u8, 221u8, 64u8, 53u8, 143u8, 96u8, - 252u8, 176u8, 2u8, 211u8, 35u8, 201u8, 254u8, 108u8, 254u8, 37u8, 154u8, 225u8, 225u8, - 126u8, 197u8, 185u8, 112u8, 89u8, 226u8, 47u8, 107u8, 187u8, 152u8, 186u8, 86u8, 132u8, - 23u8, 116u8, 58u8, 66u8, 118u8, 126u8, 171u8, 75u8, + 45u8, 48u8, 201u8, 55u8, 219u8, 25u8, 208u8, 203u8, 24u8, 103u8, 220u8, 187u8, 215u8, + 210u8, 3u8, 73u8, 46u8, 76u8, 185u8, 95u8, 123u8, 188u8, 45u8, 183u8, 21u8, 107u8, 240u8, + 186u8, 210u8, 205u8, 106u8, 119u8, 36u8, 4u8, 64u8, 236u8, 225u8, 183u8, 42u8, 253u8, 37u8, + 210u8, 163u8, 239u8, 203u8, 236u8, 115u8, 39u8, 187u8, 252u8, 245u8, 68u8, 58u8, 92u8, + 35u8, 64u8, 173u8, 179u8, 197u8, 190u8, 60u8, 6u8, 233u8, 80u8, 41u8, 59u8, 118u8, 142u8, + 52u8, 177u8, 24u8, 207u8, 110u8, 207u8, 203u8, 117u8, 41u8, 38u8, 71u8, 201u8, 103u8, 55u8, + 122u8, 39u8, 101u8, 100u8, 240u8, 127u8, 44u8, 117u8, 27u8, 76u8, 207u8, 77u8, 219u8, + 178u8, 45u8, 178u8, 143u8, 148u8, 192u8, 125u8, 116u8, 33u8, 241u8, 186u8, 199u8, 6u8, 7u8, + 197u8, 31u8, 83u8, 12u8, 120u8, 208u8, 17u8, 36u8, 67u8, 127u8, 222u8, 166u8, 217u8, 18u8, + 200u8, 145u8, 14u8, 157u8, 165u8, ], vk_ic: &[ [ - 43u8, 168u8, 24u8, 117u8, 123u8, 177u8, 38u8, 37u8, 254u8, 246u8, 65u8, 54u8, 232u8, - 78u8, 249u8, 170u8, 62u8, 211u8, 7u8, 33u8, 44u8, 73u8, 132u8, 176u8, 76u8, 1u8, 16u8, - 138u8, 38u8, 107u8, 133u8, 146u8, 46u8, 98u8, 187u8, 34u8, 44u8, 105u8, 136u8, 2u8, - 15u8, 114u8, 14u8, 213u8, 101u8, 35u8, 233u8, 149u8, 66u8, 152u8, 98u8, 13u8, 215u8, - 217u8, 99u8, 168u8, 137u8, 47u8, 64u8, 220u8, 131u8, 50u8, 112u8, 135u8, + 41u8, 38u8, 162u8, 77u8, 186u8, 179u8, 89u8, 12u8, 28u8, 36u8, 59u8, 108u8, 242u8, + 54u8, 61u8, 129u8, 19u8, 233u8, 100u8, 227u8, 96u8, 120u8, 172u8, 95u8, 7u8, 113u8, + 12u8, 131u8, 228u8, 102u8, 226u8, 31u8, 27u8, 24u8, 63u8, 10u8, 13u8, 109u8, 138u8, + 188u8, 199u8, 235u8, 92u8, 247u8, 250u8, 127u8, 113u8, 129u8, 242u8, 80u8, 129u8, + 141u8, 208u8, 223u8, 80u8, 83u8, 134u8, 166u8, 77u8, 51u8, 177u8, 12u8, 142u8, 47u8, ], [ - 9u8, 35u8, 223u8, 24u8, 86u8, 206u8, 147u8, 206u8, 121u8, 18u8, 216u8, 34u8, 124u8, - 252u8, 42u8, 179u8, 27u8, 129u8, 46u8, 143u8, 178u8, 165u8, 90u8, 197u8, 162u8, 232u8, - 155u8, 18u8, 81u8, 158u8, 193u8, 217u8, 32u8, 224u8, 84u8, 254u8, 98u8, 217u8, 16u8, - 72u8, 24u8, 176u8, 169u8, 112u8, 75u8, 138u8, 159u8, 123u8, 112u8, 32u8, 18u8, 214u8, - 16u8, 51u8, 227u8, 244u8, 178u8, 166u8, 205u8, 126u8, 89u8, 43u8, 26u8, 172u8, + 35u8, 99u8, 217u8, 53u8, 54u8, 184u8, 68u8, 227u8, 251u8, 100u8, 90u8, 29u8, 112u8, + 165u8, 129u8, 148u8, 15u8, 25u8, 150u8, 172u8, 202u8, 235u8, 9u8, 210u8, 108u8, 134u8, + 85u8, 124u8, 194u8, 18u8, 253u8, 191u8, 17u8, 9u8, 156u8, 101u8, 10u8, 88u8, 169u8, + 43u8, 199u8, 36u8, 148u8, 48u8, 144u8, 40u8, 249u8, 217u8, 130u8, 59u8, 58u8, 109u8, + 111u8, 183u8, 141u8, 118u8, 14u8, 18u8, 164u8, 246u8, 194u8, 24u8, 14u8, 101u8, ], ], }; diff --git a/circuit-lib/verifier/src/verifying_keys/update_26_10.rs b/circuit-lib/verifier/src/verifying_keys/update_26_10.rs index a9640d8ab0..585e908c16 100644 --- a/circuit-lib/verifier/src/verifying_keys/update_26_10.rs +++ b/circuit-lib/verifier/src/verifying_keys/update_26_10.rs @@ -4,62 +4,62 @@ use groth16_solana::groth16::Groth16Verifyingkey; pub const VERIFYINGKEY: Groth16Verifyingkey = Groth16Verifyingkey { nr_pubinputs: 1usize, vk_alpha_g1: [ - 37u8, 95u8, 120u8, 77u8, 170u8, 127u8, 181u8, 88u8, 21u8, 225u8, 92u8, 35u8, 147u8, 113u8, - 104u8, 202u8, 54u8, 106u8, 204u8, 135u8, 58u8, 93u8, 73u8, 31u8, 45u8, 25u8, 240u8, 84u8, - 4u8, 162u8, 145u8, 92u8, 5u8, 26u8, 62u8, 165u8, 37u8, 223u8, 253u8, 5u8, 43u8, 23u8, - 146u8, 114u8, 220u8, 253u8, 77u8, 246u8, 52u8, 67u8, 185u8, 3u8, 16u8, 172u8, 59u8, 221u8, - 45u8, 151u8, 233u8, 243u8, 13u8, 14u8, 31u8, 35u8, + 39u8, 202u8, 216u8, 250u8, 168u8, 162u8, 92u8, 143u8, 151u8, 248u8, 139u8, 97u8, 213u8, + 18u8, 35u8, 88u8, 17u8, 254u8, 102u8, 184u8, 226u8, 60u8, 78u8, 138u8, 155u8, 85u8, 240u8, + 27u8, 135u8, 16u8, 97u8, 19u8, 20u8, 223u8, 14u8, 135u8, 195u8, 57u8, 110u8, 36u8, 123u8, + 0u8, 94u8, 242u8, 135u8, 144u8, 194u8, 204u8, 106u8, 250u8, 129u8, 41u8, 160u8, 189u8, + 86u8, 181u8, 102u8, 134u8, 16u8, 184u8, 194u8, 171u8, 154u8, 183u8, ], vk_beta_g2: [ - 17u8, 174u8, 185u8, 251u8, 53u8, 230u8, 15u8, 205u8, 68u8, 28u8, 230u8, 10u8, 20u8, 75u8, - 76u8, 25u8, 144u8, 40u8, 203u8, 28u8, 59u8, 196u8, 179u8, 226u8, 40u8, 17u8, 16u8, 93u8, - 154u8, 171u8, 130u8, 58u8, 21u8, 159u8, 161u8, 86u8, 88u8, 251u8, 195u8, 221u8, 148u8, - 202u8, 136u8, 175u8, 33u8, 193u8, 207u8, 250u8, 132u8, 125u8, 136u8, 155u8, 114u8, 129u8, - 145u8, 66u8, 124u8, 129u8, 63u8, 92u8, 129u8, 219u8, 246u8, 242u8, 10u8, 232u8, 189u8, - 107u8, 36u8, 89u8, 153u8, 33u8, 55u8, 140u8, 146u8, 230u8, 140u8, 79u8, 205u8, 100u8, 12u8, - 27u8, 161u8, 236u8, 242u8, 74u8, 105u8, 57u8, 164u8, 186u8, 218u8, 34u8, 103u8, 149u8, - 174u8, 130u8, 36u8, 3u8, 146u8, 98u8, 109u8, 146u8, 167u8, 154u8, 231u8, 236u8, 13u8, 78u8, - 73u8, 243u8, 74u8, 72u8, 222u8, 31u8, 21u8, 251u8, 242u8, 20u8, 196u8, 180u8, 205u8, 163u8, - 140u8, 99u8, 12u8, 187u8, 35u8, 51u8, + 7u8, 39u8, 250u8, 57u8, 86u8, 195u8, 251u8, 48u8, 190u8, 212u8, 87u8, 133u8, 212u8, 241u8, + 244u8, 136u8, 129u8, 3u8, 254u8, 171u8, 94u8, 51u8, 63u8, 194u8, 172u8, 133u8, 239u8, + 153u8, 109u8, 243u8, 107u8, 8u8, 27u8, 98u8, 159u8, 187u8, 173u8, 253u8, 185u8, 194u8, + 62u8, 126u8, 28u8, 209u8, 201u8, 32u8, 39u8, 180u8, 126u8, 253u8, 132u8, 159u8, 209u8, + 22u8, 226u8, 249u8, 31u8, 3u8, 221u8, 89u8, 85u8, 241u8, 153u8, 165u8, 35u8, 59u8, 251u8, + 69u8, 234u8, 243u8, 130u8, 121u8, 217u8, 162u8, 33u8, 195u8, 47u8, 215u8, 211u8, 126u8, + 252u8, 196u8, 243u8, 52u8, 151u8, 160u8, 188u8, 36u8, 65u8, 135u8, 83u8, 141u8, 233u8, + 77u8, 75u8, 60u8, 8u8, 131u8, 78u8, 154u8, 5u8, 106u8, 52u8, 244u8, 128u8, 43u8, 97u8, + 155u8, 9u8, 32u8, 118u8, 19u8, 26u8, 166u8, 30u8, 143u8, 208u8, 55u8, 103u8, 30u8, 106u8, + 8u8, 3u8, 54u8, 105u8, 128u8, 119u8, 203u8, ], vk_gamme_g2: [ - 5u8, 99u8, 31u8, 216u8, 91u8, 88u8, 3u8, 17u8, 205u8, 54u8, 19u8, 52u8, 233u8, 60u8, 225u8, - 250u8, 130u8, 118u8, 192u8, 118u8, 69u8, 68u8, 193u8, 64u8, 215u8, 240u8, 51u8, 137u8, - 190u8, 14u8, 51u8, 81u8, 35u8, 212u8, 223u8, 60u8, 236u8, 9u8, 214u8, 64u8, 250u8, 88u8, - 73u8, 77u8, 208u8, 18u8, 245u8, 147u8, 99u8, 63u8, 193u8, 181u8, 52u8, 40u8, 103u8, 235u8, - 185u8, 185u8, 211u8, 225u8, 92u8, 119u8, 221u8, 103u8, 28u8, 251u8, 164u8, 155u8, 24u8, - 208u8, 236u8, 246u8, 53u8, 24u8, 230u8, 41u8, 135u8, 236u8, 159u8, 219u8, 5u8, 117u8, - 248u8, 209u8, 109u8, 42u8, 139u8, 226u8, 185u8, 230u8, 142u8, 122u8, 138u8, 187u8, 236u8, - 29u8, 37u8, 80u8, 221u8, 191u8, 167u8, 151u8, 232u8, 63u8, 70u8, 32u8, 81u8, 252u8, 77u8, - 247u8, 236u8, 78u8, 34u8, 26u8, 71u8, 222u8, 57u8, 151u8, 109u8, 6u8, 197u8, 64u8, 8u8, - 85u8, 95u8, 66u8, 64u8, 79u8, + 36u8, 98u8, 143u8, 236u8, 188u8, 237u8, 235u8, 34u8, 204u8, 177u8, 101u8, 18u8, 194u8, + 47u8, 56u8, 16u8, 214u8, 221u8, 185u8, 69u8, 135u8, 193u8, 229u8, 157u8, 193u8, 123u8, + 88u8, 150u8, 162u8, 145u8, 187u8, 129u8, 38u8, 20u8, 233u8, 4u8, 137u8, 24u8, 187u8, 24u8, + 41u8, 122u8, 117u8, 130u8, 76u8, 175u8, 38u8, 225u8, 210u8, 52u8, 8u8, 68u8, 21u8, 86u8, + 116u8, 245u8, 63u8, 126u8, 243u8, 182u8, 62u8, 37u8, 82u8, 125u8, 16u8, 155u8, 5u8, 212u8, + 42u8, 22u8, 220u8, 69u8, 203u8, 1u8, 210u8, 236u8, 24u8, 162u8, 255u8, 208u8, 26u8, 206u8, + 229u8, 32u8, 210u8, 134u8, 22u8, 163u8, 208u8, 51u8, 123u8, 185u8, 56u8, 148u8, 40u8, + 236u8, 47u8, 221u8, 29u8, 168u8, 225u8, 82u8, 241u8, 124u8, 15u8, 40u8, 190u8, 51u8, 204u8, + 37u8, 103u8, 182u8, 97u8, 10u8, 246u8, 217u8, 66u8, 129u8, 184u8, 92u8, 119u8, 222u8, + 113u8, 202u8, 19u8, 193u8, 16u8, 26u8, ], vk_delta_g2: [ - 28u8, 196u8, 236u8, 151u8, 250u8, 80u8, 250u8, 216u8, 0u8, 76u8, 186u8, 46u8, 1u8, 138u8, - 173u8, 27u8, 84u8, 191u8, 138u8, 71u8, 129u8, 103u8, 188u8, 235u8, 181u8, 206u8, 94u8, - 253u8, 229u8, 76u8, 70u8, 34u8, 33u8, 201u8, 44u8, 41u8, 87u8, 53u8, 246u8, 210u8, 155u8, - 152u8, 10u8, 116u8, 15u8, 116u8, 155u8, 129u8, 82u8, 97u8, 34u8, 216u8, 191u8, 0u8, 157u8, - 89u8, 41u8, 154u8, 35u8, 224u8, 68u8, 232u8, 14u8, 128u8, 46u8, 119u8, 33u8, 9u8, 241u8, - 169u8, 215u8, 12u8, 146u8, 40u8, 249u8, 207u8, 135u8, 69u8, 220u8, 227u8, 142u8, 74u8, 8u8, - 151u8, 206u8, 128u8, 73u8, 79u8, 86u8, 35u8, 251u8, 72u8, 8u8, 40u8, 210u8, 117u8, 26u8, - 79u8, 93u8, 210u8, 172u8, 161u8, 123u8, 192u8, 175u8, 203u8, 217u8, 60u8, 155u8, 28u8, - 193u8, 154u8, 76u8, 21u8, 36u8, 43u8, 199u8, 27u8, 80u8, 110u8, 90u8, 234u8, 16u8, 87u8, - 61u8, 141u8, 159u8, 72u8, + 29u8, 226u8, 1u8, 218u8, 238u8, 59u8, 188u8, 194u8, 23u8, 162u8, 252u8, 122u8, 220u8, 36u8, + 39u8, 147u8, 184u8, 221u8, 252u8, 221u8, 110u8, 61u8, 151u8, 70u8, 220u8, 7u8, 147u8, 64u8, + 153u8, 66u8, 37u8, 216u8, 27u8, 251u8, 60u8, 202u8, 14u8, 159u8, 120u8, 93u8, 173u8, 103u8, + 36u8, 201u8, 111u8, 120u8, 26u8, 59u8, 148u8, 243u8, 235u8, 41u8, 109u8, 101u8, 205u8, 4u8, + 177u8, 205u8, 68u8, 31u8, 211u8, 65u8, 252u8, 22u8, 4u8, 16u8, 253u8, 5u8, 133u8, 120u8, + 149u8, 80u8, 52u8, 250u8, 49u8, 162u8, 148u8, 116u8, 212u8, 38u8, 57u8, 156u8, 179u8, + 100u8, 46u8, 119u8, 73u8, 126u8, 103u8, 150u8, 69u8, 4u8, 167u8, 212u8, 82u8, 240u8, 22u8, + 237u8, 167u8, 104u8, 104u8, 148u8, 219u8, 94u8, 62u8, 137u8, 148u8, 133u8, 79u8, 249u8, + 102u8, 41u8, 239u8, 186u8, 88u8, 118u8, 82u8, 1u8, 211u8, 68u8, 10u8, 42u8, 255u8, 152u8, + 166u8, 128u8, 213u8, 76u8, ], vk_ic: &[ [ - 20u8, 174u8, 26u8, 7u8, 62u8, 104u8, 13u8, 224u8, 155u8, 97u8, 216u8, 88u8, 118u8, - 65u8, 196u8, 98u8, 112u8, 97u8, 53u8, 182u8, 201u8, 63u8, 234u8, 214u8, 147u8, 183u8, - 172u8, 86u8, 96u8, 188u8, 250u8, 50u8, 16u8, 187u8, 168u8, 145u8, 118u8, 158u8, 137u8, - 80u8, 168u8, 24u8, 105u8, 224u8, 9u8, 111u8, 98u8, 186u8, 144u8, 60u8, 190u8, 250u8, - 137u8, 228u8, 147u8, 43u8, 26u8, 220u8, 74u8, 15u8, 219u8, 233u8, 6u8, 170u8, + 16u8, 107u8, 66u8, 45u8, 76u8, 11u8, 47u8, 141u8, 181u8, 236u8, 247u8, 247u8, 206u8, + 83u8, 127u8, 80u8, 184u8, 197u8, 122u8, 216u8, 126u8, 78u8, 138u8, 200u8, 174u8, 201u8, + 44u8, 115u8, 123u8, 204u8, 188u8, 90u8, 9u8, 8u8, 45u8, 102u8, 239u8, 142u8, 251u8, + 41u8, 139u8, 143u8, 127u8, 232u8, 228u8, 169u8, 166u8, 118u8, 185u8, 154u8, 220u8, 2u8, + 69u8, 138u8, 32u8, 132u8, 133u8, 52u8, 186u8, 171u8, 11u8, 184u8, 136u8, 145u8, ], [ - 18u8, 215u8, 175u8, 247u8, 202u8, 197u8, 117u8, 100u8, 230u8, 155u8, 217u8, 124u8, - 233u8, 134u8, 93u8, 141u8, 178u8, 18u8, 74u8, 212u8, 239u8, 169u8, 193u8, 4u8, 82u8, - 184u8, 117u8, 76u8, 254u8, 81u8, 50u8, 216u8, 28u8, 43u8, 149u8, 15u8, 208u8, 245u8, - 17u8, 7u8, 120u8, 184u8, 176u8, 155u8, 166u8, 71u8, 108u8, 190u8, 169u8, 173u8, 47u8, - 14u8, 227u8, 152u8, 248u8, 211u8, 152u8, 61u8, 247u8, 197u8, 77u8, 122u8, 10u8, 121u8, + 26u8, 58u8, 124u8, 107u8, 195u8, 159u8, 39u8, 221u8, 52u8, 249u8, 19u8, 186u8, 76u8, + 136u8, 17u8, 244u8, 129u8, 11u8, 42u8, 84u8, 164u8, 29u8, 9u8, 149u8, 83u8, 159u8, + 59u8, 195u8, 148u8, 94u8, 95u8, 233u8, 37u8, 236u8, 253u8, 21u8, 130u8, 26u8, 78u8, + 3u8, 227u8, 77u8, 96u8, 232u8, 53u8, 55u8, 96u8, 221u8, 54u8, 49u8, 42u8, 249u8, 16u8, + 57u8, 115u8, 150u8, 1u8, 72u8, 5u8, 95u8, 211u8, 174u8, 29u8, 13u8, ], ], }; diff --git a/circuit-lib/verifier/src/verifying_keys/update_26_100.rs b/circuit-lib/verifier/src/verifying_keys/update_26_100.rs index 449682a2d3..edaef27de0 100644 --- a/circuit-lib/verifier/src/verifying_keys/update_26_100.rs +++ b/circuit-lib/verifier/src/verifying_keys/update_26_100.rs @@ -4,62 +4,62 @@ use groth16_solana::groth16::Groth16Verifyingkey; pub const VERIFYINGKEY: Groth16Verifyingkey = Groth16Verifyingkey { nr_pubinputs: 1usize, vk_alpha_g1: [ - 47u8, 191u8, 53u8, 53u8, 157u8, 210u8, 83u8, 62u8, 201u8, 179u8, 220u8, 113u8, 172u8, - 154u8, 221u8, 205u8, 153u8, 159u8, 102u8, 186u8, 17u8, 78u8, 63u8, 36u8, 97u8, 7u8, 139u8, - 28u8, 142u8, 115u8, 183u8, 97u8, 5u8, 112u8, 182u8, 72u8, 180u8, 85u8, 85u8, 92u8, 162u8, - 127u8, 201u8, 245u8, 134u8, 162u8, 181u8, 145u8, 79u8, 88u8, 216u8, 171u8, 103u8, 37u8, - 232u8, 236u8, 14u8, 119u8, 154u8, 138u8, 197u8, 167u8, 8u8, 144u8, + 9u8, 223u8, 2u8, 191u8, 44u8, 190u8, 226u8, 111u8, 233u8, 212u8, 125u8, 247u8, 155u8, + 104u8, 97u8, 249u8, 184u8, 14u8, 36u8, 25u8, 199u8, 118u8, 121u8, 174u8, 239u8, 209u8, + 228u8, 118u8, 94u8, 52u8, 71u8, 6u8, 15u8, 110u8, 210u8, 47u8, 68u8, 21u8, 31u8, 59u8, + 236u8, 171u8, 21u8, 125u8, 251u8, 187u8, 12u8, 152u8, 227u8, 81u8, 24u8, 109u8, 131u8, + 137u8, 109u8, 195u8, 227u8, 23u8, 201u8, 67u8, 4u8, 134u8, 87u8, 10u8, ], vk_beta_g2: [ - 8u8, 134u8, 139u8, 204u8, 194u8, 220u8, 59u8, 13u8, 223u8, 18u8, 22u8, 31u8, 239u8, 178u8, - 253u8, 212u8, 212u8, 29u8, 220u8, 1u8, 253u8, 207u8, 193u8, 183u8, 132u8, 108u8, 84u8, - 97u8, 190u8, 204u8, 28u8, 78u8, 7u8, 184u8, 6u8, 217u8, 47u8, 200u8, 180u8, 123u8, 153u8, - 255u8, 39u8, 236u8, 19u8, 73u8, 77u8, 5u8, 208u8, 200u8, 106u8, 66u8, 105u8, 52u8, 29u8, - 76u8, 53u8, 43u8, 129u8, 232u8, 234u8, 2u8, 186u8, 202u8, 34u8, 35u8, 93u8, 197u8, 236u8, - 181u8, 168u8, 144u8, 55u8, 36u8, 131u8, 229u8, 59u8, 142u8, 90u8, 119u8, 10u8, 198u8, - 127u8, 97u8, 112u8, 168u8, 31u8, 237u8, 150u8, 192u8, 247u8, 220u8, 59u8, 33u8, 155u8, - 192u8, 31u8, 199u8, 159u8, 140u8, 34u8, 233u8, 117u8, 87u8, 215u8, 83u8, 145u8, 199u8, - 80u8, 18u8, 6u8, 18u8, 205u8, 161u8, 206u8, 63u8, 41u8, 37u8, 90u8, 166u8, 93u8, 17u8, - 237u8, 247u8, 247u8, 105u8, 191u8, 152u8, + 30u8, 228u8, 231u8, 32u8, 236u8, 31u8, 232u8, 218u8, 226u8, 3u8, 39u8, 123u8, 218u8, 142u8, + 98u8, 84u8, 251u8, 12u8, 142u8, 56u8, 103u8, 109u8, 92u8, 162u8, 55u8, 88u8, 240u8, 190u8, + 81u8, 57u8, 242u8, 146u8, 7u8, 176u8, 173u8, 68u8, 78u8, 178u8, 61u8, 25u8, 162u8, 175u8, + 70u8, 120u8, 23u8, 117u8, 170u8, 66u8, 133u8, 179u8, 208u8, 34u8, 75u8, 33u8, 85u8, 227u8, + 197u8, 250u8, 186u8, 66u8, 255u8, 163u8, 213u8, 178u8, 44u8, 243u8, 46u8, 63u8, 177u8, + 42u8, 18u8, 1u8, 40u8, 146u8, 134u8, 182u8, 49u8, 184u8, 187u8, 139u8, 120u8, 81u8, 193u8, + 94u8, 145u8, 39u8, 36u8, 69u8, 56u8, 188u8, 184u8, 85u8, 149u8, 223u8, 55u8, 46u8, 47u8, + 166u8, 168u8, 85u8, 145u8, 78u8, 238u8, 18u8, 55u8, 33u8, 53u8, 135u8, 84u8, 89u8, 28u8, + 70u8, 111u8, 108u8, 108u8, 207u8, 30u8, 232u8, 99u8, 186u8, 221u8, 69u8, 168u8, 78u8, + 148u8, 150u8, 21u8, 138u8, ], vk_gamme_g2: [ - 5u8, 108u8, 250u8, 161u8, 12u8, 125u8, 78u8, 241u8, 119u8, 182u8, 155u8, 131u8, 13u8, - 168u8, 231u8, 101u8, 237u8, 110u8, 167u8, 8u8, 104u8, 182u8, 142u8, 218u8, 194u8, 246u8, - 201u8, 208u8, 202u8, 56u8, 182u8, 204u8, 41u8, 50u8, 123u8, 165u8, 0u8, 11u8, 114u8, 4u8, - 126u8, 76u8, 144u8, 180u8, 177u8, 119u8, 61u8, 117u8, 133u8, 233u8, 221u8, 20u8, 213u8, - 38u8, 245u8, 100u8, 142u8, 89u8, 126u8, 122u8, 209u8, 247u8, 171u8, 147u8, 45u8, 175u8, - 176u8, 71u8, 38u8, 16u8, 186u8, 74u8, 228u8, 116u8, 174u8, 139u8, 138u8, 133u8, 158u8, - 174u8, 193u8, 237u8, 94u8, 108u8, 153u8, 157u8, 178u8, 166u8, 139u8, 5u8, 158u8, 192u8, - 1u8, 158u8, 23u8, 182u8, 0u8, 249u8, 30u8, 133u8, 23u8, 82u8, 231u8, 177u8, 42u8, 159u8, - 32u8, 16u8, 6u8, 138u8, 97u8, 239u8, 149u8, 255u8, 218u8, 120u8, 82u8, 42u8, 196u8, 20u8, - 222u8, 82u8, 223u8, 14u8, 21u8, 170u8, 243u8, 145u8, + 45u8, 139u8, 71u8, 203u8, 98u8, 95u8, 155u8, 156u8, 164u8, 98u8, 38u8, 66u8, 161u8, 203u8, + 203u8, 147u8, 102u8, 89u8, 128u8, 180u8, 247u8, 168u8, 221u8, 87u8, 12u8, 77u8, 221u8, + 44u8, 31u8, 183u8, 140u8, 132u8, 22u8, 64u8, 230u8, 231u8, 86u8, 132u8, 67u8, 131u8, 84u8, + 140u8, 128u8, 229u8, 69u8, 121u8, 159u8, 128u8, 75u8, 228u8, 239u8, 193u8, 237u8, 56u8, + 239u8, 20u8, 171u8, 59u8, 215u8, 106u8, 129u8, 237u8, 26u8, 165u8, 39u8, 118u8, 64u8, + 132u8, 127u8, 96u8, 39u8, 94u8, 224u8, 59u8, 143u8, 225u8, 49u8, 146u8, 186u8, 198u8, + 245u8, 71u8, 217u8, 129u8, 6u8, 8u8, 98u8, 99u8, 106u8, 248u8, 12u8, 25u8, 187u8, 13u8, + 36u8, 167u8, 32u8, 34u8, 183u8, 4u8, 225u8, 124u8, 194u8, 45u8, 234u8, 92u8, 202u8, 33u8, + 178u8, 254u8, 199u8, 186u8, 23u8, 14u8, 193u8, 251u8, 11u8, 92u8, 147u8, 189u8, 125u8, + 173u8, 124u8, 160u8, 188u8, 17u8, 197u8, 158u8, ], vk_delta_g2: [ - 1u8, 13u8, 110u8, 5u8, 78u8, 32u8, 100u8, 9u8, 227u8, 34u8, 36u8, 111u8, 78u8, 149u8, - 214u8, 235u8, 163u8, 153u8, 140u8, 48u8, 193u8, 34u8, 143u8, 196u8, 233u8, 90u8, 175u8, - 25u8, 2u8, 222u8, 112u8, 59u8, 29u8, 144u8, 36u8, 235u8, 186u8, 4u8, 242u8, 68u8, 222u8, - 5u8, 98u8, 186u8, 180u8, 80u8, 185u8, 93u8, 183u8, 16u8, 106u8, 177u8, 36u8, 49u8, 177u8, - 26u8, 222u8, 196u8, 233u8, 159u8, 76u8, 82u8, 177u8, 27u8, 41u8, 126u8, 71u8, 229u8, 29u8, - 12u8, 39u8, 75u8, 54u8, 76u8, 98u8, 41u8, 233u8, 106u8, 162u8, 210u8, 200u8, 159u8, 88u8, - 144u8, 70u8, 168u8, 206u8, 114u8, 158u8, 119u8, 212u8, 202u8, 81u8, 196u8, 235u8, 131u8, - 27u8, 151u8, 191u8, 236u8, 178u8, 76u8, 0u8, 20u8, 31u8, 253u8, 21u8, 192u8, 42u8, 47u8, - 235u8, 54u8, 111u8, 141u8, 45u8, 226u8, 33u8, 125u8, 210u8, 18u8, 14u8, 176u8, 163u8, - 117u8, 84u8, 247u8, 89u8, 93u8, + 3u8, 162u8, 121u8, 116u8, 123u8, 137u8, 139u8, 220u8, 157u8, 104u8, 238u8, 58u8, 175u8, + 53u8, 239u8, 23u8, 132u8, 235u8, 98u8, 3u8, 166u8, 144u8, 214u8, 144u8, 242u8, 217u8, 57u8, + 191u8, 195u8, 152u8, 184u8, 51u8, 15u8, 2u8, 19u8, 4u8, 11u8, 60u8, 233u8, 13u8, 6u8, + 135u8, 150u8, 54u8, 61u8, 120u8, 26u8, 119u8, 89u8, 45u8, 183u8, 97u8, 252u8, 232u8, 199u8, + 18u8, 16u8, 111u8, 61u8, 76u8, 59u8, 15u8, 182u8, 217u8, 1u8, 169u8, 46u8, 55u8, 28u8, + 189u8, 218u8, 13u8, 179u8, 210u8, 37u8, 208u8, 76u8, 52u8, 141u8, 187u8, 89u8, 139u8, + 177u8, 135u8, 237u8, 245u8, 126u8, 17u8, 39u8, 90u8, 236u8, 120u8, 169u8, 98u8, 163u8, + 147u8, 36u8, 94u8, 84u8, 71u8, 137u8, 207u8, 60u8, 209u8, 221u8, 55u8, 48u8, 141u8, 253u8, + 84u8, 231u8, 25u8, 236u8, 213u8, 7u8, 86u8, 28u8, 42u8, 67u8, 230u8, 121u8, 118u8, 29u8, + 176u8, 35u8, 187u8, 215u8, 119u8, ], vk_ic: &[ [ - 15u8, 236u8, 176u8, 159u8, 18u8, 160u8, 106u8, 147u8, 10u8, 41u8, 244u8, 25u8, 91u8, - 197u8, 46u8, 185u8, 64u8, 246u8, 4u8, 180u8, 237u8, 166u8, 55u8, 172u8, 52u8, 131u8, - 87u8, 105u8, 108u8, 131u8, 98u8, 151u8, 7u8, 212u8, 73u8, 0u8, 74u8, 228u8, 22u8, 14u8, - 167u8, 185u8, 168u8, 140u8, 43u8, 142u8, 44u8, 132u8, 137u8, 17u8, 152u8, 185u8, 211u8, - 109u8, 85u8, 141u8, 102u8, 113u8, 248u8, 209u8, 90u8, 186u8, 114u8, 136u8, + 10u8, 25u8, 144u8, 180u8, 139u8, 46u8, 191u8, 118u8, 117u8, 128u8, 247u8, 117u8, 224u8, + 126u8, 115u8, 153u8, 97u8, 128u8, 77u8, 203u8, 146u8, 98u8, 12u8, 125u8, 138u8, 173u8, + 132u8, 36u8, 45u8, 25u8, 0u8, 61u8, 22u8, 233u8, 239u8, 148u8, 228u8, 167u8, 243u8, + 105u8, 47u8, 212u8, 78u8, 133u8, 54u8, 228u8, 155u8, 230u8, 95u8, 35u8, 62u8, 119u8, + 2u8, 15u8, 119u8, 49u8, 230u8, 148u8, 245u8, 94u8, 252u8, 156u8, 161u8, 42u8, ], [ - 37u8, 43u8, 212u8, 72u8, 206u8, 97u8, 21u8, 216u8, 231u8, 136u8, 64u8, 112u8, 44u8, - 0u8, 182u8, 99u8, 3u8, 67u8, 145u8, 238u8, 15u8, 142u8, 180u8, 103u8, 190u8, 8u8, - 244u8, 142u8, 217u8, 171u8, 189u8, 179u8, 18u8, 87u8, 169u8, 171u8, 132u8, 0u8, 246u8, - 164u8, 172u8, 105u8, 172u8, 22u8, 184u8, 215u8, 17u8, 209u8, 199u8, 74u8, 136u8, 134u8, - 137u8, 54u8, 106u8, 185u8, 105u8, 53u8, 112u8, 179u8, 246u8, 114u8, 6u8, 91u8, + 44u8, 178u8, 110u8, 147u8, 77u8, 70u8, 129u8, 203u8, 248u8, 123u8, 203u8, 203u8, 146u8, + 71u8, 218u8, 123u8, 194u8, 144u8, 185u8, 73u8, 62u8, 157u8, 160u8, 87u8, 14u8, 165u8, + 247u8, 35u8, 190u8, 112u8, 37u8, 3u8, 25u8, 119u8, 54u8, 15u8, 194u8, 39u8, 58u8, + 108u8, 37u8, 177u8, 168u8, 137u8, 92u8, 190u8, 125u8, 71u8, 143u8, 166u8, 203u8, 155u8, + 45u8, 13u8, 158u8, 154u8, 12u8, 161u8, 243u8, 99u8, 147u8, 46u8, 219u8, 231u8, ], ], }; diff --git a/circuit-lib/verifier/src/verifying_keys/update_26_1000.rs b/circuit-lib/verifier/src/verifying_keys/update_26_1000.rs index 38f518e165..d422f41f52 100644 --- a/circuit-lib/verifier/src/verifying_keys/update_26_1000.rs +++ b/circuit-lib/verifier/src/verifying_keys/update_26_1000.rs @@ -4,62 +4,62 @@ use groth16_solana::groth16::Groth16Verifyingkey; pub const VERIFYINGKEY: Groth16Verifyingkey = Groth16Verifyingkey { nr_pubinputs: 1usize, vk_alpha_g1: [ - 26u8, 103u8, 143u8, 177u8, 62u8, 183u8, 208u8, 183u8, 56u8, 156u8, 180u8, 133u8, 248u8, - 185u8, 72u8, 248u8, 166u8, 59u8, 165u8, 208u8, 28u8, 237u8, 4u8, 90u8, 35u8, 79u8, 220u8, - 106u8, 27u8, 192u8, 158u8, 51u8, 23u8, 143u8, 162u8, 79u8, 155u8, 69u8, 222u8, 76u8, 121u8, - 92u8, 76u8, 93u8, 53u8, 254u8, 181u8, 145u8, 209u8, 32u8, 84u8, 29u8, 162u8, 219u8, 85u8, - 37u8, 111u8, 108u8, 54u8, 181u8, 87u8, 185u8, 105u8, 44u8, + 45u8, 200u8, 61u8, 223u8, 75u8, 133u8, 238u8, 145u8, 40u8, 116u8, 14u8, 253u8, 230u8, + 157u8, 173u8, 61u8, 227u8, 193u8, 22u8, 190u8, 11u8, 253u8, 104u8, 202u8, 229u8, 130u8, + 127u8, 185u8, 10u8, 156u8, 37u8, 22u8, 24u8, 227u8, 185u8, 11u8, 143u8, 155u8, 46u8, 246u8, + 125u8, 184u8, 112u8, 217u8, 76u8, 238u8, 182u8, 159u8, 170u8, 92u8, 189u8, 242u8, 221u8, + 171u8, 173u8, 235u8, 65u8, 47u8, 39u8, 240u8, 103u8, 80u8, 6u8, 77u8, ], vk_beta_g2: [ - 27u8, 180u8, 33u8, 28u8, 39u8, 85u8, 50u8, 171u8, 78u8, 241u8, 23u8, 129u8, 130u8, 64u8, - 205u8, 160u8, 154u8, 57u8, 78u8, 79u8, 208u8, 10u8, 138u8, 185u8, 33u8, 123u8, 160u8, - 164u8, 180u8, 48u8, 194u8, 209u8, 27u8, 41u8, 19u8, 41u8, 23u8, 31u8, 28u8, 120u8, 37u8, - 64u8, 109u8, 160u8, 63u8, 40u8, 83u8, 250u8, 98u8, 120u8, 82u8, 137u8, 29u8, 69u8, 203u8, - 31u8, 37u8, 120u8, 86u8, 62u8, 190u8, 129u8, 161u8, 8u8, 29u8, 128u8, 73u8, 173u8, 137u8, - 117u8, 156u8, 77u8, 66u8, 25u8, 22u8, 182u8, 124u8, 31u8, 86u8, 214u8, 18u8, 131u8, 117u8, - 145u8, 65u8, 70u8, 81u8, 49u8, 217u8, 122u8, 166u8, 90u8, 132u8, 61u8, 65u8, 24u8, 11u8, - 180u8, 47u8, 105u8, 132u8, 149u8, 25u8, 70u8, 65u8, 3u8, 17u8, 173u8, 47u8, 155u8, 146u8, - 221u8, 124u8, 89u8, 16u8, 47u8, 116u8, 153u8, 182u8, 158u8, 172u8, 105u8, 81u8, 197u8, - 183u8, 196u8, 7u8, 152u8, + 33u8, 59u8, 196u8, 245u8, 225u8, 5u8, 19u8, 146u8, 49u8, 213u8, 80u8, 1u8, 211u8, 149u8, + 209u8, 34u8, 52u8, 179u8, 209u8, 254u8, 85u8, 97u8, 224u8, 178u8, 183u8, 230u8, 239u8, + 146u8, 152u8, 130u8, 126u8, 212u8, 40u8, 105u8, 23u8, 216u8, 247u8, 128u8, 52u8, 30u8, + 35u8, 235u8, 117u8, 201u8, 89u8, 192u8, 234u8, 81u8, 215u8, 9u8, 244u8, 121u8, 216u8, + 242u8, 115u8, 47u8, 122u8, 192u8, 14u8, 156u8, 55u8, 130u8, 31u8, 16u8, 5u8, 167u8, 27u8, + 1u8, 147u8, 112u8, 149u8, 17u8, 253u8, 148u8, 129u8, 150u8, 247u8, 234u8, 120u8, 109u8, + 204u8, 114u8, 21u8, 157u8, 32u8, 9u8, 208u8, 205u8, 27u8, 129u8, 215u8, 255u8, 155u8, 16u8, + 70u8, 198u8, 33u8, 179u8, 6u8, 46u8, 203u8, 117u8, 198u8, 70u8, 115u8, 241u8, 141u8, 103u8, + 164u8, 185u8, 141u8, 170u8, 247u8, 141u8, 194u8, 116u8, 191u8, 56u8, 85u8, 205u8, 196u8, + 149u8, 213u8, 159u8, 1u8, 126u8, 14u8, 222u8, ], vk_gamme_g2: [ - 1u8, 6u8, 58u8, 13u8, 87u8, 39u8, 203u8, 181u8, 164u8, 22u8, 249u8, 229u8, 63u8, 3u8, 53u8, - 204u8, 182u8, 35u8, 144u8, 46u8, 113u8, 185u8, 30u8, 239u8, 114u8, 140u8, 35u8, 149u8, - 142u8, 226u8, 233u8, 86u8, 12u8, 204u8, 169u8, 194u8, 7u8, 7u8, 246u8, 47u8, 152u8, 121u8, - 105u8, 98u8, 96u8, 253u8, 105u8, 93u8, 245u8, 55u8, 246u8, 183u8, 145u8, 138u8, 242u8, - 248u8, 210u8, 179u8, 194u8, 238u8, 193u8, 148u8, 101u8, 187u8, 32u8, 86u8, 212u8, 248u8, - 252u8, 65u8, 65u8, 168u8, 154u8, 69u8, 42u8, 135u8, 22u8, 215u8, 59u8, 111u8, 150u8, 102u8, - 143u8, 120u8, 172u8, 126u8, 168u8, 24u8, 136u8, 63u8, 186u8, 3u8, 65u8, 124u8, 209u8, - 225u8, 3u8, 251u8, 186u8, 87u8, 128u8, 99u8, 214u8, 220u8, 42u8, 58u8, 211u8, 146u8, 32u8, - 89u8, 205u8, 206u8, 182u8, 142u8, 104u8, 125u8, 25u8, 196u8, 128u8, 50u8, 33u8, 103u8, - 187u8, 33u8, 120u8, 77u8, 37u8, 121u8, + 32u8, 160u8, 33u8, 96u8, 36u8, 137u8, 137u8, 13u8, 227u8, 56u8, 30u8, 86u8, 138u8, 235u8, + 10u8, 131u8, 12u8, 225u8, 192u8, 67u8, 30u8, 239u8, 150u8, 216u8, 132u8, 98u8, 223u8, + 232u8, 247u8, 192u8, 221u8, 116u8, 35u8, 26u8, 140u8, 112u8, 122u8, 173u8, 180u8, 183u8, + 138u8, 36u8, 169u8, 78u8, 71u8, 12u8, 115u8, 48u8, 254u8, 32u8, 255u8, 152u8, 235u8, 65u8, + 23u8, 140u8, 109u8, 191u8, 95u8, 203u8, 153u8, 97u8, 230u8, 199u8, 25u8, 93u8, 231u8, + 199u8, 177u8, 222u8, 172u8, 158u8, 254u8, 175u8, 10u8, 230u8, 176u8, 150u8, 248u8, 172u8, + 226u8, 222u8, 185u8, 235u8, 191u8, 68u8, 146u8, 99u8, 246u8, 64u8, 136u8, 100u8, 87u8, + 153u8, 250u8, 133u8, 5u8, 151u8, 143u8, 99u8, 215u8, 25u8, 163u8, 202u8, 121u8, 241u8, + 229u8, 228u8, 124u8, 5u8, 22u8, 213u8, 132u8, 207u8, 237u8, 148u8, 28u8, 71u8, 140u8, + 127u8, 240u8, 90u8, 205u8, 167u8, 11u8, 218u8, 185u8, 114u8, ], vk_delta_g2: [ - 8u8, 213u8, 129u8, 43u8, 150u8, 210u8, 215u8, 13u8, 81u8, 38u8, 71u8, 84u8, 201u8, 238u8, - 70u8, 225u8, 95u8, 88u8, 145u8, 68u8, 168u8, 12u8, 135u8, 94u8, 243u8, 252u8, 226u8, 192u8, - 138u8, 116u8, 156u8, 85u8, 28u8, 39u8, 127u8, 226u8, 52u8, 223u8, 49u8, 177u8, 175u8, - 250u8, 93u8, 13u8, 132u8, 137u8, 139u8, 187u8, 248u8, 3u8, 188u8, 149u8, 200u8, 77u8, 75u8, - 71u8, 9u8, 221u8, 126u8, 37u8, 200u8, 177u8, 13u8, 114u8, 16u8, 210u8, 147u8, 65u8, 44u8, - 189u8, 16u8, 105u8, 184u8, 33u8, 10u8, 35u8, 183u8, 129u8, 217u8, 4u8, 156u8, 224u8, 58u8, - 202u8, 143u8, 41u8, 68u8, 163u8, 14u8, 36u8, 191u8, 107u8, 23u8, 35u8, 6u8, 214u8, 36u8, - 227u8, 26u8, 121u8, 12u8, 119u8, 135u8, 128u8, 114u8, 221u8, 32u8, 222u8, 1u8, 167u8, 50u8, - 234u8, 154u8, 88u8, 103u8, 2u8, 252u8, 49u8, 89u8, 92u8, 139u8, 91u8, 8u8, 217u8, 229u8, - 165u8, 248u8, 91u8, + 42u8, 53u8, 183u8, 142u8, 7u8, 49u8, 219u8, 168u8, 3u8, 82u8, 121u8, 144u8, 11u8, 187u8, + 216u8, 118u8, 185u8, 46u8, 144u8, 173u8, 71u8, 14u8, 85u8, 14u8, 76u8, 183u8, 96u8, 237u8, + 128u8, 216u8, 172u8, 185u8, 22u8, 136u8, 148u8, 50u8, 204u8, 75u8, 167u8, 199u8, 129u8, + 227u8, 252u8, 96u8, 183u8, 148u8, 172u8, 96u8, 65u8, 178u8, 157u8, 169u8, 118u8, 157u8, + 150u8, 146u8, 185u8, 232u8, 228u8, 102u8, 121u8, 106u8, 228u8, 15u8, 31u8, 28u8, 227u8, + 7u8, 40u8, 238u8, 214u8, 95u8, 38u8, 121u8, 108u8, 243u8, 192u8, 168u8, 87u8, 148u8, 46u8, + 222u8, 82u8, 84u8, 7u8, 130u8, 106u8, 144u8, 43u8, 36u8, 41u8, 197u8, 248u8, 19u8, 60u8, + 97u8, 7u8, 237u8, 8u8, 16u8, 43u8, 88u8, 122u8, 174u8, 86u8, 195u8, 111u8, 165u8, 218u8, + 177u8, 96u8, 76u8, 126u8, 225u8, 24u8, 74u8, 62u8, 17u8, 155u8, 37u8, 147u8, 48u8, 127u8, + 184u8, 136u8, 212u8, 227u8, 200u8, ], vk_ic: &[ [ - 11u8, 124u8, 176u8, 212u8, 166u8, 22u8, 186u8, 237u8, 111u8, 190u8, 94u8, 242u8, 5u8, - 177u8, 21u8, 40u8, 104u8, 153u8, 68u8, 190u8, 129u8, 56u8, 201u8, 112u8, 194u8, 88u8, - 158u8, 191u8, 236u8, 31u8, 183u8, 50u8, 24u8, 7u8, 197u8, 250u8, 251u8, 220u8, 68u8, - 122u8, 57u8, 46u8, 67u8, 198u8, 122u8, 81u8, 232u8, 248u8, 185u8, 98u8, 152u8, 77u8, - 43u8, 78u8, 194u8, 197u8, 79u8, 191u8, 53u8, 96u8, 148u8, 130u8, 181u8, 159u8, + 19u8, 247u8, 160u8, 19u8, 91u8, 26u8, 159u8, 2u8, 5u8, 85u8, 30u8, 27u8, 202u8, 153u8, + 216u8, 136u8, 13u8, 156u8, 30u8, 33u8, 86u8, 51u8, 126u8, 226u8, 49u8, 242u8, 224u8, + 44u8, 42u8, 213u8, 119u8, 95u8, 34u8, 119u8, 65u8, 157u8, 2u8, 131u8, 160u8, 235u8, + 158u8, 85u8, 178u8, 107u8, 95u8, 120u8, 57u8, 163u8, 97u8, 213u8, 192u8, 22u8, 216u8, + 17u8, 126u8, 191u8, 94u8, 217u8, 43u8, 127u8, 162u8, 201u8, 117u8, 124u8, ], [ - 14u8, 128u8, 235u8, 218u8, 168u8, 59u8, 108u8, 74u8, 89u8, 36u8, 41u8, 55u8, 34u8, - 169u8, 95u8, 8u8, 50u8, 87u8, 108u8, 254u8, 121u8, 19u8, 168u8, 85u8, 179u8, 79u8, - 81u8, 56u8, 8u8, 20u8, 93u8, 250u8, 13u8, 152u8, 149u8, 42u8, 51u8, 139u8, 169u8, 88u8, - 7u8, 245u8, 144u8, 8u8, 228u8, 172u8, 143u8, 109u8, 58u8, 140u8, 178u8, 215u8, 178u8, - 47u8, 13u8, 81u8, 20u8, 149u8, 237u8, 22u8, 184u8, 43u8, 198u8, 49u8, + 32u8, 60u8, 241u8, 8u8, 2u8, 56u8, 105u8, 20u8, 27u8, 9u8, 205u8, 209u8, 126u8, 194u8, + 91u8, 205u8, 126u8, 16u8, 180u8, 95u8, 130u8, 143u8, 154u8, 13u8, 186u8, 154u8, 8u8, + 53u8, 27u8, 120u8, 205u8, 106u8, 24u8, 109u8, 5u8, 65u8, 47u8, 132u8, 197u8, 39u8, + 104u8, 160u8, 67u8, 19u8, 82u8, 90u8, 45u8, 117u8, 84u8, 100u8, 106u8, 127u8, 128u8, + 251u8, 27u8, 157u8, 125u8, 112u8, 45u8, 67u8, 162u8, 57u8, 78u8, 216u8, ], ], }; diff --git a/circuit-lib/verifier/src/verifying_keys/update_26_500.rs b/circuit-lib/verifier/src/verifying_keys/update_26_500.rs index be65871e66..abf176b476 100644 --- a/circuit-lib/verifier/src/verifying_keys/update_26_500.rs +++ b/circuit-lib/verifier/src/verifying_keys/update_26_500.rs @@ -4,62 +4,62 @@ use groth16_solana::groth16::Groth16Verifyingkey; pub const VERIFYINGKEY: Groth16Verifyingkey = Groth16Verifyingkey { nr_pubinputs: 1usize, vk_alpha_g1: [ - 18u8, 152u8, 58u8, 87u8, 46u8, 230u8, 49u8, 151u8, 68u8, 229u8, 142u8, 101u8, 25u8, 204u8, - 79u8, 205u8, 38u8, 217u8, 85u8, 226u8, 0u8, 190u8, 158u8, 81u8, 223u8, 170u8, 141u8, 228u8, - 236u8, 22u8, 229u8, 50u8, 32u8, 232u8, 21u8, 44u8, 65u8, 82u8, 4u8, 100u8, 95u8, 200u8, - 60u8, 246u8, 116u8, 9u8, 138u8, 59u8, 255u8, 164u8, 179u8, 238u8, 236u8, 20u8, 123u8, - 218u8, 118u8, 252u8, 73u8, 151u8, 57u8, 142u8, 66u8, 222u8, + 26u8, 75u8, 104u8, 60u8, 225u8, 212u8, 235u8, 237u8, 9u8, 126u8, 170u8, 104u8, 33u8, 177u8, + 207u8, 59u8, 135u8, 158u8, 230u8, 236u8, 37u8, 57u8, 239u8, 138u8, 125u8, 48u8, 148u8, + 48u8, 136u8, 228u8, 29u8, 162u8, 38u8, 28u8, 134u8, 19u8, 244u8, 10u8, 184u8, 137u8, 185u8, + 206u8, 240u8, 156u8, 74u8, 136u8, 171u8, 171u8, 178u8, 10u8, 33u8, 171u8, 80u8, 202u8, + 130u8, 4u8, 1u8, 163u8, 26u8, 254u8, 206u8, 220u8, 54u8, 114u8, ], vk_beta_g2: [ - 23u8, 153u8, 174u8, 118u8, 50u8, 246u8, 142u8, 36u8, 122u8, 66u8, 189u8, 68u8, 56u8, 142u8, - 243u8, 104u8, 57u8, 81u8, 249u8, 150u8, 145u8, 172u8, 208u8, 193u8, 52u8, 124u8, 169u8, - 195u8, 173u8, 39u8, 189u8, 101u8, 42u8, 184u8, 21u8, 13u8, 148u8, 214u8, 43u8, 133u8, 21u8, - 51u8, 38u8, 255u8, 220u8, 40u8, 80u8, 254u8, 160u8, 255u8, 88u8, 94u8, 162u8, 2u8, 169u8, - 190u8, 11u8, 41u8, 9u8, 17u8, 69u8, 130u8, 145u8, 210u8, 13u8, 9u8, 45u8, 141u8, 16u8, - 202u8, 116u8, 2u8, 113u8, 102u8, 248u8, 30u8, 245u8, 235u8, 210u8, 80u8, 51u8, 200u8, - 114u8, 162u8, 156u8, 216u8, 232u8, 238u8, 140u8, 226u8, 223u8, 104u8, 64u8, 186u8, 75u8, - 208u8, 38u8, 66u8, 23u8, 79u8, 34u8, 123u8, 77u8, 9u8, 107u8, 48u8, 170u8, 160u8, 56u8, - 142u8, 122u8, 53u8, 204u8, 86u8, 93u8, 119u8, 108u8, 19u8, 122u8, 116u8, 240u8, 142u8, - 251u8, 100u8, 62u8, 217u8, 221u8, 75u8, + 27u8, 214u8, 57u8, 193u8, 203u8, 203u8, 137u8, 79u8, 79u8, 35u8, 60u8, 191u8, 15u8, 34u8, + 216u8, 122u8, 39u8, 183u8, 134u8, 186u8, 177u8, 150u8, 76u8, 182u8, 19u8, 16u8, 202u8, + 173u8, 214u8, 174u8, 63u8, 103u8, 30u8, 130u8, 40u8, 173u8, 79u8, 213u8, 113u8, 82u8, + 132u8, 222u8, 180u8, 245u8, 247u8, 85u8, 141u8, 222u8, 110u8, 145u8, 153u8, 184u8, 40u8, + 18u8, 102u8, 6u8, 95u8, 246u8, 146u8, 137u8, 13u8, 10u8, 28u8, 112u8, 33u8, 66u8, 237u8, + 139u8, 196u8, 105u8, 64u8, 25u8, 125u8, 250u8, 74u8, 15u8, 220u8, 133u8, 188u8, 186u8, + 173u8, 119u8, 89u8, 130u8, 146u8, 24u8, 233u8, 99u8, 173u8, 223u8, 145u8, 51u8, 222u8, + 11u8, 152u8, 32u8, 26u8, 109u8, 178u8, 228u8, 128u8, 197u8, 223u8, 226u8, 97u8, 16u8, 91u8, + 74u8, 27u8, 20u8, 223u8, 91u8, 22u8, 22u8, 98u8, 53u8, 146u8, 62u8, 222u8, 190u8, 154u8, + 219u8, 93u8, 219u8, 232u8, 160u8, 25u8, 249u8, ], vk_gamme_g2: [ - 4u8, 64u8, 71u8, 219u8, 222u8, 230u8, 60u8, 160u8, 118u8, 240u8, 197u8, 194u8, 208u8, - 200u8, 1u8, 218u8, 11u8, 248u8, 73u8, 229u8, 11u8, 219u8, 0u8, 239u8, 234u8, 209u8, 98u8, - 198u8, 247u8, 135u8, 174u8, 186u8, 34u8, 177u8, 49u8, 111u8, 156u8, 37u8, 161u8, 216u8, - 226u8, 249u8, 104u8, 119u8, 218u8, 44u8, 82u8, 11u8, 129u8, 184u8, 254u8, 164u8, 143u8, - 2u8, 98u8, 9u8, 35u8, 34u8, 184u8, 146u8, 36u8, 2u8, 231u8, 149u8, 41u8, 75u8, 221u8, 13u8, - 240u8, 151u8, 174u8, 215u8, 241u8, 28u8, 124u8, 60u8, 132u8, 75u8, 230u8, 248u8, 14u8, - 165u8, 199u8, 6u8, 22u8, 20u8, 238u8, 251u8, 62u8, 246u8, 246u8, 175u8, 12u8, 107u8, 143u8, - 224u8, 18u8, 222u8, 105u8, 14u8, 23u8, 176u8, 236u8, 252u8, 75u8, 130u8, 113u8, 79u8, - 174u8, 100u8, 126u8, 81u8, 104u8, 27u8, 23u8, 224u8, 187u8, 151u8, 252u8, 116u8, 180u8, - 190u8, 51u8, 50u8, 247u8, 160u8, 9u8, 68u8, + 4u8, 247u8, 0u8, 69u8, 85u8, 26u8, 25u8, 173u8, 85u8, 231u8, 221u8, 124u8, 107u8, 166u8, + 75u8, 227u8, 193u8, 148u8, 232u8, 229u8, 37u8, 120u8, 57u8, 191u8, 65u8, 193u8, 40u8, + 234u8, 31u8, 94u8, 161u8, 89u8, 0u8, 230u8, 173u8, 236u8, 120u8, 83u8, 106u8, 166u8, 159u8, + 207u8, 203u8, 78u8, 217u8, 16u8, 227u8, 22u8, 219u8, 168u8, 93u8, 126u8, 13u8, 131u8, + 230u8, 221u8, 131u8, 209u8, 7u8, 211u8, 160u8, 80u8, 170u8, 243u8, 30u8, 80u8, 212u8, 24u8, + 82u8, 235u8, 247u8, 55u8, 28u8, 147u8, 0u8, 76u8, 115u8, 45u8, 9u8, 238u8, 250u8, 76u8, + 120u8, 206u8, 4u8, 3u8, 20u8, 81u8, 49u8, 59u8, 155u8, 204u8, 75u8, 102u8, 144u8, 211u8, + 38u8, 253u8, 122u8, 33u8, 113u8, 179u8, 170u8, 52u8, 135u8, 118u8, 228u8, 248u8, 177u8, + 8u8, 133u8, 96u8, 63u8, 148u8, 228u8, 194u8, 240u8, 104u8, 8u8, 166u8, 180u8, 151u8, 243u8, + 6u8, 240u8, 228u8, 149u8, 172u8, ], vk_delta_g2: [ - 16u8, 131u8, 56u8, 247u8, 71u8, 233u8, 56u8, 1u8, 89u8, 223u8, 98u8, 118u8, 140u8, 211u8, - 47u8, 119u8, 194u8, 222u8, 229u8, 207u8, 103u8, 72u8, 249u8, 48u8, 75u8, 139u8, 76u8, 16u8, - 46u8, 172u8, 200u8, 204u8, 2u8, 187u8, 188u8, 104u8, 163u8, 241u8, 112u8, 130u8, 128u8, - 2u8, 18u8, 156u8, 243u8, 63u8, 14u8, 108u8, 46u8, 94u8, 219u8, 59u8, 64u8, 3u8, 102u8, - 63u8, 110u8, 160u8, 214u8, 168u8, 119u8, 22u8, 232u8, 151u8, 16u8, 203u8, 108u8, 217u8, - 237u8, 84u8, 160u8, 96u8, 139u8, 249u8, 51u8, 208u8, 169u8, 164u8, 160u8, 226u8, 67u8, - 203u8, 210u8, 152u8, 62u8, 23u8, 162u8, 191u8, 207u8, 84u8, 197u8, 5u8, 223u8, 84u8, 82u8, - 66u8, 39u8, 147u8, 57u8, 24u8, 49u8, 41u8, 195u8, 76u8, 208u8, 67u8, 161u8, 71u8, 77u8, - 106u8, 57u8, 41u8, 97u8, 96u8, 247u8, 163u8, 204u8, 67u8, 48u8, 205u8, 137u8, 63u8, 89u8, - 155u8, 101u8, 2u8, 243u8, 1u8, + 0u8, 90u8, 154u8, 9u8, 116u8, 26u8, 230u8, 157u8, 239u8, 109u8, 189u8, 213u8, 90u8, 183u8, + 68u8, 137u8, 196u8, 64u8, 188u8, 151u8, 52u8, 221u8, 153u8, 216u8, 101u8, 246u8, 183u8, + 21u8, 232u8, 220u8, 78u8, 169u8, 13u8, 167u8, 166u8, 12u8, 31u8, 220u8, 87u8, 216u8, 91u8, + 65u8, 188u8, 186u8, 63u8, 63u8, 26u8, 128u8, 51u8, 183u8, 2u8, 43u8, 228u8, 136u8, 193u8, + 59u8, 221u8, 14u8, 211u8, 54u8, 90u8, 178u8, 38u8, 162u8, 35u8, 93u8, 110u8, 185u8, 86u8, + 72u8, 152u8, 49u8, 92u8, 72u8, 23u8, 73u8, 176u8, 238u8, 23u8, 40u8, 92u8, 158u8, 82u8, + 218u8, 44u8, 163u8, 79u8, 155u8, 154u8, 93u8, 186u8, 77u8, 111u8, 138u8, 197u8, 16u8, 46u8, + 168u8, 74u8, 37u8, 3u8, 212u8, 224u8, 243u8, 185u8, 124u8, 193u8, 249u8, 120u8, 56u8, 11u8, + 67u8, 62u8, 129u8, 47u8, 50u8, 107u8, 200u8, 60u8, 117u8, 2u8, 63u8, 111u8, 213u8, 53u8, + 150u8, 137u8, 52u8, ], vk_ic: &[ [ - 9u8, 12u8, 39u8, 230u8, 198u8, 165u8, 230u8, 6u8, 144u8, 188u8, 35u8, 8u8, 177u8, - 151u8, 92u8, 138u8, 0u8, 9u8, 255u8, 82u8, 164u8, 240u8, 185u8, 150u8, 247u8, 146u8, - 64u8, 126u8, 166u8, 214u8, 64u8, 23u8, 9u8, 220u8, 93u8, 38u8, 69u8, 13u8, 84u8, 223u8, - 186u8, 138u8, 147u8, 107u8, 93u8, 194u8, 153u8, 66u8, 215u8, 205u8, 120u8, 70u8, 20u8, - 171u8, 184u8, 150u8, 76u8, 55u8, 200u8, 105u8, 46u8, 140u8, 144u8, 68u8, + 30u8, 118u8, 48u8, 55u8, 252u8, 133u8, 7u8, 123u8, 203u8, 23u8, 125u8, 170u8, 225u8, + 88u8, 209u8, 138u8, 243u8, 131u8, 69u8, 229u8, 55u8, 42u8, 163u8, 204u8, 62u8, 146u8, + 49u8, 201u8, 76u8, 59u8, 29u8, 239u8, 30u8, 69u8, 121u8, 74u8, 99u8, 193u8, 178u8, + 39u8, 44u8, 199u8, 126u8, 85u8, 25u8, 129u8, 215u8, 247u8, 179u8, 255u8, 87u8, 106u8, + 127u8, 119u8, 146u8, 24u8, 32u8, 237u8, 227u8, 12u8, 92u8, 201u8, 14u8, 91u8, ], [ - 15u8, 130u8, 32u8, 247u8, 22u8, 140u8, 21u8, 166u8, 72u8, 213u8, 129u8, 231u8, 194u8, - 187u8, 16u8, 108u8, 215u8, 66u8, 92u8, 36u8, 186u8, 149u8, 11u8, 96u8, 193u8, 153u8, - 189u8, 6u8, 25u8, 146u8, 165u8, 64u8, 31u8, 33u8, 173u8, 249u8, 218u8, 141u8, 42u8, - 127u8, 236u8, 26u8, 171u8, 176u8, 35u8, 71u8, 235u8, 90u8, 109u8, 151u8, 202u8, 118u8, - 173u8, 165u8, 79u8, 39u8, 172u8, 54u8, 141u8, 240u8, 10u8, 228u8, 195u8, 106u8, + 26u8, 164u8, 2u8, 194u8, 34u8, 22u8, 226u8, 103u8, 222u8, 222u8, 137u8, 1u8, 185u8, + 23u8, 48u8, 173u8, 153u8, 239u8, 199u8, 30u8, 217u8, 138u8, 179u8, 223u8, 118u8, 249u8, + 62u8, 61u8, 107u8, 121u8, 106u8, 32u8, 18u8, 240u8, 49u8, 29u8, 22u8, 144u8, 163u8, + 136u8, 232u8, 110u8, 96u8, 24u8, 68u8, 119u8, 179u8, 245u8, 236u8, 54u8, 162u8, 99u8, + 218u8, 55u8, 197u8, 177u8, 55u8, 75u8, 65u8, 150u8, 113u8, 133u8, 58u8, 233u8, ], ], }; diff --git a/light-prover/prover/batch_update_circuit.go b/light-prover/prover/batch_update_circuit.go index a07a4f98d8..005822ec6b 100644 --- a/light-prover/prover/batch_update_circuit.go +++ b/light-prover/prover/batch_update_circuit.go @@ -3,6 +3,7 @@ package prover import ( "fmt" merkle_tree "light/light-prover/merkle-tree" + "light/light-prover/prover/poseidon" "math/big" "github.com/consensys/gnark-crypto/ecc" @@ -19,9 +20,10 @@ type BatchUpdateCircuit struct { NewRoot frontend.Variable `gnark:",private"` LeavesHashchainHash frontend.Variable `gnark:",private"` - Leaves []frontend.Variable `gnark:"input"` - MerkleProofs [][]frontend.Variable `gnark:"input"` - PathIndices []frontend.Variable `gnark:"input"` + TxHashes []frontend.Variable `gnark:"private"` + Leaves []frontend.Variable `gnark:"private"` + MerkleProofs [][]frontend.Variable `gnark:"private"` + PathIndices []frontend.Variable `gnark:"private"` Height uint32 BatchSize uint32 @@ -35,18 +37,21 @@ func (circuit *BatchUpdateCircuit) Define(api frontend.API) error { hashChainInputs[2] = circuit.LeavesHashchainHash publicInputsHashChain := createHashChain(api, int(3), hashChainInputs) api.AssertIsEqual(publicInputsHashChain, circuit.PublicInputHash) + nullifiers := make([]frontend.Variable, int(circuit.BatchSize)) + for i := 0; i < int(circuit.BatchSize); i++ { + nullifiers[i] = abstractor.Call(api, poseidon.Poseidon2{In1: circuit.Leaves[i], In2: circuit.TxHashes[i]}) + } - calculatedHashchainHash := createHashChain(api, int(circuit.BatchSize), circuit.Leaves) - api.AssertIsEqual(calculatedHashchainHash, circuit.LeavesHashchainHash) + nullifierHashChainHash := createHashChain(api, int(circuit.BatchSize), nullifiers) + api.AssertIsEqual(nullifierHashChainHash, circuit.LeavesHashchainHash) - emptyLeaf := frontend.Variable(0) newRoot := circuit.OldRoot for i := 0; i < int(circuit.BatchSize); i++ { newRoot = abstractor.Call(api, MerkleRootUpdateGadget{ OldRoot: newRoot, OldLeaf: circuit.Leaves[i], - NewLeaf: emptyLeaf, + NewLeaf: nullifiers[i], PathIndex: circuit.PathIndices[i], MerkleProof: circuit.MerkleProofs[i], Height: int(circuit.Height), @@ -62,6 +67,7 @@ type BatchUpdateParameters struct { PublicInputHash *big.Int OldRoot *big.Int NewRoot *big.Int + TxHashes []*big.Int LeavesHashchainHash *big.Int Leaves []*big.Int MerkleProofs [][]big.Int @@ -82,6 +88,9 @@ func (p *BatchUpdateParameters) ValidateShape() error { if len(p.Leaves) != int(p.BatchSize) { return fmt.Errorf("wrong number of leaves: %d, expected: %d", len(p.Leaves), p.BatchSize) } + if len(p.TxHashes) != int(p.BatchSize) { + return fmt.Errorf("wrong number of tx hashes: %d, expected: %d", len(p.TxHashes), p.BatchSize) + } if len(p.MerkleProofs) != int(p.BatchSize) { return fmt.Errorf("wrong number of merkle proofs: %d", len(p.MerkleProofs)) } @@ -124,12 +133,14 @@ func (ps *ProvingSystemV2) ProveBatchUpdate(params *BatchUpdateParameters) (*Pro newRoot := frontend.Variable(params.NewRoot) leavesHashchainHash := frontend.Variable(params.LeavesHashchainHash) + txHashes := make([]frontend.Variable, len(params.TxHashes)) leaves := make([]frontend.Variable, len(params.Leaves)) pathIndices := make([]frontend.Variable, len(params.PathIndices)) merkleProofs := make([][]frontend.Variable, len(params.MerkleProofs)) for i := 0; i < len(params.Leaves); i++ { leaves[i] = frontend.Variable(params.Leaves[i]) + txHashes[i] = frontend.Variable(params.TxHashes[i]) pathIndices[i] = frontend.Variable(params.PathIndices[i]) merkleProofs[i] = make([]frontend.Variable, len(params.MerkleProofs[i])) for j := 0; j < len(params.MerkleProofs[i]); j++ { @@ -141,6 +152,7 @@ func (ps *ProvingSystemV2) ProveBatchUpdate(params *BatchUpdateParameters) (*Pro PublicInputHash: publicInputHash, OldRoot: oldRoot, NewRoot: newRoot, + TxHashes: txHashes, LeavesHashchainHash: leavesHashchainHash, Leaves: leaves, PathIndices: pathIndices, @@ -164,6 +176,7 @@ func (ps *ProvingSystemV2) ProveBatchUpdate(params *BatchUpdateParameters) (*Pro func R1CSBatchUpdate(height uint32, batchSize uint32) (constraint.ConstraintSystem, error) { leaves := make([]frontend.Variable, batchSize) + txHashes := make([]frontend.Variable, batchSize) pathIndices := make([]frontend.Variable, batchSize) merkleProofs := make([][]frontend.Variable, batchSize) @@ -175,6 +188,7 @@ func R1CSBatchUpdate(height uint32, batchSize uint32) (constraint.ConstraintSyst PublicInputHash: frontend.Variable(0), OldRoot: frontend.Variable(0), NewRoot: frontend.Variable(0), + TxHashes: txHashes, LeavesHashchainHash: frontend.Variable(0), Leaves: leaves, PathIndices: pathIndices, @@ -188,6 +202,7 @@ func R1CSBatchUpdate(height uint32, batchSize uint32) (constraint.ConstraintSyst func ImportBatchUpdateSetup(treeHeight uint32, batchSize uint32, pkPath string, vkPath string) (*ProvingSystemV2, error) { leaves := make([]frontend.Variable, batchSize) + txHashes := make([]frontend.Variable, batchSize) oldMerkleProofs := make([][]frontend.Variable, batchSize) newMerkleProofs := make([][]frontend.Variable, batchSize) @@ -197,9 +212,16 @@ func ImportBatchUpdateSetup(treeHeight uint32, batchSize uint32, pkPath string, } circuit := BatchUpdateCircuit{ - Height: treeHeight, - Leaves: leaves, - MerkleProofs: newMerkleProofs, + Height: treeHeight, + TxHashes: txHashes, + Leaves: leaves, + MerkleProofs: newMerkleProofs, + PathIndices: make([]frontend.Variable, batchSize), + OldRoot: frontend.Variable(0), + NewRoot: frontend.Variable(0), + LeavesHashchainHash: frontend.Variable(0), + BatchSize: batchSize, + PublicInputHash: frontend.Variable(0), } fmt.Println("Compiling circuit") diff --git a/light-prover/prover/batch_update_circuit_test.go b/light-prover/prover/batch_update_circuit_test.go index 20481975b4..8e75c1ed86 100644 --- a/light-prover/prover/batch_update_circuit_test.go +++ b/light-prover/prover/batch_update_circuit_test.go @@ -24,6 +24,7 @@ func TestBatchUpdateCircuit(t *testing.T) { OldRoot: frontend.Variable(0), NewRoot: frontend.Variable(0), LeavesHashchainHash: frontend.Variable(0), + TxHashes: make([]frontend.Variable, batchSize), Leaves: make([]frontend.Variable, batchSize), PathIndices: make([]frontend.Variable, batchSize), MerkleProofs: make([][]frontend.Variable, batchSize), @@ -40,6 +41,7 @@ func TestBatchUpdateCircuit(t *testing.T) { OldRoot: frontend.Variable(params.OldRoot), NewRoot: frontend.Variable(params.NewRoot), LeavesHashchainHash: frontend.Variable(params.LeavesHashchainHash), + TxHashes: make([]frontend.Variable, batchSize), Leaves: make([]frontend.Variable, batchSize), MerkleProofs: make([][]frontend.Variable, batchSize), PathIndices: make([]frontend.Variable, batchSize), @@ -49,6 +51,7 @@ func TestBatchUpdateCircuit(t *testing.T) { for i := 0; i < batchSize; i++ { witness.Leaves[i] = frontend.Variable(params.Leaves[i]) + witness.TxHashes[i] = frontend.Variable(params.TxHashes[i]) witness.PathIndices[i] = frontend.Variable(params.PathIndices[i]) witness.MerkleProofs[i] = make([]frontend.Variable, treeDepth) for j := 0; j < treeDepth; j++ { @@ -157,6 +160,20 @@ func TestBatchUpdateCircuit(t *testing.T) { // Swap two leaves to create an invalid order witness.Leaves[0], witness.Leaves[1] = witness.Leaves[1], witness.Leaves[0] + err := test.IsSolved(&circuit, &witness, ecc.BN254.ScalarField()) + assert.Error(err) + }) + t.Run("Invalid tx hash", func(t *testing.T) { + treeDepth := 10 + batchSize := 5 + params := BuildTestBatchUpdateTree(treeDepth, batchSize, nil, nil) + + circuit := createBatchUpdateCircuit(treeDepth, batchSize) + witness := createBatchUpdateWitness(params, 0, batchSize) + + // Swap two tx hashes to create an invalid order + witness.TxHashes[0], witness.TxHashes[1] = witness.TxHashes[1], witness.TxHashes[0] + err := test.IsSolved(&circuit, &witness, ecc.BN254.ScalarField()) assert.Error(err) }) @@ -168,6 +185,7 @@ func createBatchUpdateCircuit(treeDepth, batchSize int) BatchUpdateCircuit { OldRoot: frontend.Variable(0), NewRoot: frontend.Variable(0), LeavesHashchainHash: frontend.Variable(0), + TxHashes: make([]frontend.Variable, batchSize), Leaves: make([]frontend.Variable, batchSize), MerkleProofs: make([][]frontend.Variable, batchSize), PathIndices: make([]frontend.Variable, batchSize), @@ -188,6 +206,7 @@ func createBatchUpdateWitness(params *BatchUpdateParameters, startIndex, count i OldRoot: frontend.Variable(params.OldRoot), NewRoot: frontend.Variable(params.NewRoot), LeavesHashchainHash: frontend.Variable(params.LeavesHashchainHash), + TxHashes: make([]frontend.Variable, count), Leaves: make([]frontend.Variable, count), MerkleProofs: make([][]frontend.Variable, count), PathIndices: make([]frontend.Variable, count), @@ -196,6 +215,7 @@ func createBatchUpdateWitness(params *BatchUpdateParameters, startIndex, count i } for i := 0; i < count; i++ { + witness.TxHashes[i] = frontend.Variable(params.TxHashes[i]) witness.Leaves[i] = frontend.Variable(params.Leaves[i]) witness.PathIndices[i] = frontend.Variable(params.PathIndices[i]) witness.MerkleProofs[i] = make([]frontend.Variable, int(params.Height)) diff --git a/light-prover/prover/marshal_update.go b/light-prover/prover/marshal_update.go index f2dfb74919..a57140878d 100644 --- a/light-prover/prover/marshal_update.go +++ b/light-prover/prover/marshal_update.go @@ -10,6 +10,7 @@ type BatchUpdateProofInputsJSON struct { PublicInputHash string `json:"publicInputHash"` OldRoot string `json:"oldRoot"` NewRoot string `json:"newRoot"` + TxHashes []string `json:"txHashes"` LeavesHashchainHash string `json:"leavesHashchainHash"` Leaves []string `json:"leaves"` MerkleProofs [][]string `json:"newMerkleProofs"` @@ -41,18 +42,17 @@ func (p *BatchUpdateParameters) CreateBatchUpdateParametersJSON() BatchUpdatePro paramsJson.Height = p.Height paramsJson.BatchSize = p.BatchSize + paramsJson.TxHashes = make([]string, len(p.TxHashes)) paramsJson.Leaves = make([]string, len(p.Leaves)) + paramsJson.PathIndices = make([]uint32, len(p.PathIndices)) + paramsJson.MerkleProofs = make([][]string, len(p.MerkleProofs)) + // TODO: add assert that all slices are of the same length for i := 0; i < len(p.Leaves); i++ { paramsJson.Leaves[i] = toHex(p.Leaves[i]) - } + paramsJson.TxHashes[i] = toHex(p.TxHashes[i]) - paramsJson.PathIndices = make([]uint32, len(p.PathIndices)) - for i := 0; i < len(p.PathIndices); i++ { paramsJson.PathIndices[i] = p.PathIndices[i] - } - paramsJson.MerkleProofs = make([][]string, len(p.MerkleProofs)) - for i := 0; i < len(p.MerkleProofs); i++ { paramsJson.MerkleProofs[i] = make([]string, len(p.MerkleProofs[i])) for j := 0; j < len(p.MerkleProofs[i]); j++ { paramsJson.MerkleProofs[i][j] = toHex(&p.MerkleProofs[i][j]) @@ -95,6 +95,7 @@ func (p *BatchUpdateParameters) UpdateWithJSON(params BatchUpdateProofInputsJSON return err } + p.TxHashes = make([]*big.Int, len(params.TxHashes)) p.Leaves = make([]*big.Int, len(params.Leaves)) for i := 0; i < len(params.Leaves); i++ { p.Leaves[i] = new(big.Int) @@ -102,6 +103,11 @@ func (p *BatchUpdateParameters) UpdateWithJSON(params BatchUpdateProofInputsJSON if err != nil { return err } + p.TxHashes[i] = new(big.Int) + err = fromHex(p.TxHashes[i], params.TxHashes[i]) + if err != nil { + return err + } } p.PathIndices = make([]uint32, len(params.PathIndices)) diff --git a/light-prover/prover/test_data_helpers.go b/light-prover/prover/test_data_helpers.go index 5743e21c58..cb301015d6 100644 --- a/light-prover/prover/test_data_helpers.go +++ b/light-prover/prover/test_data_helpers.go @@ -213,9 +213,9 @@ func BuildTestBatchUpdateTree(treeDepth int, batchSize int, previousTree *merkle } leaves := make([]*big.Int, batchSize) + txHashes := make([]*big.Int, batchSize) merkleProofs := make([][]big.Int, batchSize) pathIndices := make([]uint32, batchSize) - emptyLeaf := big.NewInt(0) usedIndices := make(map[uint32]bool) @@ -242,13 +242,19 @@ func BuildTestBatchUpdateTree(treeDepth int, batchSize int, previousTree *merkle } oldRoot := tree.Root.Value() - + nullifiers := make([]*big.Int, batchSize) for i := 0; i < batchSize; i++ { merkleProofs[i] = tree.Update(int(pathIndices[i]), *leaves[i]) - tree.Update(int(pathIndices[i]), *emptyLeaf) + // mock tx hash (actual tx hash is the hash of all tx input and output + // hashes) + txHash, _ := poseidon.Hash([]*big.Int{big.NewInt(int64(rand.Intn(1000000)))}) + nullifier, _ := poseidon.Hash([]*big.Int{leaves[i], txHash}) + txHashes[i] = txHash + nullifiers[i] = nullifier + tree.Update(int(pathIndices[i]), *nullifier) } - leavesHashchainHash := calculateHashChain(leaves, batchSize) + leavesHashchainHash := calculateHashChain(nullifiers, batchSize) newRoot := tree.Root.Value() publicInputHash := calculateHashChain([]*big.Int{ @@ -261,6 +267,7 @@ func BuildTestBatchUpdateTree(treeDepth int, batchSize int, previousTree *merkle OldRoot: &oldRoot, NewRoot: &newRoot, LeavesHashchainHash: leavesHashchainHash, + TxHashes: txHashes, Leaves: leaves, PathIndices: pathIndices, MerkleProofs: merkleProofs, diff --git a/light-prover/scripts/download_keys.sh b/light-prover/scripts/download_keys.sh index 85510be784..bd8ce7fc50 100755 --- a/light-prover/scripts/download_keys.sh +++ b/light-prover/scripts/download_keys.sh @@ -21,7 +21,7 @@ BUCKET="bafybeiacecbc3hnlmgifpe6v3h3r3ord7ifedjj6zvdv7nxgkab4npts54" APPEND_BUCKET="bafybeiev4q77to62svq535gzndnetvngcnkruhcqw4zdfsjl5ohker7z2u" # keys for update circuit for tree of height 26 -UPDATE_BUCKET="bafybeiev4q77to62svq535gzndnetvngcnkruhcqw4zdfsjl5ohker7z2u" +UPDATE_BUCKET="bafybeic3lzc2sl37f77qpzqdjhp2cwwalo7k65sp4iqmm4wpxeiaghkkju" LIGHTWEIGHT_FILES=( "inclusion_26_1.key" diff --git a/light-prover/scripts/generate_keys.sh b/light-prover/scripts/generate_keys.sh index 421fa6e62b..c7b710bcb8 100755 --- a/light-prover/scripts/generate_keys.sh +++ b/light-prover/scripts/generate_keys.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -declare -a HEIGHTS=("10" "26") +declare -a HEIGHTS=( "26") DEFAULT_HEIGHT="26" PROVING_KEYS_DIR="./proving-keys" VERIFIER_DIR="../circuit-lib/verifier/src/verifying_keys"