Claves y Direcciones

¿Cómo envías y recibes bitcoins?

Para enviar y recibir bitcoins, necesitas algún tipo de "número de cuenta" y "contraseña".

En Bitcoin, llamamos a eso clave pública y clave privada.

Diagrama que muestra la clave pública como número de cuenta y la clave privada como contraseña.

Aquí están los datos de tu cuenta. Bienvenido a Bitcoin.

Sin embargo, ese "número de cuenta" es un número incómodamente largo. Así que, para facilitar las cosas, creamos una versión abreviada de esa clave pública, a la que llamamos dirección.

Diagrama que muestra una dirección como otra versión del número de cuenta.

Ya verás lo horrible que es la clave pública en un momento.

Así que, resumiendo:

¿De dónde vienen las claves y las direcciones?

Todas las claves usadas en Bitcoin se generan aleatoriamente en tu computadora.

Clave Privada

Todo empieza con la clave privada, que es simplemente un número generado aleatoriamente:

Ilustración que muestra una clave privada producida por un generador de números aleatorios.

Pero, como ese número es muy grande, normalmente lo mostramos en formato hexadecimal:

Diagrama que muestra una clave privada convertida al formato hexadecimal.

Los números hexadecimales son más cortos que los decimales porque también usan las letras a, b, c, d, e y f.

Y ahí tenemos una clave privada; solo un número grande y aleatorio.

Por ejemplo:

Ejemplo de clave privada.
Clave Privada ef235aacf90d9f4aadd8c92e4b2562e1d9eb97f0df9ba3b508258739cb013db2

No uses la clave privada (ni la dirección) de ejemplo de esta página. Solo la estoy mostrando como ejemplo de cómo se ven. Todas tus claves privadas deben generarse de forma segura en tu propio computador/dispositivo y mantenerse en secreto.

Una clave privada puede ser cualquier número entre 1 y 115792089237316195423570985008687907852837564279074904382605163141518161494336.

Clave Pública

Usas tu clave privada para calcular tu clave pública.

Pero, primero, esa clave pública va a ser vista por otras personas. Así que, cuando usamos la clave privada para crear nuestra clave pública, no queremos que nadie pueda descubrir cuál era nuestra clave privada.

Después de todo, la clave privada protege nuestros bitcoins.

Diagrama que muestra cómo una clave privada se usa para calcular la clave pública, pero no puedes calcular la clave privada a partir de la pública.

No queremos que nadie pueda trabajar hacia atrás, de la clave pública a la clave privada.

Afortunadamente, podemos usar un tipo especial de función matemática para conseguir eso.

Simplemente metemos la clave privada (que al fin y al cabo es un número) dentro de esa función, y la función escupe una clave pública (que es otro número).

Diagrama que muestra una clave privada pasando por una función matemática para producir una clave pública.

Ahora bien, hay dos beneficios en usar esa función en particular:

  1. Existe una conexión matemática entre la clave privada y la clave pública. Eso será útil más adelante, cuando queramos gastar nuestros bitcoins en una transacción.
    Ilustración que muestra cómo la clave privada encaja con la clave pública como una llave y una cerradura tradicionales.
  2. No es posible descubrir la clave privada a partir de la clave pública. Aunque la clave pública se calcule a partir de la clave privada, estamos usando lo que se conoce como una función de "una sola dirección", así que no puedes trabajar hacia atrás de la clave pública para calcular la clave privada.

Y listo; gracias a nuestro número aleatorio y a esa función, ahora tenemos un par de claves que podemos usar para enviar y recibir bitcoins:

Par de claves generado a partir de la clave privada.
Clave Privada ef235aacf90d9f4aadd8c92e4b2562e1d9eb97f0df9ba3b508258739cb013db2
Clave Pública 02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737

Dirección

Esa clave pública es horrible, ¿verdad? A nadie le va a gustar teclear eso.

Así que vamos a hacerla un poco más bonita y la llamaremos dirección.

Diagrama que muestra una clave pública siendo convertida en un formato de dirección más corto.

Menos mal.

Todo lo que hicimos aquí fue comprimir la clave pública (usando funciones de hash) y convertirla a un formato que no usa ningún carácter parecido a otro cuando se escribe (llamado Base58).

Así que todavía no es el dato más corto y bonito que hayas visto, pero es una mejora.

Y eso es todo lo que es una dirección: una versión más corta de la clave pública:

Ejemplo que muestra la relación entre clave privada, clave pública y dirección.
Clave Privada ef235aacf90d9f4aadd8c92e4b2562e1d9eb97f0df9ba3b508258739cb013db2
Clave Pública 02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737
Dirección 1EUXSxuUVy2PC5enGXR1a3yxbEjNWMHuem

También es imposible trabajar hacia atrás, de la dirección a la clave pública. Esto se debe al uso de funciones hash al comprimir la clave pública.

¿Tengo que recordar las 3 claves?

Como tu clave pública y tu dirección se calculan a partir de tu clave privada, puedes arreglártelas guardando solo tu clave privada.

Diagrama que muestra la clave privada como fuente de la clave pública y la dirección.

Entonces, en el peor de los casos, si algún día necesitas enviar tu dirección a alguien, basta con calcularla a partir de tu clave privada.

Probablemente usarás una billetera, así que gestionar claves privadas y direcciones individuales no es realmente un problema. Lo único que necesitas mantener seguro al usar una billetera es tu semilla.

¿Qué pasa si pierdo mi clave privada?

Bueno, entonces estás fu…ndamentalmente perdido.

Es imposible descubrir tu clave privada a partir de tu clave pública o de la dirección, así que, si pierdes tu clave privada, se acabó.

Diagrama que muestra cómo no se puede trabajar hacia atrás, desde una dirección o clave pública, hasta la clave privada.

No puedes calcular tu clave privada a partir de tu dirección o clave pública.

Y si no tienes la clave privada de una dirección, cualquier bitcoin situado en esa dirección quedará bloqueado allí para siempre.

¿Qué te parece esa seguridad?

Puede parecer un sistema implacable, y lo es.

Por otro lado, resulta tranquilizador saber que no hay puertas traseras para tu dinero. Solo existe una clave para tus bitcoins, y tú estás al mando.

Ilustración de alguien intentando llamar al soporte de Bitcoin después de perder la clave privada.