¿Qué es un bloque en la tecnología blockchain?

Tiempo de lectura: 6 minutos Que es un Bloque de la Blockchain

Un bloque es un conjunto de transacciones validadas y con marca de tiempo. Estas transacciones suelen ser transferencias de criptomonedas, pero también pueden ser interacciones con contratos o contener datos arbitrarios. Los bloques están vinculados entre sí de tal manera que forman una estructura lineal llamada blockchain, o blockchain.

¿Cómo se construyen los bloques?

Como se sabe, blockchain forma el libro mayor de todas las transacciones de una criptomoneda y se comparte entre los miembros de una red distribuida de computadoras. Esta cadena es un conjunto lineal de bloques, comenzando con un primer bloque considerado válido por defecto, que se denomina bloque génesis..

Ejemplo de como se construye un bloque en la blockchain

Los bloques se construyen y encadenan de acuerdo con reglas precisas, llamadas reglas de consenso, que son definidas por la red. Por ejemplo, los bloques suelen tener un tamaño limitado por estas reglas para evitar ataques de denegación de servicio (DDoS) y para mantener la red descentralizada.

El validador (llamado «minero» en el caso de Bitcoin) prepara su bloque recuperando nuevas transacciones, comprobando que siguen las reglas e incluyéndolas en el bloque. Luego se procede a la validación. En Bitcoin y otros sistemas que utilizan prueba de trabajo, el validador debe gastar energía para encontrar la solución a un problema matemático, y esta solución permite vincular el bloque a la cadena. En los sistemas que utilizan prueba de participación o prueba de autoridad, el validador solo necesita producir una firma digital que la autentique en la red. Dado que el bloque debe contener el identificador del bloque anterior, el nuevo bloque se encadena al bloque anterior.

En el momento de la validación, agrega una marca de tiempo a este bloque, es decir, la fecha y hora aproximadas en que se encontró el bloque. Esto permite que la red tenga su propio tiempo y se asegure de que el tiempo entre cada bloque no sea ni demasiado corto ni demasiado largo: en Bitcoin, este tiempo debe ser teóricamente de 10 minutos en promedio.

Los datos ingresados en los bloques se consideran muy difíciles de cambiar y se vuelven a prueba de manipulaciones después de un cierto período de tiempo. Una transacción se considera confirmada cuando se incluye en un bloque comprometido. Cuando se agrega un bloque adicional como resultado de ese bloque, se denomina dos confirmaciones, y así sucesivamente. Cuantas más confirmaciones tenga una transacción, más podremos confiar en su irreversibilidad.

Cada bloque tiene un identificador, que es una huella digital criptográfica única, del hash de los datos que contiene este bloque: por ejemplo, 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d. También se puede encontrar gracias a su posición en la cadena, que se llama su altura: el bloque génesis se considera así como bloque 0, el bloque siguiente bloque 1, etc. El 11 de mayo de 2020, la cadena bitcoin alcanzó el número de bloque 630.000.

La estructura de un bloque en Bitcoin

En Bitcoin, un bloque consta de dos componentes: un encabezado de bloque y transacciones, que construyen un árbol de Merkle. Centrémonos en las transacciones antes de detenernos en el encabezado.

Transacciones

Las transacciones se colocan una tras otra en el bloque. La única regla a seguir es que la primera transacción debe ser la transacción de recompensa (también llamada transacción coinbase) que remunera al minero. Esta transacción crea nuevos bitcoins: esta cantidad es actualmente de 6,25 bitcoins por bloque. También recupera las tarifas de transacción de las transacciones en bloque.

La transacción de recompensa también contiene un conjunto de información adicional. En particular, los grupos de minería a menudo indican su nombre en un campo especial de la transacción, para que los usuarios tengan una idea de la distribución de la minería (esto es una convención y no es obligatorio). Por ejemplo, dado que encontramos el mensaje Mined by AntPool en el bloque 630.000, podemos deducir que probablemente fue extraído por la cooperativa china Antpool.

El árbol de Merkle

Las transacciones se colocan en un cierto orden en el bloque y son la base de una estructura llamada árbol de Merkle o árbol hash. Esto implica cortar las transacciones (las «hojas»), luego recolectar las huellas resultantes (hashes) de dos en dos y cortarlas, y así sucesivamente hasta obtener una sola huella llamada la raíz de Merkle del árbol. La función hash utilizada para construir este árbol es el doble SHA-256.

Tomemos el ejemplo de un bloque que contiene 6 transacciones y usemos letras para identificarlas: txA, txBetc. Primero, estas transacciones se cortan para obtener sus respectivas huellas dactilares: hA, hBetc. Tenga en cuenta de paso que estas huellas dactilares representan los identificadores de las transacciones, lo que permite que se encuentren en la blockchain.

El arbol de merkle
Árbol de Merkle

Luego, combinamos (por concatenación) las huellas dactilares obtenidas de dos en dos y reutilizamos la función hash para cada una de estas combinaciones: la combinación de hA y hB se ha hashea para obtener la huella digital hAB, hCD se obtiene de hC y hDy hEF se obtiene de hE y hF.

El proceso se repite a continuación. En el caso de que el número de huellas dactilares a combinar sea impar, combinamos la última huella dactilar consigo misma: así, en nuestro ejemplo, debemos combinar hEF con él mismo para calcular hEFEF.

