¿Qué es un bloque de Bitcoin?

Disponible como podcast
Comparte el artículo:

Uno de los muchos mecanismos que permiten que Bitcoin funcione correctamente es la cadena de bloques. Como habrás descubierto en los artículos del blog de Bitstack, la cadena de bloques permite evitar el doble gasto de una misma moneda de bitcoin (lo que se denomina UTXO).

Como su nombre indica, esta cadena de bloques está formada por bloques. En este artículo, exploramos qué son realmente los bloques de Bitcoin y cómo se construye cada bloque.

¿Qué es la cadena de bloques?

La cadena de bloques es un registro que enumera todas las transacciones de Bitcoin. Se utiliza en el protocolo para que cada usuario esté al tanto de las transacciones pasadas. Gracias a esto, podemos demostrar la inexistencia de un gasto previo de bitcoins y, por lo tanto, evitar el doble gasto.

Este concepto se explica de forma muy sencilla en el Libro Blanco sobre Bitcoin de Satoshi Nakamoto con la famosa frase:» La única forma de confirmar la ausencia de una transacción es estar al tanto de todas las transacciones. »

El objetivo de este registro es, por lo tanto, marcar la hora de las transacciones pasadas. Para poder dedicar una hora a esta información, la agrupamos en bloques. Cada bloque incluye la huella digital del bloque que lo precede para que sea inalterable, creando una especie de cadena. Por eso hablamos de blockchain, o «blockchain» en inglés.

➤ Obtenga más información sobre el papel de la cadena de bloques en Bitcoin.

¿Cuál es la estructura de un bloque en Bitcoin?

Un bloque de Bitcoin se compone principalmente de dos partes distintas. La primera es su cabecera, que contiene 80 bytes de metadatos. La segunda es la lista de transacciones ejecutadas.

Desde la actualización de SegWit de 2017, el tamaño de un bloque está determinado por una unidad virtual llamada peso. El peso de un bloque se calcula sumando su tamaño real, hasta tres veces su tamaño, pero sin testigos (firmas). El límite máximo es de 4 millones de unidades de peso. Por lo tanto, en teoría, un bloque SegWit de Bitcoin puede tener un tamaño real máximo de poco menos de 4 MB. Sin embargo, el tamaño medio real de los bloques normalmente ha fluctuado entre 1 y 2 MB desde 2017.

La llegada del protocolo Ordinals a Bitcoin a principios de este año 2023 afectó al alza a esta media. Desde febrero, los bloques de Bitcoin han tenido un tamaño medio real cercano a los 3 MB.

El encabezado del bloque de Bitcoin

La parte principal de un bloque de Bitcoin es su encabezado. Cuando hablamos de la huella digital de un bloque, o de su hash, es precisamente su cabecera la que hemos pasado dos veces en la función de hash SHA256.

Para entender la composición del encabezado de un bloque, lo mejor es estudiar uno real. Aquí hay información sobre el bloque número 714 254, extraído por F2Pool el 15 de diciembre de 2021:

Si quieres hacer lo mismo en tu nodo de Bitcoin, ejecuta el comando «getblockheader» seguido de la huella digital del bloque deseado en bitcoin-cli.

Gracias a este comando, descubrimos varios elementos sobre el bloque estudiado. No toda esta información está incluida en la cabecera. El encabezado real del bloque se compone de solo 6 elementos:

  • La versión en bloque (»versión»). Esto permite realizar un seguimiento de las actualizaciones del protocolo Bitcoin;
  • La impronta del bloque anterior (»Hash de bloque anterior»). Es el hash criptográfico del encabezado del bloque anterior. En este caso, es la impresión del bloque 714 253. Como te explicamos en nuestro artículo sobre cómo funciona Bitcoin, cada bloque incluye la huella digital del bloque anterior;
  • La raíz de Merkle (»Raíz de Merkel»). Es la huella digital criptográfica que está en la base de nuestro árbol Merkle. Explicaré de qué se trata en la siguiente parte;
  • La marca de tiempo del bloque (»Hora»). Es una medida del tiempo que lleva minado el bloque (según el minero). Esta medida se establece en elHora de Unix, es decir, el número de segundos transcurridos desde el 1 de enero de 1970. Esta medida tiene cierta flexibilidad, ya que basta con que la marca de tiempo sea superior a la mediana de tiempo de los 11 bloques anteriores para que sea válida;
  • El objetivo (»Brocas»). Es una codificación del objetivo de dificultad del bloque utilizado en Proof-of-Work. Hablábamos de ello en nuestro artículo sobre la prueba de trabajo, la huella debe ser inferior o igual al valor objetivo para que el bloque sea válido;
  • El nuncio (»Nuncio»). Este es el valor que puede cambiar el minero durante la búsqueda de un hash de prueba de trabajo válido.

