c

sparkz.crypto.authds.avltree.batch

BatchAVLVerifier

class BatchAVLVerifier[D <: Digest, HF <: CryptographicHash[D]] extends AuthenticatedTreeOps[D] with ToStringHelper

Implements the batch AVL verifier from https://eprint.iacr.org/2016/994

Linear Supertypes
AuthenticatedTreeOps[D], ToStringHelper, SparkzEncoding, BatchProofConstants, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BatchAVLVerifier
  2. AuthenticatedTreeOps
  3. ToStringHelper
  4. SparkzEncoding
  5. BatchProofConstants
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BatchAVLVerifier(startingDigest: ADDigest, proof: SerializedAdProof, keyLength: Int, valueLengthOpt: Option[Int], maxNumOperations: Option[Int] = None, maxDeletes: Option[Int] = None)(implicit hf: HF = Blake2b256)

    keyLength

    - length of keys in tree

    valueLengthOpt

    - length of values in tree. None if it is not fixed

    maxNumOperations

    - option the maximum number of operations that this proof can be for, to limit running time in case of malicious proofs. If None, running time limits will not be enforced.

    maxDeletes

    - at most, how many of maxNumOperations can be deletions; for a tighter running time bound and better attack protection. If None, defaults to maxNumOperations.

    hf

    - hash function

Type Members

  1. type ChangeHappened = Boolean
    Definition Classes
    AuthenticatedTreeOps
  2. type HeightIncreased = Boolean
    Definition Classes
    AuthenticatedTreeOps
  3. type ToDelete = Boolean
    Definition Classes
    AuthenticatedTreeOps

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val EndOfTreeInPackagedProof: Byte
    Definition Classes
    BatchProofConstants
  5. val LabelInPackagedProof: Byte
    Definition Classes
    BatchProofConstants
  6. val LeafInPackagedProof: Byte
    Definition Classes
    BatchProofConstants
  7. val NegativeInfinityKey: ADKey
    Attributes
    protected
    Definition Classes
    AuthenticatedTreeOps
  8. val PositiveInfinityKey: ADKey
    Attributes
    protected
    Definition Classes
    AuthenticatedTreeOps
  9. def addNode(r: Leaf[D], key: ADKey, v: ADValue): InternalVerifierNode[D]

    returns

    - A new verifier node with two leaves: r on the left and a new leaf containing key and value on the right

    Attributes
    protected
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  10. def arrayToString(a: Array[Byte]): String
    Attributes
    protected
    Definition Classes
    ToStringHelper
  11. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  12. val changedNodesBuffer: ArrayBuffer[ProverNodes[D]]

    Sequence of leafs and internal nodes that where likely by modified after last proof generation

    Sequence of leafs and internal nodes that where likely by modified after last proof generation

    Attributes
    protected
    Definition Classes
    AuthenticatedTreeOps
  13. val changedNodesBufferToCheck: ArrayBuffer[ProverNodes[D]]

    Nodes that may, or may not be mofidied after last proof generation

    Nodes that may, or may not be mofidied after last proof generation

    Attributes
    protected
    Definition Classes
    AuthenticatedTreeOps
  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  15. val collectChangedNodes: Boolean
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  16. def digest: Option[ADDigest]

    Returns Some[the current digest of the authenticated data structure], where the digest contains the root hash and the root height Returns None if the proof verification failed at construction or during any of the operations.

    Returns Some[the current digest of the authenticated data structure], where the digest contains the root hash and the root height Returns None if the proof verification failed at construction or during any of the operations.

    returns

    - Some[digest] or None

  17. def digest(rootNode: Node[D]): ADDigest

    The digest consists of the label of the root node followed by its height, expressed as a single (unsigned) byte

    The digest consists of the label of the root node followed by its height, expressed as a single (unsigned) byte

    Attributes
    protected
    Definition Classes
    AuthenticatedTreeOps
  18. implicit val encoder: SparkzEncoder
    Definition Classes
    SparkzEncoding
  19. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  21. def extractFirstNode(extractor: (VerifierNodes[D]) ⇒ Boolean): Option[VerifierNodes[D]]
  22. def extractNodes(extractor: (VerifierNodes[D]) ⇒ Boolean): Option[Seq[VerifierNodes[D]]]
  23. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  24. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  25. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  26. val keyLength: Int
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  27. def keyMatchesLeaf(key: ADKey, r: Leaf[D]): Boolean

    Determines if the leaf r contains the key or if r.key < r < r.nextLeafKey If neither of those holds, causes an exception.

    Determines if the leaf r contains the key or if r.key < r < r.nextLeafKey If neither of those holds, causes an exception.

    Attributes
    protected
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  28. val labelLength: Int
    Attributes
    protected
  29. def logError(t: Throwable): Unit

    Default implementation of error logging.

    Default implementation of error logging.

    Attributes
    protected
  30. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  31. def nextDirectionIsLeft(key: ADKey, r: InternalNode[D]): Boolean

    Figures out whether to go left or right when from node r when searching for the key, using the appropriate bit in the directions bit string from the proof

    Figures out whether to go left or right when from node r when searching for the key, using the appropriate bit in the directions bit string from the proof

    returns

    - true if to go left, false if to go right in the search

    Attributes
    protected
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  32. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  33. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  34. def onNodeVisit(n: Node[D], operation: Operation, isRotate: Boolean = false): Unit
    Attributes
    protected
    Definition Classes
    AuthenticatedTreeOps
  35. def performOneOperation(operation: Operation): Try[Option[ADValue]]

    If operation.key exists in the tree and the operation succeeds, returns Success(Some(v)), where v is the value associated with operation.key before the operation.

    If operation.key exists in the tree and the operation succeeds, returns Success(Some(v)), where v is the value associated with operation.key before the operation. If operation.key does not exists in the tree and the operation succeeds, returns Success(None). Returns Failure if the operation fails or the proof does not verify. After one failure, all subsequent operations will fail and digest is None.

    returns

    - Success(Some(old value)), Success(None), or Failure

  36. def replayComparison: Int

    Deletions go down the tree twice -- once to find the leaf and realize that it needs to be deleted, and the second time to actually perform the deletion.

    Deletions go down the tree twice -- once to find the leaf and realize that it needs to be deleted, and the second time to actually perform the deletion. This method will re-create comparison results using directions in the proof and lastRightStep variable. Each time it's called, it will give the next comparison result of key and node.key, where node starts at the root and progresses down the tree according to the comparison results.

    returns

    - result of previous comparison of key and relevant node's key

    Attributes
    protected
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  37. def returnResultOfOneOperation(operation: Operation, rootNode: Node[D]): Try[(Node[D], Option[ADValue])]
    Attributes
    protected
    Definition Classes
    AuthenticatedTreeOps
  38. var rootNodeHeight: Int
    Attributes
    protected
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  39. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  40. def toString(): String
    Definition Classes
    BatchAVLVerifier → AnyRef → Any
  41. val valueLengthOpt: Option[Int]
    Definition Classes
    BatchAVLVerifierAuthenticatedTreeOps
  42. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  44. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from AuthenticatedTreeOps[D]

Inherited from ToStringHelper

Inherited from SparkzEncoding

Inherited from BatchProofConstants

Inherited from AnyRef

Inherited from Any

Ungrouped