Clave Privada
Un número aleatorio muy grande
Una clave privada es un número aleatorio muy grande. Se usa como fuente para crear una clave pública.
Generando
¿Cómo creas una clave privada?
Para crear una clave privada, solo necesitas generar un número aleatorio de 256 bits. La parte crítica es usar una fuente confiable de aleatoriedad. En Linux, una fuente confiable es /dev/urandom.
Rango de la clave privada
Una clave privada válida es cualquier número entre 1 y n−1, donde n es el número de puntos en la curva elíptica usada en Bitcoin (secp256k1):
máx: 115792089237316195423570985008687907852837564279074904382605163141518161494336 Ese valor es ligeramente menor que el máximo posible para un número de 256 bits. Así que, al generar un número aleatorio de 32 bytes, comprueba que no esté por encima del máximo antes de usarlo.
Números aleatorios criptográficamente seguros
Las funciones de números aleatorios estándar de los lenguajes de programación (como rand()) normalmente no son lo bastante seguras para generar claves privadas. Busca cómo generar "números aleatorios criptográficamente seguros" en tu lenguaje.
Por ejemplo, la biblioteca libbitcoin (la herramienta bx seed) causó la pérdida de más de US$ 900.000 en bitcoin en 2023 por no usar números aleatorios criptográficamente seguros (caso "Milk Sad").
Formatos
¿Cómo es una clave privada?
Decimal
Una clave privada, en última instancia, es solo un número aleatorio, así que es perfectamente válido almacenarla como un número decimal.
Hexadecimal (el más común)
Normalmente verás claves privadas mostradas como cadenas hexadecimales de 32 bytes. Es el mismo número aleatorio, solo una forma distinta de mostrarlo.
Conversor de Números
WIF (Wallet Import Format)
Una clave privada puede convertirse a WIF (Wallet Import Format) por comodidad. Es como un formato de dirección para claves privadas, a veces usado al importar una clave en una cartera (por ejemplo, Electrum):
WIF
Uso
¿Para qué sirve la clave privada?
La clave privada se usa para dos cosas: crear la clave pública (por multiplicación de curva elíptica) y crear firmas que desbloquean los bitcoins bloqueados a esa clave pública.