package tezos-protocol-014-PtKathma

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

The Proof module wraps the more specific proof types provided earlier in this file into the inbox proof as it is required by a refutation.

type starting_point = {
  1. inbox_level : Raw_level_repr.t;
  2. message_counter : Tezos_protocol_environment_014_PtKathma.Z.t;
}

An inbox proof has three parameters:

  • the message, of type Sc_rollup_PVM_sem.input option ;
  • and a reference inbox.

A valid inbox proof implies the following semantics: beginning at starting_point and reading forward through inbox, the first message you reach will be message.

Usually this is very simple because there will actually be a message at the location specified by starting_point. But in some cases starting_point is past the last message within a level, and then the inbox proof must prove that and also provide another proof starting at the beginning of the next level. This can in theory happen across multiple levels if they are empty, which is why we need a list skips of sub-inboxes.

TODO #2997: an issue to fix the problem of unbounded inbox proofs if the list below can be arbitrarily long (if there are many consecutive empty levels).

See the docstring for

for details of proof semantics.

valid starting_point inbox proof will return the third parameter of the proof, message, iff the proof is valid.

TODO #2997 Currently a placeholder, needs implementation.

produce_proof inbox (level, counter) creates an inbox proof proving the first message after the index counter at location level. This will fail if the inbox given doesn't have sufficient data (it needs to be run on an inbox with the full history).

OCaml

Innovation. Community. Security.