Cryptographic data types
Tezos provides hash functions for cryptographic purposes.
By default, use BLAKE2B
, which computes a cryptographic hash of the value contents using the Blake2b-256 cryptographic hash function.
These other hash functions are available:
KECCAK
: Compute a cryptographic hash of the value contents using the Keccak-256 cryptographic hash function.SHA256
: Compute a cryptographic hash of the value contents using the Sha256 cryptographic hash function.SHA512
: Compute a cryptographic hash of the value contents using the Sha512 cryptographic hash function.SHA3
: Compute a cryptographic hash of the value contents using the SHA3-256 cryptographic hash function.
Checking signatures
Tezos lets you check that a given piece of data, a sequence of bytes in a bytes
data type, has been signed by the holder of the private key corresponding to a given public key.
The primitive CHECK_SIGNATURE
takes as parameters the sequence of bytes, the signature
and the public key
, and returns a Boolean that indicates if the signature
is indeed a signature
of that sequence of bytes, by the holder of ths key.
BLS12-381 primitives
BLS12-381 is the name of an elliptic curve, a cryptographic primitive that can be used for digital signatures
and zero-knowledge proofs.
It has the particularity of being pairing-friendly, which makes it possible to create short digital signatures
that can be efficiently aggregated.
It can also be used for identity-based cryptography, single-round multi-party key exchanges, or and efficient polynomial commitment schemes such as KZG commitments.
Implementation details
- Michelson: Cryptographic primitives, BLS12-381 primitives
- LIGO: Crypto
- Archetype: Blake2b and related, Elliptic curves
- SmartPy: Cryptography
- Taquito: Signing data
Time-locks
A timelock
is a cryptographic primitive that can be used as part of a commit-and-reveal scheme, to provide a guarantee that the information associated to the commit is eventually revealed.
For information about using time-locks, see Timelocks.