Saltar al contenido
Ultimas Noticias de Criptomonedas Bitcoin, Ethereum, XRP

Comprender sus claves de Bitcoin: palabras semilla de Bip39

marzo 8, 2024
comprender-sus-claves-de-bitcoin:-palabras-semilla-de-bip39

La base de la soberanía propia de Bitcoin es tener control sobre sus claves privadas. Sin esto, de una forma u otra, estás cediendo el control de tu dinero a otra persona. “Ni tus llaves, ni tus monedas”, como dice el refrán. Un aspecto contrario a la intuición de Bitcoin para las personas que no están familiarizadas con sus fundamentos técnicos es «dónde» está realmente su Bitcoin. Cuando la gente piensa en una billetera, piensa en «el lugar donde guardo mi dinero». tu billetera bitcoin en realidad no «retiene» su Bitcoin, solo almacena sus claves privadas. Su Bitcoin son solo entradas de datos en la cadena de bloques alojada por todos los que participan en la red. Cuando vas a gastar tus bitcoins, lo que en realidad estás haciendo es proponer una actualización de los datos almacenados en la cadena de bloques. Una clave privada es la forma en que el protocolo garantiza que usted, y sólo usted, pueda autorizar una actualización de la cadena de bloques que gasta sus Bitcoin.

Entonces, ¿cuáles son tus claves privadas? Sólo números muy grandes. Extremadamente largo. Esta es una clave privada en binario:

1110001011011001011110111100000101000100000010001001111010111011010101110111001111111111111010101110100101110100111010011100 111001 0100110111101000110000111110101111001101001011110011011101000001101101101110001101000110001111010001001001111011010101 0110011 01101010

256 1 y 0 aleatorios. Este número aleatorio es lo que en última instancia protege su Bitcoin. Puede que no parezca mucho, pero su aleatoria es lo que garantiza la seguridad de su billetera. Hay casi tantas claves privadas posibles de Bitcoin como átomos en el universo visible. Ésa es la cantidad de números que tendría que contar una computadora para generar y catalogar todas las claves privadas potencialmente posibles. Siempre que el proceso utilizado para generar las claves sea verdaderamente aleatorio, sus claves estarán seguras.

Así es como se ve una clave privada en hexadecimal (el binario usa dos dígitos para codificar un número, 1 y 0, el hexadecimal usa 16 dígitos, 0-9 y AF):

E2D97BC144089EBB5773FFABA5D3A729BD187D79A5E6E836DC68C7A24F6AB36A

Así es como se ve una clave privada en el formato de importación de billetera (WIF) sin comprimir:

5KYC9aMMSDWGJciYRtwY3mNpeTn91BLagdjzJ4k4RQmdhQvE98G

El formato WIF es la forma en que todos interactuaban con sus claves privadas en los primeros días de Bitcoin. En esta era, se podía generar una clave privada a la vez y luego se generaba la clave pública a partir de ahí. El proceso de generar una clave pública es esencialmente solo la multiplicación de números muy grandes, pero hay algo más que eso. Todas las claves públicas son puntos xey en un gráfico que muestra una curva muy, muy gran curva que vuelve sobre sí misma.

En la curva gráfica, en el caso de Bitcoin Secp256k1, hay un punto llamado «punto generador». Este punto generador puede considerarse como el «punto base» de la curva Secp256k1. Es parte integral del proceso de generación de claves y firma con ellas. Este es el punto generador de la curva de Bitcoin:

G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798

Para generar la clave pública a partir de su clave privada, toma la clave privada que generó y la multiplica por el punto generador. Eso es todo. Esto ahora establece un punto en el gráfico con una relación matemática con la clave privada que generaste y que solo tú conoces.

Esta es una clave pública sin comprimir que muestra los puntos xey:

04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED

Es muy común «comprimir» claves públicas en el raro caso de que interactúe con ellas para simplemente almacenar la coordenada x con un byte para indicarle si la coordenada y es negativa o positiva. Eso lo acorta considerablemente:

04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED

Cuando vas a firmar una transacción con tu clave privada, una vez más se reduce esencialmente a una simple multiplicación. Al generar un número aleatorio (el nonce) y usarlo junto con su clave privada para multiplicar esencialmente el hash de la transacción que está firmando, produce la firma (que se compone de dos valores, ry S). Esto permite a alguien ejecutar un algoritmo para verificar que el mensaje haya sido firmado con la clave privada adecuada sin revelar esa clave. Lo que garantiza que sólo usted puede autorizar el gasto de su Bitcoin es esencialmente la multiplicación de números muy, muy grandes.

Si no está muy familiarizado con estos conceptos antes de leer esto, todo esto probablemente le parezca algo intimidante. ¿Binario? ¿Hexadecimales? ¿Puntos del gráfico? ¿Cómo se hace una copia de seguridad de un WIF?

Desde que se desarrollaron formas más intuitivas de manejar estos datos, la mayoría de los usuarios no están familiarizados con estos complicados formatos. Lo más probable es que tengas más experiencia con las semillas de palabras, también conocidas como frases semilla.

BIP 39 Semillas Mnemotécnicas

Las semillas mnemotécnicas, o frases semilla, se crearon para abordar el problema de la experiencia de interactuar con sus claves privadas.

Como comentamos anteriormente, las claves privadas son, en última instancia, solo una larga serie de unos y ceros que se generan aleatoriamente. Imagínese intentar crear copias de esto y asegurarse de no cometer un error al transcribirlo:

