package tezos-crypto-dal

  1. Overview
  2. Docs
type t = t

A precomputed set of constants

type parameters = parameters = {
  1. redundancy_factor : int;
  2. page_size : int;
  3. slot_size : int;
  4. number_of_shards : int;
}

Parameters to build a value of type t

val parameters_encoding : parameters Data_encoding.t

An encoding for values of type parameters.

val make : parameters -> (t, [> `Fail of string ]) result

make precomputes the set of values needed by the cryptographic primitives defined in this module and stores them in a value of type t

val parameters : t -> parameters

parameters t returns the parameters given when t was initialised with the function make

type commitment = commitment

Commitment to a polynomial.

type commitment_proof = commitment_proof

A proof that the polynomial associated to some commitment is bounded by a constant.

val verify_commitment : t -> commitment -> commitment_proof -> bool

verify_commitment t commitment proof checks whether commitment is valid. In particular, it checks that the size of the data committed via commitment does not exceed t.slot_size. The verification time is constant.

Fails if the size of the srs on the group G2 is too small.

type page = bytes

The original slot can be split into a list of pages of fixed size. This size is given by the parameter page_size given to the function make.

type page_proof = page_proof

A proof that the evaluation of points of a polynomial is part of a commitment.

val page_proof_encoding : page_proof Data_encoding.t

An encoding for the proof of a page.

val pages_per_slot : parameters -> int

pages_per_slot t returns the number of expected pages per slot.

val verify_page : t -> commitment -> page_index:int -> page -> page_proof -> (bool, [> `Segment_index_out_of_range | `Page_length_mismatch ]) Result.t

verify_page t srs commitment page page_proof returns Ok true if the proof certifies that the slot_page is indeed included in the slot committed with commitment commitment. Returns Ok false otherwise.

Fails if the index of the page is out of range or if the page is not of the expected length page_size given for the initialisation of t.

OCaml

Innovation. Community. Security.