Todo el funcionamiento de la Blockchain de Bitcoin está basado en diferentes tipos de llaves y direcciones. Conceptos que pueden confundirse debido a que, para el ojo de una persona normal, solo se tratan de hashes criptográficos ilegibles y en formato hexadecimal que derivan unos de otro.
Relación entre llaves y criptografía en Bitcoin
Las wallets que utilizamos para transaccionar con bitcoin están compuestas por dos tipos de llaves: públicas y privadas. Las mismas permiten demostrar propiedad sobre los UTXO o salidas de BTC para poder gastarlos.
Las llaves, tanto públicas como privadas, se encuentran basadas en criptografía para su creación. Podemos entender el concepto de criptografía como “escritura secreta”. Permite demostrar un valor, sin revelar el mismo, a través de hashes. Bitcoin utiliza estos mecanismos para crear llaves y direcciones que son la base de su funcionamiento y el intercambio de valor de forma segura.
La criptografía permite la creación de llaves de forma independiente al protocolo de Bitcoin o de la Blockchain que sea. Se trata de algoritmos súper complejos para la creación de hashes que fácilmente podemos encontrar implementaciones de ellos en cualquier lenguaje de programación y utilizarlos.
Llaves públicas y privadas
La creación de un nuevo par de llaves públicas y privadas en la Blockchain de Bitcoin se realiza utilizando Criptografía de Curva Elíptica. Poderosos algoritmos asimétricos para la creación de hashes que ejercen de llaves en una billetera.
La llave privada es la primera en crearse a través de un número completamente aleatorio o de una semilla. El algoritmo de curva elíptica creará un hash y, a partir de este, el mismo se vuelve a encriptar para la obtención de la clave pública.
Dichos algoritmos son asimétricos, lo que significa que podemos obtener la llave pública a partir de la privada, pero no podemos obtener la llave privada a partir de la llave pública.
Podemos resumir y diferenciar las características tanto de la llave pública como de la privada:
Llave privada:
Deben formarse a partir de un número aleatorio, por lo que se utiliza un algoritmo CSPRNG) para generar el mismo.
Se genera a partir de un algoritmo de curva elíptica.
Deben ser secretas. Su exposición permitirá que alguien más robe nuestros BTC o acceda a nuestra información.
Permiten firmar transacciones para demostrar propiedad de los BTC y poder gastarlos.
Permite generar una nueva clave pública.
Clave pública:
Se obtiene a partir de la llave privada utilizando algoritmos de curva elíptica Secp256k1.
No es posible obtener la llave privada a partir de la pública.
Es pública, por lo tanto, puede compartirse para crear direcciones y recibir fondos en BTC.
Billeteras o wallets
Tal vez siempre creíste que dentro de tu billetera se encuentra tus criptomonedas. Esto no es así. El nombre más apropiado para las billeteras es un “llavero”. Las billeteras guardan las llaves tanto públicas como privadas que permiten demostrar propiedad sobre los bitcoins.
Cuando te conectas a tu wallet, lo que hace esta es escanear toda la red de Bitcoin en búsqueda de salidas (UTXO) que no hayan sido gastados y pertenezcan a las llaves de la billetera para posteriormente visualizar el balance total de la billetera.
Las billeteras, a su vez, contienen direcciones o Bitcoin Addresses, que permiten la obtención de BTC. Las direcciones se generan pasando la llave pública a través de funciones hash SHA256. Con este nuevo hash que también es público, podemos recibir valor en nuestra billetera.
En resumen, la llave privada genera la pública y la pública genera las direcciones. Todo a través de complejos procesos criptográficos y múltiples algoritmos.
Conclusión
Comprender en profundidad el funcionamiento por detrás de las transacciones en cualquier Blockchain es un arduo estudio sobre, principalmente, criptografía.
No necesariamente debemos saber programar los algoritmos, dado que la tarea se volvería aún más complicada. Pero si nos corresponde, si deseamos desarrollar programas en Bitcoin, conocer cada tipo de algoritmo por sus nombres, estándares, características, en qué momento se utilizan y para qué.
Sin duda, todo este mecanismo requiere de mucho estudio y dedicación para su correcto aprendizaje y aplicación en programas reales.
Guaaaa increible !
Sinceramente lo que esta detras de bitcoin y ethereum es maravilloso.
Un curso así sobre ethereum, sus estados, funcionamiento profundo de EVM, y la tecnologia de L2 (optimism y rollups), validity proof y prueba de fraude, Snark y STARK sería sensacional !
Estos cursos enfocados más de fondo en la criptografia y privacidad creo que seria una genial base para entender la importancia de bitcoin en nuestras vidas.
CSPRNG significa "Cryptographically Secure Pseudorandom Number Generator" Es un tipo de generador de números que produce una secuencia de valores que es impredecible y no se puede reproducir fácilmente
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?