Cryptography Explainer

This is a high-level overview of the cryptography used in Setheum.
This is a high-level overview of the cryptography used in Setheum. It assumes that you have some knowledge about cryptographic primitives that are used in blockchains generally such as hashes, elliptic curve cryptography (ECC), and public-private keypairs.
For detailed descriptions on the cryptography used please see the more advanced research wiki.

Hashing Algorithm

The hashing algorithm used in Setheum is Blake2b. Blake2 is considered to be a very fast cryptographic hash function that is also used in Polkadot and in the cryptocurrency Zcash.

Keypairs and Signing

Setheum and Polkadot uses Schnorrkel/Ristretto x25519 ("sr25519") as their key derivation and signing algorithm.
Sr25519 is based on the same underlying Curve25519 as its EdDSA counterpart, Ed25519. However, it uses Schnorr signatures instead of the EdDSA scheme. Schnorr signatures bring some noticeable benefits over the ECDSA/EdDSA schemes. For one, it is more efficient and still retains the same feature set and security assumptions. Additionally, it allows for native multisignature through signature aggregation.
The names Schnorrkel and Ristretto come from the two Rust libraries that implement this scheme, the Schnorrkel library for Schnorr signatures and the Ristretto library that makes it possible to use cofactor-8 curves like Curve25519.