pub struct HierarchicalCommitment<const M: usize, const N: usize, const D: usize> { /* private fields */ }
Expand description
Two-layer commitment structure with inner and outer commitments
- M: Size of commitment output
- N: Size of witness vector
- D: Degree of the polynomials
Implementations§
Source§impl<const M: usize, const N: usize, const D: usize> HierarchicalCommitment<M, N, D>
impl<const M: usize, const N: usize, const D: usize> HierarchicalCommitment<M, N, D>
Sourcepub fn new(
params: AjtaiParameters,
inner_matrix: RqMatrix<M, N, D>,
outer_matrix: RqMatrix<M, N, D>,
decomp_params: DecompositionParameters,
) -> Result<Self, HierarchicalError>
pub fn new( params: AjtaiParameters, inner_matrix: RqMatrix<M, N, D>, outer_matrix: RqMatrix<M, N, D>, decomp_params: DecompositionParameters, ) -> Result<Self, HierarchicalError>
Creates a new hierarchical commitment scheme with separate matrices for inner and outer commitments Both schemes use the same AjtaiParameters for consistent security
Sourcepub fn commit_batch(
&self,
witnesses: &[RqVector<N, D>],
) -> Result<HierarchicalProof<M, N, D>, HierarchicalError>
pub fn commit_batch( &self, witnesses: &[RqVector<N, D>], ) -> Result<HierarchicalProof<M, N, D>, HierarchicalError>
Commits to a batch of witnesses using the hierarchical structure This creates both inner commitments for each witness and an outer commitment that summarizes them all, providing a more compact representation
Sourcepub fn verify(
&self,
proof: &HierarchicalProof<M, N, D>,
) -> Result<(), HierarchicalError>
pub fn verify( &self, proof: &HierarchicalProof<M, N, D>, ) -> Result<(), HierarchicalError>
Verifies a hierarchical proof This ensures:
- All inner commitments match their openings
- The decomposed parts match what’s stored in the proof
- The outer commitment correctly summarizes the inner commitments
- The outer commitment matches its opening
Sourcepub fn inner_scheme(&self) -> &AjtaiCommitment<M, N, D>
pub fn inner_scheme(&self) -> &AjtaiCommitment<M, N, D>
Returns a reference to the inner commitment scheme
Sourcepub fn outer_scheme(&self) -> &AjtaiCommitment<M, N, D>
pub fn outer_scheme(&self) -> &AjtaiCommitment<M, N, D>
Returns a reference to the outer commitment scheme
Sourcepub fn decomp_params(&self) -> &DecompositionParameters
pub fn decomp_params(&self) -> &DecompositionParameters
Returns a reference to the decomposition parameters
Trait Implementations§
Auto Trait Implementations§
impl<const M: usize, const N: usize, const D: usize> Freeze for HierarchicalCommitment<M, N, D>
impl<const M: usize, const N: usize, const D: usize> RefUnwindSafe for HierarchicalCommitment<M, N, D>
impl<const M: usize, const N: usize, const D: usize> Send for HierarchicalCommitment<M, N, D>
impl<const M: usize, const N: usize, const D: usize> Sync for HierarchicalCommitment<M, N, D>
impl<const M: usize, const N: usize, const D: usize> Unpin for HierarchicalCommitment<M, N, D>
impl<const M: usize, const N: usize, const D: usize> UnwindSafe for HierarchicalCommitment<M, N, D>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more