No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
14 Hrs
54 Min
11 Seg
Curso de Bitcoin para Developers

Curso de Bitcoin para Developers

Juan Sebastián Marulanda

Juan Sebastián Marulanda

Llaves públicas y privadas / Bitcoin addresses

12/16
Recursos

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.

Flujo de obtención de llaves y direcciones

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.


Contribución creada por: Kevin Fiorentino (Platzi Contributor).

Aportes 9

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Entiendo que la dirección bitcoin se genera así:

  1. Generamos la Private key (número aleatorio de 256 bits)
  2. Pasamos esa llave privada por la función secp256k1. Esto genera la public key.
  3. Pasamos esa public key por el SHA256 y por el RIPEMD160. Esto genera el hash de la public key.
  4. A ese hash le ponemos un prefijo “00” (dos ceros) y lo pasamos por la función Base58Check.

De este modo se obtiene una dirección bitcoin.

Llaves públicas y privadas / Bitcoin addresses.

.
Llaves.

  • La propiedad de bitcoin se establece a través de llaves, direcciones y firmas.
  • Las llaves en una billetera son independientes del protocolo Bitcoin.
  • Las billeteras solo contienen llaves.
  • Las llaves vienen en pares: privada y pública.

.
Direcciones.

  • La llave pública del destinatario es representada por una Bitcoin address.
  • Los destinos pueden ser flexibles, por ejemplo: un script representado en una dirección.
  • La dirección es parte de lo que se comparte al mundo.

.
Llaves públicas y privadas.

  • Bitcoin usa el algoritmo de Curva Elíptica para criptografía.
  • Llave pública: recibir fondos.
    • Es calculada de la llave privada usando multiplicación de Curva Elíptica.
    • Criptografía de curva elíptica.
    • Estándar Secp256k1
    • Una llave privada puede convertirse en una pública, pero no en la dirección opuesta.
  • Llave privada: firmar transacciones para utilizar fondos.
    • Número escogido al azar.
    • Debe permanecer secreta.
    • Se genera a partir de la llave pública.
    • Es necesario que la generación del número sea realmente aleatoria.
    • CSPRNG.
  • Criptografía asimétrica.

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.

Cartera y llaves

Generando las llaves pública y privada

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

RESUMEN CLASE 12:
LLAVES PUBLICAS Y PRIVADAS
BITCOIN ADDRESSES

I.- LLAVES

Propiedad de bitcoin se establece a través de llaves, direcciones y firmas.

  • Las llaves en una billetera son independientes del protocolo Bitcoin.

  • Billeteras solo contienen llaves.

  • Llaves vienen en pares: privada y pública.

II.- DIRECCIONES

  • La llave pública del destinatario es representado por una Bitcoin address.

  • Los destinos pueden ser flexibles, ej: Un script representado en una dirección.

  • La dirección es parte de lo que se comparte al mundo.

III.- LLAVES PUBLICAS Y PRIVADAS

  • Bitcoin usa Curva Elíptica para criptografía.

  • Llave pública: recibir fondos.

  • Llave privada: firmar transacciones para utilizar fondos.

  • Criptografía asimétrica.

IV.- LLAVES PRIVADAS

  • Número escogido al azar.

  • Debe permanecer secreta.

  • La llave pública se genera de la llave privada.

  • Es necesario que la generación del número sea realmente aleatoria.

  • CSPRNG.

V.- LLAVES PUBLICAS

  • Calculada de la llave privada usando multiplicación de curva elíptica.

  • Criptografía de curva elíptica.

  • Secp256k1.

  • Una llave privada puede convertirse en una pública pero no en la dirección opuesta.