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.

<aside> 💡 See https://github.com/subspace/protocol-specs/blob/main/docs/consensus/proof_of_archival_storage.md for the latest version

</aside>

Contents

Color Legend

Default: Implemented

Green: Implemented, but not merged yet

Blue: Needs to be implemented

Yellow: Unstable, awaits confirmation

Purple: Optimizations not critical to MVP

Essential Primitives

<aside> 💡 See https://github.com/subspace/protocol-specs/blob/main/docs/crypto_primitives.md for the latest version.

</aside>

Hash

Hashes provide succinct commitments to arbitrary data.

hash(message) generally denotes BLAKE2b-256 unless otherwise specified.

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

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.