pub struct BlindingInfo {
pub n_dummy_wires: usize,
pub n_dummy_constraints: usize,
}Expand description
Random padding appended to a committed segment.
The padding is what keeps the segment’s openings independent of its real wires. Every committed segment carries the same amount, so each is padded on its own.
Fields§
§n_dummy_wires: usizeThe number of random dummy wires appended after the segment’s real wires.
n_dummy_constraints: usizeThe number of random dummy multiplication constraints that must be added.
Implementations§
Source§impl BlindingInfo
impl BlindingInfo
Sourcepub const fn for_fri_queries(n_test_queries: usize) -> BlindingInfo
pub const fn for_fri_queries(n_test_queries: usize) -> BlindingInfo
The blinding a committed segment needs when FRI opens it at n_test_queries positions.
Each query opens one Merkle leaf, revealing one codeword symbol of the segment.
A symbol is a fixed linear function of the segment.
So n_test_queries random wires make every opened symbol uniform and independent.
One further wire covers the leaves that are never opened. Their hashes still travel in the authentication paths, and the leaves carry no salt. The spare degree of randomness keeps an unopened leaf unguessable, as a salt would.
Trait Implementations§
Source§impl Clone for BlindingInfo
impl Clone for BlindingInfo
Source§fn clone(&self) -> BlindingInfo
fn clone(&self) -> BlindingInfo
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BlindingInfo
Auto Trait Implementations§
impl Freeze for BlindingInfo
impl RefUnwindSafe for BlindingInfo
impl Send for BlindingInfo
impl Sync for BlindingInfo
impl Unpin for BlindingInfo
impl UnsafeUnpin for BlindingInfo
impl UnwindSafe for BlindingInfo
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more