Un encabezado de bloque de Bitcoin contiene solo estos 6 elementos. El pedido getblockheader Sin embargo, recibimos otra información que puede ser interesante analizar, pero que en realidad no forma parte del encabezado en sí:

  • La huella del bloque (»Hachís»). Este es el resultado de hacer un hash criptográfico del encabezado. Si el bloque es válido, este espacio debe ser inferior o igual al objetivo de dificultad para demostrar que se ha trabajado (minería);
  • El número de confirmaciones de bloqueo (»confirmaciones»). Esto indica el número de bloques válidos minados por encima de este en el momento en que se ejecuta el comando;
  • La altura del bloque (»Altura»). Este es el lugar del bloque en la cadena de bloques. Aquí tenemos el 714.254 bloque de Bitcoin;
  • La mediana del tiempo de los últimos 11 bloques (»Hora mediana»). Esta es la información que se utiliza para verificar que la marca de tiempo del bloque cumple con el protocolo;
  • Trabajo acumulado (»Cadenado»). Es la suma del trabajo de todos los bloques de esta cadena. Recuerda que la cadena válida en Bitcoin es la que tiene la mayor cantidad de trabajo acumulado;
  • La huella del siguiente bloque (»Hash de bloque siguiente»). Es el hash criptográfico de la cabecera del siguiente bloque. En este caso, es la impresión del bloque 714 255.

Ahora que hemos estudiado la primera parte del bloque, es decir, su cabecera, veamos juntos la segunda parte del bloque de Bitcoin.

Los árboles de Merkle de un bloque de Bitcoin

Las transacciones en un bloque de Bitcoin no se enumeran simplemente una tras otra. En cambio, se organizan en un acumulador criptográfico llamado «árbol de Merkle». Esto permite generar una raíz de Merkle, que es un resumen muy pequeño de todas las transacciones del bloque.

Su principio es bastante sencillo de entender. Cada transacción pasa primero por una función hash. Los hashes resultantes se concatenan de dos en dos (es decir, se ponen de extremo a extremo). Luego, se vuelven a pasar por una función hash. Continuamos este proceso de esta manera hasta que obtengamos un único hash llamado «Merkle root».

Como se vio anteriormente, esta raíz de Merkle se incluye luego en el encabezado del bloque. Esto permite que todas las transacciones se representen de forma resumida en el encabezado. Por lo tanto, la más mínima modificación de una transacción pasada cambia el árbol de Merkle, por lo que también cambia la raíz de Merkle y, por lo tanto, cambia el encabezado del bloque y su tamaño. Como esta huella digital se utiliza en el siguiente bloque, la más mínima modificación de una transacción pasada acaba por romper la cadena de bloques de Bitcoin.

Desde 2017 y la introducción de SegWit, los bloques de Bitcoin contienen en realidad 2 árboles de Merkle. El primero contiene las transacciones sin su testigo, y el segundo contiene el testigo de cada transacción. La raíz del segundo árbol de Merkle se incluye en la transacción de Coinbase para que se puedan detectar los cambios.

📌 La transacción de coinbase es la primera transacción del bloque de Bitcoin. Permite al minero ganador recolectar los bitcoins que se le adeudan como recompensa por su trabajo minero. Está compuesto por la recompensa de coinbase, que emite nuevos bitcoins, y las comisiones de transacción incluidas en el bloque.

De aquí proviene el nombre «SegWit», que son las siglas de «Testigo segregado», que en francés significa «testigo separado».

En el diagrama de arriba, podemos ver que los testigos, denominados «WTX», tienen su propio árbol de Merkle. La raíz de este árbol se coloca en la transacción de coinbase. Las transacciones sin testigos también tienen su propio árbol de Merkle. La raíz del segundo árbol se coloca en la cabecera del bloque. Por lo tanto, todas las partes de todas las transacciones del bloque se condensan en el encabezado.

Conclusión

La cadena de bloques se usa en Bitcoin para evitar el doble gasto. Actúa como un servidor de marcas de tiempo. Por lo tanto, un bloque es simplemente una agrupación de transacciones de Bitcoin con algunos metadatos. Su estructura se divide principalmente en dos espacios: el encabezado y los árboles de Merkle.

La cabecera de un bloque se compone de 6 elementos: la versión, la huella del bloque anterior, la raíz de Merkle, la marca de tiempo, el objetivo de dificultad y el nonce.

Las transacciones, por otro lado, se agrupan en un árbol de Merkle. Este acumulador criptográfico produce una raíz que se incrementa en la cabecera del bloque para poder vincularlo todo.

Disponible como podcast

Resumen

Comparte el artículo:

Puede que te gusten estos artículos

Bitstack SAS, una empresa inscrita en el Registro Mercantil y Mercantil de Aix-en-Provence con el número 899 125 090, que opera con el nombre comercial Bitstack, está registrada como agente de Xpollens, una institución de dinero electrónico aprobada por la ACPR (CIB 16528, RCS Nanterre núm. 501586341, 110 Avenue de France 75013 París), ante la Autoridad de Control y Resolución Prudencial («ACPR») en virtud del número 747088 y aprobado como proveedor de servicios de criptoactivos («PSCA») por la Autorité des Marchés Financiers («AMF») como intercambio de criptoactivos por fondos, el intercambio de criptoactivos para otros criptoactivos, la ejecución de órdenes sobre criptoactivos en nombre de los clientes, la custodia y administración de los criptoactivos en nombre de los clientes y la prestación de servicios de transferencia de criptoactivos en nombre de los clientes con el número A2025-003, cuya oficina central se encuentra en 100 Impasse des Houillères 13590 Meyreuil.

Invertir en activos digitales implica el riesgo de pérdida parcial o total del capital invertido.
El rendimiento pasado no garantiza el rendimiento futuro.
DESCARGAR
Bitstack