Clave privada

De Bitcoin Wiki
Saltar a: navegación, buscar

Una clave privada en el contexto de Bitcoin es un número secreto que permite gastar los bitcoins. Cada dirección Bitcoin tiene asociada una clave privada, almacenada en el archivo monedero de la persona poseedora del saldo. La clave privada está relacionada matemáticamente con la dirección Bitcoin, de tal modo que la dirección Bitcoin se deriva de la clave privada siguiendo unas reglas fijas, mientras que la operación inversa, deducir una clave privada a partir de la dirección Bitcoin, es imposible.

Dado que las claves privadas son la llave que permite gastar los bitcoins, es imprescindible mantenerlas seguras. Las claves privadas pueden guardarse en archivos informáticos, pero al tratarse de simples números pueden también imprimirse en papel. Un ejemplo de herramienta que permite extraer claves privadas del un archivo de monedero es pywallet.

Para crear una transacción con una clave privada, esta debe estar disponible para el programa o servicio que hace pagos Bitcoin accediendo a las claves privadas. Algunas aplicaciones de monedero permiten importar claves privadas sin generar transacciones, mientras que otras aplicaciones y servicios realizan una transferencia del saldo de la clave importada a otra dirección. Cuando se limpia una clave privada de esta manera, se comunica a la red una transacción en la que todo el saldo que estaba asociado a la clave privada importada se envía a otra dirección controlada por la aplicación o servicio.

Un ejemplo de importación de claves privadas mediante el "barrido" completo de su saldo asociado es el método utilizado por la utilidad "Añadir fondos" de Mt. Gox. Tal como ocurre con cualquier otro depósito, existe siempre un peligro de fraude de doble-gasto, por lo que los fondos importados aparecen en la cuenta de usuario de Mt. Gox después de una espera de seis confirmaciones (normalmente en torno a una hora). Por el contrario, el servicio My wallet de BlockChain.info y Bitcoin-Qt proporcionan una utilidad para importar claves privadas incorporándolas al propio monedero, sin necesidad de limpiar el saldo de bitcoins de la clave privada importada.

Ejemplo de clave privada

En Bitcoin, una clave privada es un número de 256 bits, que puede representarse de diversas maneras. A continuación se muestra una clave privada en notación hexadecimal (256 bits, 32 bytes, en formato hexadecimal es una secuencia de 64 caracteres de entre los rangos 0-9 y A-F).

E9 87 3D 79 C6 D8 7D C0 FB 6A 57 78 63 33 89 F4 45 32 13 30 3D A6 1F 20 BD 67 FC 23 3A A3 32 62

Rango de claves privadas válidas

Casi cualquier número de 256 bits es una clave privada válida. En concreto, cualquier valor de 256 bits entre 0x1 y 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141 es una clave privada válida.

El rango válido de claves privadas viene determinado por la normativa de criptografía de curvas elípticas secp256k1 utilizada por Bitcoin.

Formato de importación de monedero Base 58

Cuando se quieren representar las claves privadas en Bitcoin, se puede utilizar un formato más compacto conocido como formato de importación de monedero, que presenta varias ventajas. El formato de importación de monedero es más corto e incorpora dígitos de control para detectar errores, lo cual permite evitar y corregir fallos de transcripción, que serían imposibles de detectar en el formato hexadecimal. El formato de importación de monedero es la notación más habitual para las claves privadas Bitcoin. Las claves privadas asociadas a claves públicas no comprimidas constan de 51 caracteres que comienzan siempre por el número 5. Las claves privadas asociadas a claves públicas comprimidas constan de 52 caracteres y comienzan por una L o K mayúscula. A continuación s emuestra la misma clave privada de antes en formato de importación de monedero:

5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF

Cuando se importa una clave privada, esta corresponde siempre exactamente a una dirección Bitcoin. Cualquier herramienta que lleve a cabo la conversión ha de ser capaz de mostrar la dirección Bitcoin correspondiente. Las reglas matemáticas de conversión son complicadas y es mejor dejar el cálculo en manos de un ordenador, pero todo programa que sepa manejar claves privadas y direcciones Bitcoin deducirá exactamente la misma dirección Bitcoin a partir de una clave privada dada.

La dirección Bitcoin que corresponde la clave privada que hemos usado de ejemplo es: 1CC3X2gu58d6wXUWMffpuzN9JAfTUWu4Kj

Formato mini de claves privadas

Algunas aplicaciones utilizan el formato mini de claves privadas. No todas las claves privadas o direcciones Bitcoin tienen una clave privada mini asociada, sino que han de generarse de una cierta manera para que se pueda asegurar la existencia de una clave privada mini para una dirección dada. La clave privada mini se utiliza en aplicaciones en que los requisitos de espacio son críticos, como los códigos QR en bitcoins físicos. El ejemplo anterior tiene una clave mini, que es:

SzavMBLoXU6kDrqtUVmffv

Resumen

Los Bitcoins enviados a la dirección 1CC3X2gu58d6wXUWMffpuzN9JAfTUWu4Kj pueden ser gastados por cualquiera que conozca la clave privada en cualquiera de los tres formatos. Esto incluye tanto los bitcoins que estén actualmente en la dirección como los bitcoins que se reciban en cualquier momento futuro. La clave privada solamente se necesita para gastar el saldo; no es necesaria para consultarlo. El saldo de una dirección Bitcoin puede ser consultado de manera pública a través de Block Explorer (http://www.blockexplorer.com/address/1CC3X2gu58d6wXUWMffpuzN9JAfTUWu4Kj) sin disponer de la clave privada.

Si se roba o se pierde el acceso exclusivo a una clave privada con un saldo no nulo de bitcoins, el único remedio consiste en apresurarse a gastar ese saldo de inmediato haciendo un pago a otra dirección Bitcoin cuya clave privada esté bien custodiada. Dado que los bitcoins pueden gastarse una sola vez, la clave privada de la dirección que se queda sin saldo se volverá inútil, siempre y cuando no se hagan más pagos a la dirección.

Véase también