Fundamentales de Bitcoin: Entendiendo los bloques de la cadena de bloques

Blockchain o la cadena de bloques de Bitcoin es una base de datos cifrada y descentralizada, que funciona como un libro contable público, en el que se registran todas las transacciones de la red Bitcoin de forma permanente y segura.

Victor Velasco Guidotti
7 min readApr 11, 2023

Imagina un gimnasio con una una pared muy, muy grande, en donde hay cientos y cientos de taquillas con puertas transparentes. “Dar de alta” una nueva taquilla es tan fácil como crear un nuevo usuario o dirección. Es posible ver los objetos de valor dentro de cada taquilla. Eso sí, no es posible saber a quién pertenece. Cada taquilla tiene una contraseña que solo el dueño conoce. Además, el gimnasio cuenta con un registro público de cómo se han movido los objetos de una taquilla a otra.

En este ejemplo, cada taquilla representa una dirección Bitcoin, los usuarios pueden crear nuevas direcciones para almacenar pagos y mantener sus fondos seguros, pueden “dar de alta” una taquilla.

Al igual que las taquillas del gimnasio que están a plena vista y es posible conocer qué contenido tienen porque sus puertas son transparentes, todas las direcciones Bitcoin son públicas y auditables. De esta manera, todos los usuarios pueden verificar las transacciones y asegurarse de que son válidas y precisas.

Un explorador de bloques es una herramienta muy útil que permite a los usuarios ver las transacciones que han tenido lugar en la cadena de bloques de una manera rápida y sencilla.

Explorador interactivo: https://symphony.iohk.io/

Al utilizar un explorador de bloques, los usuarios pueden ver los detalles de cada transacción, como la cantidad de criptomonedas transferidas, la dirección del remitente y del destinatario, y la fecha y hora de la transacción.

Piensa en ello como una ventana al mundo de blockchain donde todos los pagos, los registros y las actividades financieras a nivel mundial son accesibles al público, mientras que los datos confidenciales, como la identidad del usuario, están protegidos por criptografía.

Además, algunos exploradores de bloques también ofrecen gráficos y estadísticas para ayudar a los usuarios a comprender mejor cómo funciona la cadena de bloques y cómo se están utilizando las criptomonedas en ella.

Blockchain info, posiblemente el más usado: https://www.blockchain.com/explorer

Clicando en el link anterior se accede las transacciones en tiempo real que se están enviando a la cadena de bloques de Bicoin.

BlockCypher, mi preferido:

https://live.blockcypher.com

Clicando en el link se accede a la cadena de bloques de Bitcoin con un buscador y los últimos bloques y transacciones.

Learn me a bitcoin, el más interactivo para aprender los elementos de un bloque: https://learnmeabitcoin.com/browser/node/

Explorador de bitcoin en 3D, el más visual:

https://symphony.iohk.io

Recomendable su visualización y navegación en ordenador:

Explorador interactivo: https://symphony.iohk.io/

A primera vista un bloque puede parecer algo simple, pero contiene los elementos que aportan la seguridad e inmutabilidad a la cadena de bloques.

Componentes de un bloque en Bitcoin

Cada uno de estos bloques se divide en dos partes: la cabecera y todas las transacciones que se encuentran dentro de ese bloque.

La cabecera, a su vez, contiene información vital para el correcto funcionamiento de la cadena de bloques. Cada uno de los elementos que componen su cabecera juega un papel importante en la protección de la integridad de la información contenida en la cadena de bloques.:

El hash del bloque anterior.

El sellado de tiempo en el que se registró el bloque.

El target (o dificultad de minado).

La versión del software utilizado.

El nonce.

El árbol de Merkle.

El hash del bloque anterior, que es una cadena de caracteres generada a partir de la combinación de los datos del bloque anterior y que se utiliza para identificar y vincular los bloques entre sí, es un elemento fundamental de la cadena de bloques. Este hash sirve como una especie de huella dactilar digital que permite verificar la integridad y la autenticidad de la información contenida en los bloques posteriores.

Cada bloque se compone de una lista de transacciones, un hash (un valor único generado a partir de la información del bloque) y el hash del bloque anterior en la cadena. Esta estructura permite que la cadena de bloques sea segura y resistente a la modificación, ya que cualquier intento de modificar un bloque requeriría recalcular todos los hashes posteriores en la cadena, lo que es prácticamente imposible de hacer en el caso de la cadena de Bitcoin.

