Este es un resumen de alto nivel de la criptografía utilizada en Polkadot. Asume que tienes algún conocimiento sobre las primitivas criptográficas que se utilizan generalmente en las blockchains como los hashes, la criptografía de curva elíptica (ECC), y los pares de claves públicas-privadas.
Para descripciones detalladas sobre la criptografía utilizada en Polkadot, por favor mira la wiki de investigación más avanzada.
Algoritmo de hash #
El algoritmo de hashing utilizado en Polkadot es Blake2b. Blake2 se considera una función hash criptográfica muy rápida que también se utiliza en la criptomoneda Zcash.
Pares de Claves y Firma #
Polkadot utiliza Schnorrkel/Ristretto x25519 (“sr25519”) como algoritmo de derivación y firma de claves.
Sr25519 se basa en el mismo Curve25519 subyacente que su homólogo EdDSA, Ed25519. Sin embargo, utiliza firmas Schnorr en lugar del esquema EdDSA. Las firmas Schnorr aportan algunas ventajas notables sobre los esquemas ECDSA/EdDSA. Por un lado, es más eficiente y sigue manteniendo el mismo conjunto de características y supuestos de seguridad. Además, permite la multifirma nativa mediante la agregación de firmas.
Los nombres Schnorrkel y Ristretto provienen de las dos bibliotecas de Rust que implementan este esquema, la biblioteca Schnorrkel para firmas Schnorr y la biblioteca Ristretto que hace posible el uso de curvas cofactor-8 como Curve25519.