¿Qué son y cómo se crean los bloques?

como se crean los bloques
Blockchain

¿Qué son y cómo se crean los bloques?

En el contexto de la tecnología blockchain, un bloque es una herramienta crucial pensada para optimizar el proceso de validación de las transacciones que se realizan. Es decir, los bloques sirven para agrupar las transacciones realizadas. Una vez agrupadas estas tendrán que ser validadas por un minero. Por esto hoy te enseñamos qué son y cómo se crean los bloques.

Por ejemplo, si nos trasladamos a la blockchain de Bitcoin, cada bloque se genera cuando un ordenador resuelve el problema o acertijo planteado de forma automática por la red. En esta criptomoneda la obtención de un bloque se realiza mediante el algoritmo de Proof of Work (PoW).

La criptomoneda Bitcoin cuenta con un gran número de transacciones por segundo. Esto conlleva a que sea imposible validar de manera individual cada una de estas operaciones y sería un proceso largo y tedioso. Por lo tanto las operaciones se agrupan en bloques, en caso de Bitcoin estos bloques disponen de un tamaño de 1 MB y de un tiempo de 10 minutos para crear un bloque. Sin embargo hay algunos forks de bitcoin en los cuales el tamaño de sus bloques es mayor, como es el caso de Bitcoin Cash que cuenta con un tamaño de 8 MB por bloque.

Para eliminar este problema se crearon los bloques a través de la minería de Bitcoin. Estos bloques permiten juntar toda la información en un solo bloque a través de un Hash y a la vez hacerla más manejable y eficiente.

Un bloque de blockchain funciona básicamente, como un contenedor de datos y transacciones cuyo tamaño puede variar dependiendo del proyecto. La mayor parte de los bloques la ocupan las transacciones. Estas transacciones utilizan Hashesfirmas digitales y UTXO o transacción de salida no gastada para poder completar el bloque.

Estructura de un bloque en la blockchain

Dentro del bloque existe una estructura que permite su funcionamiento.

Primeramente encontramos la cabecera del bloque. La cabecera se encarga de dar a cada bloque un identificador único en forma de Hash. Este se crea a través de un algoritmo llamado SHA-256 en criptomonedas como BTC. A su vez, la cabecera de un bloque incluye seis datos imprescindibles para un correcto funcionamiento.

El primero es la Versión. Este es un número que contiene el nivel de desarrollo que ha alcanzado el software de un bloque en el momento en que fue minado. Es importante ya que gracias a él, los ordenadores pueden leer el contenido de cada bloque de forma correcta.

Otro dato importante que hallamos en la cabecera es el Hash del bloque anterior. Se trata de un largo código alfanumérico que contiene en sus primeros caracteres varios 0. En el caso de la criptomoneda Bitcoin, este código está conformado por 64 caracteres.

El siguiente dato es la Raíz de Merkle. Esta es la unión de todas las transacciones que se encuentran en el bloque.

Después podemos encontrar la Marca de tiempo. Gracias a este dato podremos saber el momento exacto en que fue minado el bloque que la contiene. Este tiempo puede presentarse en distintos formatos. Por ejemplo, en Bitcoin aparece la cantidad de segundos pasados desde el año 1970.

Como siguiente dato encontramos el Objetivo (target). Este es un número de 256 bits que ayuda a los mineros a detectar cuál puede ser el Hash indicado para ese bloque.

Por último encontramos el Nonce. Este es un número adicional al bloque que es elegido al azar. Su objetivo principal es ayudar a los mineros a encontrar un Hash válido para dicho bloque.

¿Qué encontramos en el cuerpo de un bloque?

  • El número mágico: Este número se trata de un número constante utilizado para identificar cuándo empieza y cuándo termina un bloque en la blockchain.
  • Tamaño de bloque: Este dato contiene el número de Bytes para indicar el volumen de cada bloque.
  • Contador de transacciones: Este es un número íntegro positivo cuya extensión puede variar.