1110001011011001011110111100000101000100000010001001111010111011010101110111001111111111111010101110100101110100111010011100 111001 0100110111101000110000111110101111001101001011110011011101000001101101101110001101000110001111010001001001111011010101 0110011 01101010

Todo lo que se necesitaría es un solo error al copiar un dígito para inutilizar una copia de seguridad de sus claves. Aquí es donde las semillas mnemotécnicas resultan útiles. 256 1 y 0 consecutivos seguidos no es una forma amigable para los humanos de interactuar con información confidencial. Registrar este número incorrectamente significa perder el acceso a su cuenta.

camión renovar furia burro recordar portátil reforma detalle dividir pena porque gorda

Es mucho más fácil lidiar con eso, ¿no? Sólo 12 palabras. Entonces, ¿cómo funciona eso, pasando de un montón de 1 y 0 aleatorios a una cadena de palabras que realmente tienen sentido para ti? ¡Un esquema de codificación, como binario o hexadecimal!

Cada una de esas 12 palabras en esa semilla mnemotécnica anterior es un número binario en un esquema de codificacion mapear cadenas específicas de unos y ceros a palabras. Si volvemos a mirar el ejemplo anterior de la clave privada WIF, ese era simplemente un número codificado en un esquema de codificación específico, en ese caso, base 58, que usa todos los números y letras del alfabeto excepto 0 y 1, y O yl. (distingue mayúsculas y minúsculas). La exclusión de esos caracteres se realizó específicamente para hacer que los errores de transcripción sean improbables al confundir un 1 con una lo un 0 con una O. bech32 y bech32m utilizados por Segwit y Taproot llevan esto al siguiente nivel al usar solo este conjunto de caracteres (qpzry9x8gf2tvdw0s3jn54khce6mua7l).

La propuesta de mejora de Bitcoin 39 (BIP 39) introdujo un esquema de codificación estandarizado en el que cada palabra en un diccionario especialmente diseñado se asigna alfabéticamente a un número binario del 00000000001 al 11111111111. La semilla de demostración anterior se asigna a esto:

camion: 11101001001

renovar: 10110110001

furia: 01011110011

burro: 01000001001

recordar: 10110101110

portátil: 01111101000

reforma: 10110100010

detalle: 00111100010

dividir: 11010010001

pena: 01100110100

porque: 00010011110

gordo: 01010011011

En binario se ve así:

11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 11010010001 01100110100 000 10011110 0101001 1011

Hay 2048 palabras, cada una asignada a una cadena específica de 11 dígitos de 1 y 0, específicamente para facilitar que las personas interactúen con sus claves privadas. Cuando genera un número aleatorio para su clave privada, su billetera corta ese número en trozos de números binarios de 11 dígitos y los asigna al diccionario mnemotécnico BIP 39. Sigue siendo el mismo número grande, pero ahora puedes leerlo como palabras en inglés. Dado que su cerebro está mucho más acostumbrado a este formato que a largas cadenas de unos y ceros, esto dilatado reduce las probabilidades de que escriba algo incorrecto y pierda su Bitcoin en el proceso.

Es posible que hayas notado que en la codificación binaria sin formato de la palabra semilla anterior, hay cuatro dígitos (1011) independientes, y la última «palabra» en realidad solo tiene 8 dígitos. Se trata de una suma de comprobación para garantizar que una frase inicial sea válida. Cuando genera su número aleatorio, no hay suficientes dígitos para asignarlo exactamente a 12 (o 24) palabras. La billetera procesa los dígitos existentes que generó y toma los primeros dígitos del hash para agregarlos al final de su número aleatorio. Esto le proporciona suficientes dígitos para asignarlos a la última palabra.

Esta última palabra le permite realizar un control de seguridad en las copias de su semilla. Si ingresa incorrectamente su semilla mnemotécnica en una billetera, la suma de verificación no coincidirá. Cada semilla de 12 o 24 palabras tiene Múltiples palabras de suma de verificación potencialmente válidas, pero si la última palabra no coincide con la suma de verificación de una semilla correcta, su billetera le advertirá que no es válida. Esto brinda a las personas una forma intuitiva pero aún matemática de garantizar que sus copias de seguridad sean correctas, a diferencia del complicado proceso de transcribir y realizar copias de seguridad de los números binarios sin procesar.

La selección de palabras específicas de la lista llegó incluso a garantizar que ninguna de las 2048 palabras tenga las mismas cuatro primeras letras. Esto se hizo para reducir la probabilidad de que las personas cometieran errores de transcripción al confundir palabras similares y terminar con una copia de seguridad incorrecta de sus claves privadas.

Traduciendo estas palabras a un colocar de Múltiples claves privadas/públicas es bastante simple. Su semilla mnemotécnica se toma y se aplica un hash usando SHA512, que genera un hash de 512 1 y 0 individuales. La mitad de esa salida se usa como una clave privada real y la otra mitad se usa como entrada para SHA512 con un número de índice y la clave pública o privada existente para generar un nuevo par de claves. Puede hacer esto tantas veces como desee para generar nuevas claves públicas/privadas que se pueden recuperar a partir de su única frase mnemotécnica.

Esto garantiza que pueda administrar sus claves privadas con la misma facilidad y sin peligro, como sea posible con las menores probabilidades de cometer un error que le haga perder su dinero. ¡Y todo esto se hizo usando matemáticas! Con suerte, ahora comprenderá bien por qué la gente dice que Bitcoin es dinero «asegurado por las matemáticas».

Ajustes