package octez-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/octez-libs.crypto-dal/Tezos_crypto_dal/Cryptobox/Verifier/index.html
Module Cryptobox.Verifier
Source
Parameters to build a value of type t
An encoding for values of type parameters
.
make
precomputes the set of values needed by the cryptographic primitives defined in this module and stores them in a value of type t
parameters t
returns the parameters given when t
was initialised with the function make
Commitment to a polynomial.
A proof that the polynomial associated to some commitment is bounded by a constant.
verify_commitment t commitment proof
returns true
if and only if the size of the data committed via commitment
does not exceed the slot_size
declared in t
.
The verification time is constant.
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
.
A proof that the evaluation of points of a polynomial is part of a commitment.
An encoding for the proof of a page.
pages_per_slot t
returns the number of expected pages per slot.
val verify_page :
t ->
commitment ->
page_index:int ->
page ->
page_proof ->
(unit,
[> `Invalid_degree_strictly_less_than_expected of
(int, int) error_container
| `Invalid_page
| `Page_length_mismatch
| `Page_index_out_of_range ])
Result.t
verify_page t commitment ~page_index page proof
returns Ok ()
if the proof
certifies that the page
is the page_index
-th page of the slot with the given commitment
.
Fails with:
Error `Invalid_page
if the verification FailsError `Invalid_degree_strictly_less_than_expected _
if the SRS contained int
is too small to proceed with the verificationError `Page_length_mismatch
if the page is not of the expected lengthpage_size
given for the initialisation oft
Error `Page_index_out_of_range
ifpage_index
is out of the range0, slot_size/page_size - 1
whereslot_size
andpage_size
are given for the initialisation oft
Ensures:
verify_page t commitment ~page_index page proof = Ok ()
if and only ifpage = Bytes.sub slot (page_index * t.page_size) t.page_size
),proof = prove_page t polynomial page_index
,p = polynomial_from_slot t slot
, andcommitment = commit t p
.