Para resumir, un bloque de blockchain está formado por la siguiente estructura:

  1. El número mágico.
  2. El tamaño de bloque.
  3. La cabecera con todos los datos que contiene.
  4. El contador de transacciones.
  5. Las transacciones del bloque.
bloques

Si la red blockchain es un gran libro dónde quedan registradas todas las transacciones, cada bloque vendría a ser cada una de las páginas de las cuales está formado el libro. En estas páginas es donde van quedando anotadas todas las transacciones realizadas dentro de la red.

¿Cómo se crean los bloques?

Para poder crear un bloque, en caso de Bitcoin cada 10 minutos. Antes que nada el usuario debe realizar una transacción, esta transacción quedará a la espera de ser añadida a un bloque para posteriormente ser validada o no, ya que todas estas transacciones estarán sin confirmar hasta que los mineros no confirmen su bloque.

Mientras tanto los mineros van seleccionando las transacciones válidas que vayan a incluir en su bloque, esta elección consta del fee o tasa que se haya pagado anteriormente al realizar la transacción, cuanto mayor fee pagues tienes más probabilidad de entrar en el primer bloque y que tu transacción se realice antes.

Una vez han sido seleccionadas las transacciones serán añadidas a un bloque candidato, ya que aún no habrá sido validado y por lo tanto no habrá sido añadido a la red, ni se habrá realizado la transacción.

Cuando el bloque candidato ya ha sido creado, los mineros deben realizan una prueba de trabajo para confirmar el bloque y poder añadirlo a la red.

La solución a esta prueba de trabajo recibe el nombre de hash. Hallar la función hash es un proceso muy complejo realizado por los mineros, pero una vez hallada, los nodos pueden verificar de forma relativamente sencilla que el hash de salida cumpla con las condiciones establecidas del sistema.

  • El procedimiento que siguen los mineros para encontrar un hash de salida válido consta en realizar cálculos matemáticos de forma repetitiva mediante números aleatorios hasta encontrar un hash de salida válido. En caso de la red Bitcoin, el sistema condiciona que el hash de salida debe contener un determinado número de ceros al inicio del hash.
  • Una vez encontrado un hash de salida válido el minero transmite dicho bloque junto con la firma a los demás nodos de la red para que pueda ser validado. En este momento, el minero recibe la recompensa establecida por el minado. Y si el bloque ha sido aprobado, será añadido a la red.
  • Una vez añadido el nuevo bloque a la blockchain, todos los demás que sean añadidos sobre él contarán como una confirmación. Dando así más seguridad a la red.

Sin embargo una vez que se genere un bloque, todos los mineros deben comenzar el proceso anterior para formar un nuevo bloque de transacciones. Por esto esta tecnología recibe el nombre de blockchain, cadena de bloques.

blockchain

Tiempo de creación de bloque

El tiempo de creación de bloques de las diferentes criptomonedas está relacionado con el tiempo que puedes tardar en recibir o enviar una transacción. En el caso de Bitcoin, la creación de bloques de 1 MB de tamaño se demora 10 minutos.

Sin embargo hay otras criptomonedas más veloces como Litecoin la cual su proceso de creación de bloques ronda los 2 minutos y medio, es decir es 4 veces más veloz que la creación de un bloque de Bitcoin.

Una vez se genera un bloque se procede con la creación del siguiente, por este motivo se dice que están relacionados matemáticamente.

En resumen el proceso de creación de bloques consta de:

  • Se realiza una transacción, la cual quedará a la espera de ser añadida a un bloque.
  • Los mineros seleccionan las transacciones que van a añadir en su bloque, creando así un bloque candidato.
  • Los mineros realizan una prueba de trabajo para obtener un hash y así poder confirmar el bloque para añadirlo a la red.
  • Cuando el minero obtiene un posible hash válido, este es enviado a los demás nodos de la red, si es aprobado el bloque será añadido a la red y en este momento el minero recibe la recompensa establecida por minado.
  • Una vez añadido el nuevo bloque a la blockchain, todos los demás que sean añadidos sobre él contarán como una confirmación.