La base de la soberanía propia de Bitcoin es tener control sobre sus claves privadas. Sin esto, de alguna manera estás cediendo el control de tu dinero a otra persona. “Ni tus llaves, ni tus monedas”, como dicen. Un aspecto contradictorio 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”. Su billetera bitcoin en realidad no “contiene” su Bitcoin, solo almacena sus claves privadas. Sus 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 aprobar una actualización de la cadena de bloques que utiliza su Bitcoin.
Entonces, ¿cuáles son tus claves privadas? Sólo números muy grandes. Extremadamente largo. Esta es una clave privada en binario:
11100010111011001011110111100000101000100000010001001111101010111011010101011101110011111111111111101010101010101010101010 1 010101 010011011110100011000011111010111110011010010111110011011110100000110110110111100011010001100010101101010101010101010 1010101010101 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 aleatoriedad es lo que mantiene segura su billetera. Hay casi tantas claves privadas posibles de Bitcoin como átomos en el universo visible. Es la cantidad de números que una computadora debe contar para generar y catalogar todas las claves privadas 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 generaría la clave pública a partir de esa. El proceso de generar una clave pública es básicamente una multiplicación de números muy grandes, pero hay un poco más que eso. Todas las claves públicas son un punto xey en un gráfico que muestra una clave muy, mucho gran curva que retrocede sobre sí misma.
En la curva del gráfico, 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 una 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. 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 x e y:
04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE37FFEAB5AFC143ED1437C37C37C37C5000000 00 0000000000000000001
Es muy común “comprimir” claves públicas en la rara posibilidad 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:
04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE37FFEAB5AFC143ED1437C37C37C37C5000000 00 0000000000000000001
Cuando vas a firmar una transacción con tu clave privada, nuevamente se reduce esencialmente a una simple multiplicación. Al generar un número aleatorio (nonce) y usarlo junto con su clave privada para multiplicar esencialmente el hash de la transacción que está firmando, genera la firma (que consta de dos valores, r y S). Esto permite a alguien ejecutar un algoritmo para verificar que el mensaje fue firmado con la clave privada apropiada sin revelar esa clave. Lo que garantiza que sólo usted puede autorizar el uso de su Bitcoin es básicamente la multiplicación de números muy, muy grandes.
Si no está familiarizado con estos términos antes de leer esto, todo esto puede parecer un poco desalentador. ¿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 oraciones semilla.
BIP 39 Semillas mnemotécnicas
Las semillas mnemotécnicas, o frases semilla, se crearon para resolver el problema de la experiencia de interactuar con sus claves privadas.
Como comentamos anteriormente, las claves privadas son, en última instancia, solo una larga cadena de unos y ceros que se generan aleatoriamente. Imagínese intentar hacer copias de esto y asegurarse de no cometer un error al transcribirlo:
11100010111011001011110111100000101000100000010001001111101010111011010101011101110011111111111111101010101010101010101010 1 010101 01001101111010001100001111101011111001101001011111001101111010000011011011011100011010001100010101101010101010101010101010101 0101010101 01101010
Todo lo que se necesita 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 que perderá el acceso a su cuenta.
camión renovar rabia burro memoria portátil reforma detalle dividir pena porque gorda
Es mucho más fácil de manejar, ¿no? Sólo 12 palabras. Entonces, ¿cómo funciona pasar de un montón de 1 y 0 aleatorios a una serie de palabras que realmente tienen sentido para ti? ¡Un esquema de codificación, como binario o hexadecimal!
Cada una de las 12 palabras en la semilla mnemotécnica anterior es un número binario en un esquema de codificación mapear cadenas específicas de unos y ceros a palabras. Volviendo al ejemplo anterior de la clave privada WIF, era simplemente un número codificado en un esquema de codificación específico, en este caso base 58, que utiliza todos los números y letras del alfabeto excepto 0 y 1, y O y l (distinguir entre Letras mayúsculas y minúsculas). La exclusión de estos caracteres se realizó específicamente para hacer que los errores de transcripción sean improbables al confundir un 1 con un l o 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 donde cada palabra en un diccionario personalizado se asigna alfabéticamente a un número binario de 00000000001 a 11111111111. La semilla de demostración anterior se asigna a esto:
camión: 11101001001
renovar: 10110110001
rabia: 01011110011
burro: 01000001001
recuerda: 10110101110
móvil: 01111101000
reforma: 10110100010
detalle: 00111100010
dividir: 11010010001
pena: 01100110100
porque: 00010011110
negrita: 01010011011
En binario simple se ve así:
11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 010 010 010 010 010 1001111 0 0101001 1011
Hay 2048 palabras, cada una asociada con 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 divide 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 es drástico reduciendo las posibilidades 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) separados, y la última “palabra” en realidad tiene solo 8 dígitos. Es una suma de verificación para garantizar que un conjunto de semillas sea válido. Cuando genera su número aleatorio, no hay suficientes dígitos para asignarlo exactamente a 12 (o 24) palabras. La billetera codifica 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 mapear la última palabra.
Esta última palabra le permite realizar un control de seguridad en las copias de su semilla. Si ingresa incorrectamente sus semillas mnemotécnicas en una billetera, la suma de verificación no coincidirá. Cada semilla de 12 o 24 palabras tiene varias 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 proceso complicado de transcribir y realizar copias de seguridad de los números binarios sin procesar.
La selección de palabras específicas en 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.
La traducción de 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 esta salida se utiliza como clave privada real y la otra mitad se utiliza 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 puedan recuperar a partir de su única frase mnemotécnica.
Esto garantiza que pueda administrar sus claves privadas con la misma facilidad y seguro, como sea posible con las menores probabilidades de cometer un error que le hará perder dinero. ¡Y todo se hizo usando matemáticas! Esperemos que ahora entiendas bien por qué la gente dice que Bitcoin es dinero “asegurado por las matemáticas”.
Fuente Original Bitcoin Magazine – Bitcoin News, Articles and Expert Insights