From 0b4e9c6591317b0e9bc3aec56a2465f9cbf4a2ad Mon Sep 17 00:00:00 2001 From: Thorkil Vaerge Date: Tue, 30 Apr 2024 10:22:25 +0200 Subject: [PATCH] refactor: Rename snippet for verifying MMR membership Rename the snippet for verifying MMR membership where the leaf index is provided through non-determinism. This is done in anticipation of adding a snippet where the leaf index is provided on the stack. --- ...ify_from_secret_in_secret_leaf_index.json} | 4 +-- tasm-lib/src/exported_snippets.rs | 4 +-- tasm-lib/src/mmr.rs | 2 +- ...erify_from_secret_in_secret_leaf_index.rs} | 32 +++++++++---------- 4 files changed, 21 insertions(+), 21 deletions(-) rename tasm-lib/benchmarks/{tasmlib_mmr_verify_from_secret_in.json => tasmlib_mmr_verify_from_secret_in_secret_leaf_index.json} (77%) rename tasm-lib/src/mmr/{verify_from_secret_in.rs => verify_from_secret_in_secret_leaf_index.rs} (94%) diff --git a/tasm-lib/benchmarks/tasmlib_mmr_verify_from_secret_in.json b/tasm-lib/benchmarks/tasmlib_mmr_verify_from_secret_in_secret_leaf_index.json similarity index 77% rename from tasm-lib/benchmarks/tasmlib_mmr_verify_from_secret_in.json rename to tasm-lib/benchmarks/tasmlib_mmr_verify_from_secret_in_secret_leaf_index.json index be622489..eabc42ee 100644 --- a/tasm-lib/benchmarks/tasmlib_mmr_verify_from_secret_in.json +++ b/tasm-lib/benchmarks/tasmlib_mmr_verify_from_secret_in_secret_leaf_index.json @@ -1,6 +1,6 @@ [ { - "name": "tasmlib_mmr_verify_from_secret_in", + "name": "tasmlib_mmr_verify_from_secret_in_secret_leaf_index", "benchmark_result": { "clock_cycle_count": 1104, "hash_table_height": 390, @@ -11,7 +11,7 @@ "case": "CommonCase" }, { - "name": "tasmlib_mmr_verify_from_secret_in", + "name": "tasmlib_mmr_verify_from_secret_in_secret_leaf_index", "benchmark_result": { "clock_cycle_count": 1974, "hash_table_height": 570, diff --git a/tasm-lib/src/exported_snippets.rs b/tasm-lib/src/exported_snippets.rs index 98e14d7a..f4b4831f 100644 --- a/tasm-lib/src/exported_snippets.rs +++ b/tasm-lib/src/exported_snippets.rs @@ -81,7 +81,7 @@ use crate::mmr::calculate_new_peaks_from_append::CalculateNewPeaksFromAppend; use crate::mmr::calculate_new_peaks_from_leaf_mutation::MmrCalculateNewPeaksFromLeafMutationMtIndices; use crate::mmr::leaf_index_to_mt_index_and_peak_index::MmrLeafIndexToMtIndexAndPeakIndex; use crate::mmr::verify_from_memory::MmrVerifyFromMemory; -use crate::mmr::verify_from_secret_in::MmrVerifyLeafMembershipFromSecretIn; +use crate::mmr::verify_from_secret_in_secret_leaf_index::MmrVerifyFromSecretInSecretLeafIndex; use crate::neptune::mutator_set::commit::Commit; use crate::neptune::mutator_set::get_swbf_indices::GetSwbfIndices; use crate::other_snippets::bfe_add::BfeAdd; @@ -378,7 +378,7 @@ pub fn name_to_snippet(fn_name: &str) -> Box { Box::new(MmrCalculateNewPeaksFromLeafMutationMtIndices) } "tasmlib_mmr_leaf_index_to_mt_index_and_peak_index" => Box::new(MmrLeafIndexToMtIndexAndPeakIndex), - "tasmlib_mmr_verify_from_secret_in" => Box::new(MmrVerifyLeafMembershipFromSecretIn), + "tasmlib_mmr_verify_from_secret_in_secret_leaf_index" => Box::new(MmrVerifyFromSecretInSecretLeafIndex), "tasmlib_mmr_bag_peaks" => Box::new(BagPeaks), "tasmlib_mmr_verify_from_memory" => Box::new(MmrVerifyFromMemory), diff --git a/tasm-lib/src/mmr.rs b/tasm-lib/src/mmr.rs index 2c06bcc9..769f8131 100644 --- a/tasm-lib/src/mmr.rs +++ b/tasm-lib/src/mmr.rs @@ -3,6 +3,6 @@ pub mod calculate_new_peaks_from_append; pub mod calculate_new_peaks_from_leaf_mutation; pub mod leaf_index_to_mt_index_and_peak_index; pub mod verify_from_memory; -pub mod verify_from_secret_in; +pub mod verify_from_secret_in_secret_leaf_index; pub const MAX_MMR_HEIGHT: usize = 64; diff --git a/tasm-lib/src/mmr/verify_from_secret_in.rs b/tasm-lib/src/mmr/verify_from_secret_in_secret_leaf_index.rs similarity index 94% rename from tasm-lib/src/mmr/verify_from_secret_in.rs rename to tasm-lib/src/mmr/verify_from_secret_in_secret_leaf_index.rs index 5e479069..3de40375 100644 --- a/tasm-lib/src/mmr/verify_from_secret_in.rs +++ b/tasm-lib/src/mmr/verify_from_secret_in_secret_leaf_index.rs @@ -12,9 +12,9 @@ use super::leaf_index_to_mt_index_and_peak_index::MmrLeafIndexToMtIndexAndPeakIn /// Verify that a digest is a leaf in the MMR accumulator. Takes both authentication path and /// leaf index from secret-in. Crashes the VM if the authentication fails. #[derive(Debug, Default, Copy, Clone, Eq, PartialEq, Hash)] -pub struct MmrVerifyLeafMembershipFromSecretIn; +pub struct MmrVerifyFromSecretInSecretLeafIndex; -impl BasicSnippet for MmrVerifyLeafMembershipFromSecretIn { +impl BasicSnippet for MmrVerifyFromSecretInSecretLeafIndex { fn inputs(&self) -> Vec<(DataType, String)> { vec![( DataType::Tuple(vec![ @@ -31,7 +31,7 @@ impl BasicSnippet for MmrVerifyLeafMembershipFromSecretIn { } fn entrypoint(&self) -> String { - "tasmlib_mmr_verify_from_secret_in".into() + "tasmlib_mmr_verify_from_secret_in_secret_leaf_index".into() } // Already on stack (can be secret of public input): _ *peaks leaf_count_hi leaf_count_lo [digest (leaf)] @@ -117,7 +117,7 @@ mod benches { #[test] fn verify_from_secret_in_benchmark() { - ShadowedProcedure::new(MmrVerifyLeafMembershipFromSecretIn).bench(); + ShadowedProcedure::new(MmrVerifyFromSecretInSecretLeafIndex).bench(); } } @@ -155,7 +155,7 @@ mod tests { #[test] fn prop() { for _ in 0..10 { - ShadowedProcedure::new(MmrVerifyLeafMembershipFromSecretIn).test(); + ShadowedProcedure::new(MmrVerifyFromSecretInSecretLeafIndex).test(); } } @@ -163,7 +163,7 @@ mod tests { fn mmra_ap_verify_test_one() { let digest0 = VmHasher::hash(&BFieldElement::new(4545)); let (mmra, _mps) = mmra_with_mps::(1u64, vec![(0, digest0)]); - MmrVerifyLeafMembershipFromSecretIn.prop_verify_from_secret_in_positive_test( + MmrVerifyFromSecretInSecretLeafIndex.prop_verify_from_secret_in_positive_test( &mmra, digest0, 0u64, @@ -180,7 +180,7 @@ mod tests { let (mmr, _mps) = mmra_with_mps::(leaf_count, vec![(0u64, digest0), (1u64, digest1)]); let leaf_index_0 = 0; - MmrVerifyLeafMembershipFromSecretIn.prop_verify_from_secret_in_positive_test( + MmrVerifyFromSecretInSecretLeafIndex.prop_verify_from_secret_in_positive_test( &mmr, digest0, leaf_index_0, @@ -188,7 +188,7 @@ mod tests { ); let leaf_index_1 = 1; - MmrVerifyLeafMembershipFromSecretIn.prop_verify_from_secret_in_positive_test( + MmrVerifyFromSecretInSecretLeafIndex.prop_verify_from_secret_in_positive_test( &mmr, digest1, leaf_index_1, @@ -199,7 +199,7 @@ mod tests { #[test] fn mmra_ap_verify_test_pbt() { let max_size = 19; - let snippet = MmrVerifyLeafMembershipFromSecretIn; + let snippet = MmrVerifyFromSecretInSecretLeafIndex; for leaf_count in 0..max_size { let digests: Vec = random_elements(leaf_count); @@ -275,7 +275,7 @@ mod tests { let real_membership_proof_last = mmr.append(last_leaf); // Positive tests - MmrVerifyLeafMembershipFromSecretIn.prop_verify_from_secret_in_positive_test( + MmrVerifyFromSecretInSecretLeafIndex.prop_verify_from_secret_in_positive_test( &mmr, second_to_last_leaf, second_to_last_leaf_index, @@ -283,7 +283,7 @@ mod tests { .authentication_path .clone(), ); - MmrVerifyLeafMembershipFromSecretIn.prop_verify_from_secret_in_positive_test( + MmrVerifyFromSecretInSecretLeafIndex.prop_verify_from_secret_in_positive_test( &mmr, last_leaf, last_leaf_index, @@ -292,13 +292,13 @@ mod tests { // Negative tests let bad_leaf: Digest = thread_rng().gen(); - MmrVerifyLeafMembershipFromSecretIn.prop_verify_from_secret_in_negative_test( + MmrVerifyFromSecretInSecretLeafIndex.prop_verify_from_secret_in_negative_test( &mmr, bad_leaf, second_to_last_leaf_index, real_membership_proof_second_to_last.authentication_path, ); - MmrVerifyLeafMembershipFromSecretIn.prop_verify_from_secret_in_negative_test( + MmrVerifyFromSecretInSecretLeafIndex.prop_verify_from_secret_in_negative_test( &mmr, bad_leaf, last_leaf_index, @@ -307,7 +307,7 @@ mod tests { } } - impl Procedure for MmrVerifyLeafMembershipFromSecretIn { + impl Procedure for MmrVerifyFromSecretInSecretLeafIndex { fn rust_shadow( &self, stack: &mut Vec, @@ -393,7 +393,7 @@ mod tests { } } - impl MmrVerifyLeafMembershipFromSecretIn { + impl MmrVerifyFromSecretInSecretLeafIndex { fn prepare_state( &self, mmr: &MmrAccumulator, @@ -486,7 +486,7 @@ mod tests { let init_state = self.prepare_state(mmr, claimed_leaf, leaf_index, auth_path.clone()); let expected_final_stack = self.init_stack_for_isolated_run(); test_rust_equivalence_given_complete_state( - &ShadowedProcedure::new(MmrVerifyLeafMembershipFromSecretIn), + &ShadowedProcedure::new(MmrVerifyFromSecretInSecretLeafIndex), &init_state.stack, &[], &init_state.nondeterminism,