Disclaimer: This is a work in progress. While we do not expect it to change significantly, the details, especially parameter values, may change. As such, concrete values and details described here may not reflect the current state of the codebase.

Contents

Color legend

Default: Implemented

Green: Implemented locally, not merged yet

Blue: Needs to be implemented.

Yellow: Unstable, changed recently, awaits confirmation.

Purple: Optimizations not critical to MVP

Essential Primitives

Hash

Hashes provide succinct commitments to arbitrary data.

Hash(message, key) denotes a keyed BLAKE2b-256 hash.

Hash(message) denotes BLAKE2b-256, the default case when the key is empty.

Substrate primitives (i.e., block hashing) use BLAKE2b-256 as well.

Digital Signature

Digital signatures secure different parts of consensus by providing a means of authentication. Currently, we use Schnorr (with the schnorrkel library).