Además, el momento exacto en que se registró el bloque también es un aspecto clave de la seguridad de la cadena de bloques. La precisión temporal es fundamental para asegurar que los bloques se agreguen en el orden correcto y que no se produzcan conflictos entre ellos. De hecho, cualquier intento de alterar la información contenida en un bloque sería detectado por el sistema, ya que esto cambiaría su hash y provocaría una discrepancia en la cadena de bloques.

Por otra parte, el target o dificultad de minado es un valor que se ajusta automáticamente para garantizar que el tiempo que se tarda en minar un bloque se mantenga constante.

Es el número de ceros iniciales que se pide que tenga un hash para poder subirlo a blockchain y ganar la recompensa. Cuanto menor sea el target, mayor será la dificultad y más poder computacional necesitarán los mineros de bitcoin para poder registrar el bloque con sus transacciones en blockchain.

La dificultad varía en función del poder computacional que acumule la red, si la red tiene mucho poder habrá mucha dificultad de minado. Si el poder computacional baja, la dificultad de minado disminuye.

La versión actual del software de Bitcoin es crucial para mantener la sincronización y comunicación eficiente entre los nodos que forman la red de la cadena de bloques.

Además, esta versión también es importante para asegurarse de que la red sea resistente a posibles ataques y para garantizar la integridad de las transacciones que se realizan en ella. Es por eso que la comunidad de desarrolladores de Bitcoin está constantemente trabajando en mejoras y actualizaciones en el software para mantener la seguridad y la eficiencia de la red.

El nonce, acrónimo en inglés de “Number used only ONCE“, es un número aleatorio utilizado en el proceso de minería de bloques, este número se añade a cada dato de entrada hasta obtener un hash con un número determinado de ceros iniciales.

En el contexto de Bitcoin, un nonce se utiliza para cifrar un bloque de transacciones de manera que cumpla con ciertas condiciones especificadas por el sistema. Cuando un minero (un ordenador que está trabajando en la red de Bitcoin) quiere validar un bloque de transacciones, utiliza el nonce para calcular un valor conocido como “hash”. El hash es un valor numérico que se calcula a partir de los datos contenidos en el bloque de transacciones.

Si el hash calculado cumple con ciertas condiciones especificadas por el sistema (por ejemplo, si tiene un determinado número de ceros al principio), entonces el bloque de transacciones se considera válido y se agrega a la cadena de bloques. Si el hash no cumple con estas condiciones, el minero debe volver a calcular el hash utilizando un nuevo nonce y volver a intentarlo.

El árbol de Merkle es un sistema de almacenamiento de datos que consiste en obtener un hash a partir de otros hashes.

Por ejemplo: de cuatro transacciones hasheadas se extrae un hash, así, se minimiza el número de bits sin perder seguridad de cifrado. Ahora, la única forma de saber si un Árbol de Merkle = ABCD (compuesto por 4 transacciones hasheadas) contiene la transacción 1, es teniendo las otras 3 transacciones, hasheándolas todas y comprobando si devuelven el resultado ABCD.

Ejemplo visual del cifrado de un árbol de Merkle

En cuanto al árbol de Merkle, es importante destacar que se trata de una estructura de datos muy utilizada en la criptografía y en particular en las criptomonedas. Esta estructura se encarga de verificar la validez de las transacciones contenidas en el bloque, lo que resulta fundamental para garantizar la seguridad y la integridad de la cadena de bloques. Además, el árbol de Merkle es especialmente útil en entornos distribuidos, ya que permite una verificación más eficiente y rápida de las transacciones, lo que a su vez contribuye a mejorar el rendimiento y la escalabilidad del sistema.

Además de la cabecera y todas las transacciones que se encuentran dentro de ese bloque, el bloque también contiene los fees correspondientes para el minero que ha validado las transacciones del nuevo bloque.

--

--

Victor Velasco Guidotti
0 Followers

Escribiendo sobre los fundamentales de Bitcoin / CEO de BURNINSTONE: Desarrollo de soluciones Blockchain para el sector Legal y Compliance