Nullifier Key
A secret value used to assign ownership to a resource.
{-# OPTIONS --without-K #-} module Goose.Anoma.NullifierKey where open import Foundation.BasicTypes
Nullifier Key
data NullifierKey : Set where universal : NullifierKey secret : ℕ → NullifierKey
Nullifier Key Commitment
Commitment to a nullifier key used to prove ownership without revealing the key.
data NullifierKeyCommitment : Set where universal : NullifierKeyCommitment ofSecret : ℕ → NullifierKeyCommitment
Nullifier Key Matches Commitment
Proof that a NullifierKey matches a NullifierKeyCommitment.
data NullifierKeyMatchesCommitment : NullifierKey → NullifierKeyCommitment → Set where universal : NullifierKeyMatchesCommitment universal universal secret : {n m : ℕ} → n ≡ m → NullifierKeyMatchesCommitment (secret n) (ofSecret m)
Decidable Nullifier Key Check
checkNullifierKey : (key : NullifierKey) → (nfc : NullifierKeyCommitment) → Dec (NullifierKeyMatchesCommitment key nfc) checkNullifierKey universal universal = yes universal checkNullifierKey universal (ofSecret _) = no (λ ()) checkNullifierKey (secret _) universal = no (λ ()) checkNullifierKey (secret n) (ofSecret m) with n ≟ℕ m ... | yes p = yes (secret p) ... | no ¬p = no (λ { (secret p) → ¬p p })
Nullifier Key Commitment Function
Computes the commitment of a NullifierKey.
commitment : NullifierKey → NullifierKeyCommitment commitment universal = universal commitment (secret s) = ofSecret s
Module References
Referenced By
This module is referenced by:
- Goose.Anoma.Compliance
- Symbols: NullifierKey
- Goose.Anoma.Resource
References
This module references: