BITCOIN
Historia de Bitcoin 2
Cypherpunks 3
Problemas de los generales bizantinos 4
Creación de entradas y salidas de transacciones 6
Tecnología 7
Función hash 7
Árbol de merkle 9
UTXO 10
Cadena de bloques de Bitcoin 13
Nodos 15
Nodos Legacy y SegWit 17
Hardfork 17
Nodos CRN 18
Blockchain.com 20
Transacción Coinbase 20
Complejidad 21
Mempool 22
RSK 24
Fundación Bitcoin 28
Halving 28
Bitcoin Core 29
Scripting 31
Bitcoin Improvement Proposals 32
Firmas Schnorr 33
Pools de minería 33
Sistemas ASIC 36
ECDSA 36
Lightning Network 37
P á g i n a 1 | 38
,Historia de Bitcoin
La invención de Bitcoin surgió en 2008, cuando Satoshi Nakamoto escribió un artículo titulado
“Bitcoin: un sistema de efectivo electrónico de igual a igual”. Nakamoto no es ningún genio,
simplemente combinó diferentes tecnologías que ya estaban disponibles, como fue B-money y
HashCash para crear el sistema de pagos descentralizados que todos conocemos.
Podemos decir que tanto B-money como HashCash han sido sistemas de pago y encriptación
para el envío de transacciones o mensajes, es decir, tenían ese objetivo fundamental. B-
money, enfocado en un sistema distribuido anónimo y descentralizado de efectivo, y HashCash
como modelo criptográfico para la encriptación de información, principalmente, correos
electrónicos.
Con esto se consiguió que cada 10 minutos se cambiase el estado actual de la cadena,
mediante un mecanismo de consenso basado en Proof of Work (en adelante, PoW). Con esto,
se consiguió resolver el problema del doble gasto, por el cual una moneda tenía la capacidad
de gastarse dos veces.
Han Finney fue uno de los mejores criptógrafos del mundo, y que estuvo de la mano con
Satoshi, ayudándolo a desarrollar Bitcoin desde cero, además de ser la primera persona en
recibir Bitcoin, en concreto 10 BTC por parte de Satoshi a modo de prueba.
También resalta por su papel como creador del primer reenviador anónimo, un servidor que
recibe mensajes con una serie de instrucciones incrustadas sobre donde deben ser enviados
después, con la capacidad de hacerlo sin mostrar de donde provenían, lo que ayudaba en gran
manera al anonimato de los Cypherpunks.
Como hemos comentado, un reenviador anónimo es un servidor que recibe mensajes con unas
instrucciones incrustadas sobre donde deben ser enviados después esos mensajes, sin revelar
el origen previo.
Este tipo de reenvíos son de bastante utilidad, sobre todo para aquellos que emplean el correo
Cypherpunk, dado que se consigue un anonimato real. Analizando los diferentes tipos de
reenvío, tenemos:
• Reenvío seudónimo: donde simplemente se quita la dirección del correo electrónico
del remitente, dándole para ello un pseudónimo.
• Reenviadores Cypherpunks o Tipo I: en este caso, un reenviador envía el mensaje al
destinatario eliminado la dirección del remitente, y, por lo tanto, uno no puede
responder un mensaje enviado a través de un remailer Cypherpunk. Por lo tanto, ese
mensaje reenviado se cifra, y posteriormente se descifra. Es una cadena de cifrado de
mensajes entre reenviadores, lo que impide que un reenviador pueda saber quién está
enviando ese mensaje.
• Reenviadores Mixmaster o Tipo II: un usuario redacta un correo electrónico para un
reenviador, que se transmite a través de cada nodo de la red mediante SMTP hasta
que llega al usuario final.
Un SMTP o protocolo simple de transferencia de correo es un protocolo estándar de internet
para la transmisión de correos electrónicos. Desde que se lanzó, ha habido varias
modificaciones, entre las que se incluyen, el uso para la autenticación, el cifrado, la
transferencia de datos binarios y las direcciones de correo electrónico internacionalizadas.
P á g i n a 2 | 38
,Además, estos SMTP suelen utilizar diferentes números de puertos para su transmisión. El 25
para textos sin formato, y el 587 para comunicaciones cifradas.
Un puerto no es más que un punto final de comunicación, en el cual se presenta una
construcción lógica que identifica un proceso específico o un tipo de servicio de red.
• Reenviadores Miminion o Tipo III: en este caso, un reenviador de Maximinion intenta
resolver desafíos de Mixmaster, como pueden ser respuestas, anonimato de reenvío,
prevención de reproducción y rotación de claves…
A pesar de las buenas intenciones que tiene este mecanismo, no debemos olvidar que los
reenvíos pueden tener una utilidad irresponsable por parte de algunas entidades o personas.
Los servidores DNS o también conocidos como Domain Name Service, es un método empleado
por Internet para traducir de manera sencilla los nombres de dominio, es decir, crea una
facilidad real para las personas.
Si por ejemplo nosotros quisiéramos buscar Bitcoin, deberíamos escribir una dirección IP. Esto
es complejo para una persona normal, pero en computación es cómo funciona todo, mediante
números.
https://bitcointalk.org/
Cypherpunks.
Aproximadamente en los años 70, nació un movimiento denominado Cypherpunk, compuesto
por un grupo de personas que se dedican al desarrollo de un activo digital para proteger la
privacidad y seguridad de los usuarios, empleando para ello la criptografía.
A pesar de esto, no fue hasta los años 80, cuando comenzó a unirse más gente y a provocar
revuelo, en concreto, cuando comenzó el desarrollo de los protocolos TCP/IP. Estas TCP/IP, no
son más que una serie de reglas básicas que permiten a los equipos informáticos comunicarse
en una red.
Más adelante, en la década de los 90, ya con Internet activo, comenzaron a ampliarse las listas
de correos, utilizadas para reunirse y discutir sobre diferentes aspectos. Una de estas listas,
como todos imagináis fue la de los correos Cypherpunks, en la cual se encontraban personas
como Adam Back, Eric Hughes o Nick Szabo, este último, creador de los contratos inteligentes,
cuyo objetivo era minimizar el coste mental a la hora de realizar micropagos.
P á g i n a 3 | 38
, Aquí te dejo un documental sobre Cypherpunks:
https://www.youtube.com/watch?v=9vM0oIEhMag
A la hora de analizar Bitcoin, tenemos que tener en cuenta, que es una colección de conceptos
y tecnologías que forman la base de un ecosistema de dinero digital. Mediante esto se
consigue almacenar y transmitir valor entre los usuarios que componen esta red. Es
importante que entendamos esto, dado que Bitcoin no ha sido creado con la idea de
especular, sino con la de servir como medio de pago entre dos personas, P2P, eliminando la
figura de un intermediario y el problema del doble gasto.
Además, mediante su software, se consigue que nadie más pueda modificar la oferta
circulante de la misma, ni permitir que nadie pueda acceder a nuestros valores. Esto es, solo el
usuario que posea las credenciales para acceder a la billetera, será el que tenga capacidad de
tenerlos, lo que todos conocemos como clave privada.
Problema de los generales bizantinos.
Los sistemas distribuidos son un conjunto de equipos independientes que actúan de forma
transparente como un único equipo, con el objetivo fundamental de descentralizar tanto el
almacenamiento como la información del procesamiento.
En este caso, encontramos ventajas como una mayor eficiencia, información distribuida entre
los nodos y mayor velocidad de procesamiento. Aunque tenemos un sistema distribuido en el
que los nodos de la red están o actúan de manera dispersa, también tenemos que tener en
cuenta que puede haber unos nodos cluster que sean el centro de distribución de esos datos.
Sin embargo, este tipo de sistemas presentan un problema fundamental, el problema de los
generales bizantinos. Este mecanismo es un experimento creado para ilustrar el dilema que
existe para lograr un consenso entre un conjunto de entidades, las cuales tienen un objetivo
común, y entre ellas puedan existir traidores.
Para este problema siempre se emplea una analogía de la guerra, donde un grupo de
generales bizantinos se encuentran acampados con las tropas alrededor de una ciudad
enemiga que desean atacar. Después de observar el comportamiento del enemigo, los
generales deben comunicar sus observaciones y ponerse de acuerdo en un plan para atacar.
Para ello, se comunican únicamente mediante mensajeros. En este caso, surge la posibilidad
de que alguno de los generales sea un traidor, y, por lo tanto, pueda enviar información
errónea con el objetivo de confundir a los reales. Por ello, mediante un algoritmo, se tiene que
resolver el problema que asegure que, aunque haya un número de generales con malas
intenciones, se pueda asegurar que los leales tienen la verdad. En este caso, se empleará la
fórmula de 3f + 1.
Ahora bien, a la vez que esto ocurre, cada uno de los generales será informado de lo que le ha
dicho el otro para saber exactamente qué es lo que tienen que hacer, es una cadena de
información.
Ejemplo práctico:
P á g i n a 4 | 38
Historia de Bitcoin 2
Cypherpunks 3
Problemas de los generales bizantinos 4
Creación de entradas y salidas de transacciones 6
Tecnología 7
Función hash 7
Árbol de merkle 9
UTXO 10
Cadena de bloques de Bitcoin 13
Nodos 15
Nodos Legacy y SegWit 17
Hardfork 17
Nodos CRN 18
Blockchain.com 20
Transacción Coinbase 20
Complejidad 21
Mempool 22
RSK 24
Fundación Bitcoin 28
Halving 28
Bitcoin Core 29
Scripting 31
Bitcoin Improvement Proposals 32
Firmas Schnorr 33
Pools de minería 33
Sistemas ASIC 36
ECDSA 36
Lightning Network 37
P á g i n a 1 | 38
,Historia de Bitcoin
La invención de Bitcoin surgió en 2008, cuando Satoshi Nakamoto escribió un artículo titulado
“Bitcoin: un sistema de efectivo electrónico de igual a igual”. Nakamoto no es ningún genio,
simplemente combinó diferentes tecnologías que ya estaban disponibles, como fue B-money y
HashCash para crear el sistema de pagos descentralizados que todos conocemos.
Podemos decir que tanto B-money como HashCash han sido sistemas de pago y encriptación
para el envío de transacciones o mensajes, es decir, tenían ese objetivo fundamental. B-
money, enfocado en un sistema distribuido anónimo y descentralizado de efectivo, y HashCash
como modelo criptográfico para la encriptación de información, principalmente, correos
electrónicos.
Con esto se consiguió que cada 10 minutos se cambiase el estado actual de la cadena,
mediante un mecanismo de consenso basado en Proof of Work (en adelante, PoW). Con esto,
se consiguió resolver el problema del doble gasto, por el cual una moneda tenía la capacidad
de gastarse dos veces.
Han Finney fue uno de los mejores criptógrafos del mundo, y que estuvo de la mano con
Satoshi, ayudándolo a desarrollar Bitcoin desde cero, además de ser la primera persona en
recibir Bitcoin, en concreto 10 BTC por parte de Satoshi a modo de prueba.
También resalta por su papel como creador del primer reenviador anónimo, un servidor que
recibe mensajes con una serie de instrucciones incrustadas sobre donde deben ser enviados
después, con la capacidad de hacerlo sin mostrar de donde provenían, lo que ayudaba en gran
manera al anonimato de los Cypherpunks.
Como hemos comentado, un reenviador anónimo es un servidor que recibe mensajes con unas
instrucciones incrustadas sobre donde deben ser enviados después esos mensajes, sin revelar
el origen previo.
Este tipo de reenvíos son de bastante utilidad, sobre todo para aquellos que emplean el correo
Cypherpunk, dado que se consigue un anonimato real. Analizando los diferentes tipos de
reenvío, tenemos:
• Reenvío seudónimo: donde simplemente se quita la dirección del correo electrónico
del remitente, dándole para ello un pseudónimo.
• Reenviadores Cypherpunks o Tipo I: en este caso, un reenviador envía el mensaje al
destinatario eliminado la dirección del remitente, y, por lo tanto, uno no puede
responder un mensaje enviado a través de un remailer Cypherpunk. Por lo tanto, ese
mensaje reenviado se cifra, y posteriormente se descifra. Es una cadena de cifrado de
mensajes entre reenviadores, lo que impide que un reenviador pueda saber quién está
enviando ese mensaje.
• Reenviadores Mixmaster o Tipo II: un usuario redacta un correo electrónico para un
reenviador, que se transmite a través de cada nodo de la red mediante SMTP hasta
que llega al usuario final.
Un SMTP o protocolo simple de transferencia de correo es un protocolo estándar de internet
para la transmisión de correos electrónicos. Desde que se lanzó, ha habido varias
modificaciones, entre las que se incluyen, el uso para la autenticación, el cifrado, la
transferencia de datos binarios y las direcciones de correo electrónico internacionalizadas.
P á g i n a 2 | 38
,Además, estos SMTP suelen utilizar diferentes números de puertos para su transmisión. El 25
para textos sin formato, y el 587 para comunicaciones cifradas.
Un puerto no es más que un punto final de comunicación, en el cual se presenta una
construcción lógica que identifica un proceso específico o un tipo de servicio de red.
• Reenviadores Miminion o Tipo III: en este caso, un reenviador de Maximinion intenta
resolver desafíos de Mixmaster, como pueden ser respuestas, anonimato de reenvío,
prevención de reproducción y rotación de claves…
A pesar de las buenas intenciones que tiene este mecanismo, no debemos olvidar que los
reenvíos pueden tener una utilidad irresponsable por parte de algunas entidades o personas.
Los servidores DNS o también conocidos como Domain Name Service, es un método empleado
por Internet para traducir de manera sencilla los nombres de dominio, es decir, crea una
facilidad real para las personas.
Si por ejemplo nosotros quisiéramos buscar Bitcoin, deberíamos escribir una dirección IP. Esto
es complejo para una persona normal, pero en computación es cómo funciona todo, mediante
números.
https://bitcointalk.org/
Cypherpunks.
Aproximadamente en los años 70, nació un movimiento denominado Cypherpunk, compuesto
por un grupo de personas que se dedican al desarrollo de un activo digital para proteger la
privacidad y seguridad de los usuarios, empleando para ello la criptografía.
A pesar de esto, no fue hasta los años 80, cuando comenzó a unirse más gente y a provocar
revuelo, en concreto, cuando comenzó el desarrollo de los protocolos TCP/IP. Estas TCP/IP, no
son más que una serie de reglas básicas que permiten a los equipos informáticos comunicarse
en una red.
Más adelante, en la década de los 90, ya con Internet activo, comenzaron a ampliarse las listas
de correos, utilizadas para reunirse y discutir sobre diferentes aspectos. Una de estas listas,
como todos imagináis fue la de los correos Cypherpunks, en la cual se encontraban personas
como Adam Back, Eric Hughes o Nick Szabo, este último, creador de los contratos inteligentes,
cuyo objetivo era minimizar el coste mental a la hora de realizar micropagos.
P á g i n a 3 | 38
, Aquí te dejo un documental sobre Cypherpunks:
https://www.youtube.com/watch?v=9vM0oIEhMag
A la hora de analizar Bitcoin, tenemos que tener en cuenta, que es una colección de conceptos
y tecnologías que forman la base de un ecosistema de dinero digital. Mediante esto se
consigue almacenar y transmitir valor entre los usuarios que componen esta red. Es
importante que entendamos esto, dado que Bitcoin no ha sido creado con la idea de
especular, sino con la de servir como medio de pago entre dos personas, P2P, eliminando la
figura de un intermediario y el problema del doble gasto.
Además, mediante su software, se consigue que nadie más pueda modificar la oferta
circulante de la misma, ni permitir que nadie pueda acceder a nuestros valores. Esto es, solo el
usuario que posea las credenciales para acceder a la billetera, será el que tenga capacidad de
tenerlos, lo que todos conocemos como clave privada.
Problema de los generales bizantinos.
Los sistemas distribuidos son un conjunto de equipos independientes que actúan de forma
transparente como un único equipo, con el objetivo fundamental de descentralizar tanto el
almacenamiento como la información del procesamiento.
En este caso, encontramos ventajas como una mayor eficiencia, información distribuida entre
los nodos y mayor velocidad de procesamiento. Aunque tenemos un sistema distribuido en el
que los nodos de la red están o actúan de manera dispersa, también tenemos que tener en
cuenta que puede haber unos nodos cluster que sean el centro de distribución de esos datos.
Sin embargo, este tipo de sistemas presentan un problema fundamental, el problema de los
generales bizantinos. Este mecanismo es un experimento creado para ilustrar el dilema que
existe para lograr un consenso entre un conjunto de entidades, las cuales tienen un objetivo
común, y entre ellas puedan existir traidores.
Para este problema siempre se emplea una analogía de la guerra, donde un grupo de
generales bizantinos se encuentran acampados con las tropas alrededor de una ciudad
enemiga que desean atacar. Después de observar el comportamiento del enemigo, los
generales deben comunicar sus observaciones y ponerse de acuerdo en un plan para atacar.
Para ello, se comunican únicamente mediante mensajeros. En este caso, surge la posibilidad
de que alguno de los generales sea un traidor, y, por lo tanto, pueda enviar información
errónea con el objetivo de confundir a los reales. Por ello, mediante un algoritmo, se tiene que
resolver el problema que asegure que, aunque haya un número de generales con malas
intenciones, se pueda asegurar que los leales tienen la verdad. En este caso, se empleará la
fórmula de 3f + 1.
Ahora bien, a la vez que esto ocurre, cada uno de los generales será informado de lo que le ha
dicho el otro para saber exactamente qué es lo que tienen que hacer, es una cadena de
información.
Ejemplo práctico:
P á g i n a 4 | 38