Struct akd::proof_structs::UpdateProof
source · pub struct UpdateProof<H: Hasher> {
pub epoch: u64,
pub version: u64,
pub plaintext_value: AkdValue,
pub existence_vrf_proof: Vec<u8>,
pub existence_at_ep: MembershipProof<H>,
pub previous_version_vrf_proof: Option<Vec<u8>>,
pub previous_version_stale_at_ep: Option<MembershipProof<H>>,
pub commitment_proof: Vec<u8>,
}
Expand description
A vector of UpdateProofs are sent as the proof to a history query for a particular key. For each version of the value associated with the key, the verifier must check that:
- the version was included in the claimed epoch,
- the previous version was retired at this epoch,
- the version did not exist prior to this epoch,
- the next few versions (up until the next marker), did not exist at this epoch,
- the future marker versions did not exist at this epoch.
Fields
epoch: u64
The epoch of this record
version: u64
Version at this update
plaintext_value: AkdValue
The plaintext value in question
existence_vrf_proof: Vec<u8>
VRF proof for the label for the current version
existence_at_ep: MembershipProof<H>
Membership proof to show that the key was included in this epoch
previous_version_vrf_proof: Option<Vec<u8>>
VRF proof for the label for the previous version which became stale
previous_version_stale_at_ep: Option<MembershipProof<H>>
Proof that previous value was set to old at this epoch
commitment_proof: Vec<u8>
Proof for commitment value derived from raw AkdLabel and AkdValue
Trait Implementations
sourceimpl<H: Hasher> Clone for UpdateProof<H>
impl<H: Hasher> Clone for UpdateProof<H>
sourceimpl<H: Debug + Hasher> Debug for UpdateProof<H>
impl<H: Debug + Hasher> Debug for UpdateProof<H>
sourceimpl<H: PartialEq + Hasher> PartialEq<UpdateProof<H>> for UpdateProof<H>
impl<H: PartialEq + Hasher> PartialEq<UpdateProof<H>> for UpdateProof<H>
sourcefn eq(&self, other: &UpdateProof<H>) -> bool
fn eq(&self, other: &UpdateProof<H>) -> bool
impl<H: Eq + Hasher> Eq for UpdateProof<H>
impl<H: Hasher> StructuralEq for UpdateProof<H>
impl<H: Hasher> StructuralPartialEq for UpdateProof<H>
Auto Trait Implementations
impl<H> RefUnwindSafe for UpdateProof<H>where
<H as Hasher>::Digest: RefUnwindSafe,
impl<H> Send for UpdateProof<H>
impl<H> Sync for UpdateProof<H>
impl<H> Unpin for UpdateProof<H>where
<H as Hasher>::Digest: Unpin,
impl<H> UnwindSafe for UpdateProof<H>where
<H as Hasher>::Digest: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.