Module Make.Timelock

Contains a value (the decryption of the ciphertext) that can be provably recovered in time sequential operation or with the rsa secret.

val chest_encoding : chest Data_encoding.t

Provably opens a chest in a short time.

val chest_key_encoding : chest_key Data_encoding.t
type opening_result = Mavryk_crypto.Timelock.opening_result =
  1. | Correct of Bytes.t
  2. | Bogus_opening

Result of the opening of a chest. The opening can fail if one provides a false unlocked_value or unlocked_proof, in which case we return Bogus_opening and the provider of the chest key is at fault. Otherwise we return Correct payload where payload was what had originally been put in the chest.

val open_chest : chest -> chest_key -> time:int -> opening_result

Takes a chest, chest key and time and tries to recover the underlying plaintext. See the documentation of opening_result.

val get_plaintext_size : chest -> int

Gives the size of the underlying plaintext in a chest in bytes. Used for gas accounting