Finalmente, una vez que solo queda una huella digital (la raíz de Merkle), esta huella digital se coloca en el encabezado del bloque, por ejemplo b191f5f973b9040e81c4f75f99c7e43c92010ba8654718e3dd1a4800851d300d.

Si se cambia alguna de las transacciones, se cambia la raíz de Merkle. Por lo tanto, esta estructura garantiza que las transacciones no se puedan cambiar sin alterar la blockchain. Además, permite una verificación ligera de las transacciones para billeteras.

Tenga en cuenta que, dado que segWit se activó el 24 de agosto de 2017, cada bloque consta de dos árboles de Merkle: el árbol de transacciones (sin firmas) descrito aquí y el árbol de testigos (que es el árbol de transacciones que incluye las firmas de transacciones de SegWit). La raíz del árbol testigo se coloca en la transacción de recompensa, por lo que la raíz principal de Merkle depende de ella.

El encabezado del bloque

Un bloque siempre comienza con un encabezado de 80 bytes. Este último consta de los siguientes datos:

  1. La versión de bloque. Además de su función de control de versiones puras, este campo permite a los mineros informar de su aprobación (o no) para un cambio de protocolo.
  2. El identificador del bloque anterior, que le permite encadenar el encabezado al encabezado del bloque anterior.
  3. La raíz de Merkle, cuya función es unir el encabezado al resto del bloque como se ve arriba.
  4. Marca de tiempo: la fecha y hora de la minería.
  5. Un dato que indica la dificultad de minar el bloque.
  6. El nuncio relativo a la prueba de trabajo.

El ID de bloque

El identificador de bloque tiene un papel especial: además de ser utilizado para simplemente encontrar el bloque, es la prueba de trabajo en sí misma. Esto se puede ver por el número de ceros con los que comienza: el bloque 630 000 tiene por ejemplo para el identificador 000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d.

¿Cómo se obtiene? Esto es simplemente el resultado del hash de encabezado por el doble SHA-256. Sin embargo, esto no es fácil de encontrar ya que Bitcoin requiere que el número obtenido sea menor que un valor objetivo definido en el encabezado, de acuerdo con la dificultad de la red. Para hacer esto, el menor varía el nonce (este campo existe solo para este propósito) en el encabezado hasta que encuentre una solución. Esta solución es una prueba de que gastó energía para calcular todos estos hashes.

Tenga en cuenta que el nuncio planeado por Satoshi Nakamoto está codificado en solo 4 bytes y solo permite probar 4,30.000 millones de posibilidades, lo cual es demasiado poco para la potencia de cálculo actual. Esta es la razón por la cual los mineros también varían nonce adicional dentro de la transacción de recompensa.

Resumen

Aquí hay un diagrama de resumen de lo que contiene un bloque de Bitcoin (desde que se activó segWit):

Resumen diagrama de bloque bitcoin

En azul se representa el identificador del bloque anterior que es el resultado de dos hashes por la función SHA-256 de la cabecera del bloque anterior. Esto es lo que permite unir los bloques, para obtener una cadena de prueba de trabajo.

En rojo está representado el árbol merkle de las transacciones con su testigo (firma). Las huellas dactilares de estas transacciones son su identificador SegWit (wtxid o identificador de transacción testigo). La raíz de este árbol de Merkle está escrita en la transacción de recompensa del bloque (tx0), para vincular las firmas al resto del bloque.

En verde se representa el árbol Merkle de las transacciones sin su testigo. Las huellas dactilares de estas transacciones son su identificador clásico (txid). La raíz de este árbol de Merkle está escrita dentro del encabezado del bloque. Dado que todo está vinculado, es imposible modificar una transacción o su firma sin cambiar el encabezado y, por lo tanto, sin alterar la cadena de prueba de trabajo.

Conclusión

Por lo tanto, un bloque es un conjunto organizado de transacciones, que contiene una marca de tiempo (la hora y la fecha de validación) y una prueba (de trabajo, participación, autoridad) incluida por el validador. Los bloques se enlazan entre sí desde un primer bloque de referencia, para formar una cadena, la blockchain.

La blockchain es, gracias a su estructura, un libro mayor considerado a prueba de manipulaciones: una vez que una transacción se incluye en un bloque y se agregan una serie de otros bloques como resultado, puede considerarse irreversible.

Esperamos que este artículo explicativo sobre bloques te haya sido de utilidad y que ahora sepas más sobre el tema.

¿Cuál es tu opinión sobre este artículo?
(Votos: 0 Promedio: 0)

Últimas noticias sobre la Blockchain

Sobre la autora: Fátima Ruiz

Fátima Ruiz
Deja un comentario

Este sitio web utiliza cookies propias y de terceros para recopilar información que ayude a optimizar tu visita. No se utilizarán las cookies para recoger información de carácter personal. Puedes aceptar o rechazar su uso siempre que lo desees. Encontrarás más información en nuestra política de cookies. Más información

Los ajustes de cookies en esta web están configurados para «permitir las cookies» y ofrecerte la mejor experiencia de navegación posible. Si sigues usando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar», estarás dando tu consentimiento a esto.

Cerrar