package octez-libs

  1. Overview
  2. Docs
A package that contains multiple base libraries used by the Octez suite

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-octez-v20.1.tag.bz2
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65

doc/tezos_context_disk/Tezos_context_disk/Context_binary/Proof/Stream/index.html

Module Proof.Stream

Stream proofs represent an explicit traversal of a Merle tree proof. Every element (a node, a value, or a shallow pointer) met is first "compressed" by shallowing its children and then recorded in the proof.

As stream proofs directly encode the recursive construction of the Merkle root hash is slightly simpler to implement: verifier simply need to hash the compressed elements lazily, without any memory or choice.

Moreover, the minimality of stream proofs is trivial to check. Once the computation has consumed the compressed elements required, it is sufficient to check that no more compressed elements remain in the proof.

However, as the compressed elements contain all the hashes of their shallow children, the size of stream proofs is larger (at least double in size in practice) than tree proofs, which only contains the hash for intermediate shallow pointers.

type elt =
  1. | Value of bytes
  2. | Node of (string * [ `Value of Tezos_base.TzPervasives.Context_hash.t | `Node of Tezos_base.TzPervasives.Context_hash.t ]) list
  3. | Inode of Tezos_base.TzPervasives.Context_hash.t Tezos_context_sigs__Context.Proof_types.inode
  4. | Inode_extender of Tezos_base.TzPervasives.Context_hash.t Tezos_context_sigs__Context.Proof_types.inode_extender

The type for elements of stream proofs.

Value v is a proof that the next element read in the store is the value v.

Node n is a proof that the next element read in the store is the node n.

Inode i is a proof that the next element read in the store is the inode i.

Inode_extender e is a proof that the next element read in the store is the node extender e.

The type for stream proofs.

The sequence e_1 ... e_n proves that the e_1, ..., e_n are read in the store in sequence.

OCaml

Innovation. Community. Security.