Criptografía

Bitxor utiliza la criptografía de curva elíptica para verificar la integridad de los datos y autenticar la identidad de un firmante.

Par de claves

La criptografía de curva elíptica se basa en los “pares de claves�? una clave privada y una clave pública correspondiente. En particular, Bitxor utiliza la curva elíptica retorcida con el algoritmo de firma digital llamado Ed25519 y el algoritmo de hash SHA-512:

  • Clave privada: Un número entero aleatorio de 256 bits (32 bytes) utilizado para firmar entidades conocidas por el propietario.

  • Clave pública: Un número entero de 256 bits (32 bytes) derivado de la clave privada. Sirve como identificador público del par de claves y puede ser difundido ampliamente. Se utiliza para demostrar que una entidad fue firmada con la clave privada emparejada.

La clave pública se puede derivar de la clave privada, pero no al revés.

Claves de Bitxor

Los pares de claves se utilizan en Bitxor en diferentes lugares, con diferentes propósitos. Aquí se presenta un resumen de las claves utilizadas:

  • Principal: Este par de claves gestiona una cuenta “regular�? que contiene activos como tokens o espacios de nombres.

  • Remota: Este par de claves gestiona la cuenta remota utilizada en la cosecha remota.

  • VRF: Requerido para la cosecha.

  • Votación: Requerido para los nodos que participan en el proceso de finalización.

  • Transporte: Este par de claves es utilizado por los nodos para el transporte seguro a través de TLS.

Note

Como regla general, la clave privada en cualquier par de claves debe mantenerse en secreto en todo momento. Sin embargo, ¿qué tan grave es que se robe una clave privada?

Clave

Severidad

Impacto

Principal

🔴 ALTO

Los fondos podrían ser transferidos a otra cuenta.

Remota

🟠 MEDIO

No causa daño a la cuenta ni al nodo. Puede revertirse fácilmente vinculando otra cuenta remota. Un atacante que capture un gran número de claves remotas podría obtener una gran cantidad de poder de cosecha, influyendo en qué bloques se añaden a la cadena de bloques.

VRF

🟡 BAJO

No causa daño sin la clave utilizada para la cosecha.

Votación

🟠 MEDIO

No causa daño a la cuenta ni al nodo. Puede revertirse fácilmente vinculando otra cuenta de votación. Un atacante que capture más del 50% de las claves de votación de la red podría influir en la finalización de bloques.

Transporte

🟡 BAJO

Un atacante podría robar las delegaciones de cosecha del nodo, pero en general no causa daño.

Firma

Todas las transacciones se firman utilizando una clave privada, lo que produce firmas de 512 bits (64 bytes).

Como parte del flujo de trabajo regular del protocolo, las firmas se validan utilizando la clave pública correspondiente. Esto garantiza la autenticidad del firmante de una entidad.

Dirección

Las claves públicas de Bitxor se pueden compartir en una forma más corta conocida como “direcciones�?

En primer lugar, se construye una dirección cruda de 24 bytes, que consta de:

  • Una identificación de red (2 bytes).

  • Un hash de 160 bits (20 bytes) de la clave pública de la cuenta.

  • Una suma de comprobación de 2 bytes, para permitir el reconocimiento rápido de direcciones con errores de escritura.

Sin embargo, la dirección cruda es incómoda de usar debido a que es una matriz binaria, por lo que generalmente se codifica en Base32 en una cadena de texto de 39 caracteres llamada “dirección codificada�?o simplemente “dirección�?

Finalmente, para una lectura más fácil, se pueden agregar guiones cada 6 caracteres para crear una “dirección legible�?

Ejemplos:

Dirección cruda

0x20,0xD0,0x44,0xED,0xC3,0xDC,0x8B,0x86...

24 bytes

Dirección

BXREJ3OD3SFYNZCQUSEWKY4NRRZUI5LMJPSVLPQ

39 caracteres

Dirección legible

BXREJ3-OD3SFY-NZCQUS-EWKY4N-RRZUI5-LMJPSV-LPQ

45 caracteres

Es posible crear una dirección sin interactuar con la cadena de bloques. De hecho, la cadena de bloques solo registra direcciones y claves públicas cuando aparecen por primera vez en una transacción.

Billeteras HD y Mnemónicos

Las “Billeteras Determinísticas Jerárquicas�?(HD-Wallets, por sus siglas en inglés) pueden derivar una serie de cuentas a partir de una sola cuenta semilla. Esto permite manejar un grupo de cuentas utilizando un solo par de claves, lo que simplifica enormemente su gestión:

  • Solo una clave para proteger.

  • Se pueden almacenar varias cuentas en un solo código QR o “frase mnemónica�?

Una “Frase Mnemónica�?es una representación amigable para los humanos de una clave privada, compuesta por 24 palabras en inglés aleatorias. A veces se utilizan frases mnemónicas en lugar de claves privadas, ya que son más fáciles de recordar y anotar para los humanos.

Sin embargo, son equivalentes a las claves privadas, por lo que es fundamental que se mantengan en secreto en todo momento. Esto es aún más importante en la billetera de escritorio de Bitxor, donde la frase mnemónica codifica la clave de la cuenta semilla.