¿Qué es un Compact Block?

Los Compact Blocks o bien Bloques Sólidos no es más que una pequeña adaptación a la manera en como el protocolo puede trasmitir la información de los bloques entre los nodos que forman la red.

UUna de las primordiales labores de los desarrolladores de Bitcoin es hacer que la red sea más eficaz y escalable, con lo que estudian y desarrollan diferentes técnicas para hacer esto posible sin romper la base del protocolo Bitcoin, lo que los ha llevado a diferentes ideas y entre ellas tenemos a los Compact Blocks.

Los Compact Blocks o bien Bloques Sólidos no es más que una pequeña adaptación a la manera en como el protocolo puede trasmitir la información de los bloques entre los nodos que forman la red. La meta de esta modificación es hacer más eficaz la transmisión de datos, reduciendo el ancho de banda preciso para dicha labor. Una situación que lleva a reducir la latencia y los requerimientos de red precisos para lograr un veloz acuerdo en internet a nivel global. Merced a estas ventajas, los compact blocks llevan con nosotros desde el lanzamiento de la versión 0.13.0 de Bitcoin Core, permitiéndonos gozar de sus ventajas.

Pero ¿De qué forma marcha esta tecnología? ¿Precisamente qué nos ofrece? Conozcamos más a fondo esta propuesta y todo cuanto significa para Bitcoin.

Compact Blocks, haciendo más eficaz la transmisión de datos en Bitcoin

Antes de adentrarnos en los compact blocks, primero es esencial comprender por el hecho de que es preciso ser eficaces en la transmisión de datos en una red como Bitcoin. Como sabemos, Bitcoin es una red distribuida de miles y miles de nodos que están repartidos por todo el planeta. En verdad, en público se conocen unos diez novecientos nodos de Bitcoin, un dato que podemos repasar en la página web Bitnodes.

Ahora bien, preguntémonos por un instante ¿Cuánta información se maneja en esta enorme red? Si tomamos en cuenta la cantidad de nodos, aparte de que a cada segundo la red recibe cientos y cientos de transacciones y que cada diez minutos se produce un bloque que contiene en promedio 1 MB de información, podemos inferir que la red tiene un alto tráfico de información a nivel global. Mas, ¿Cuánto precisamente?

Si hacemos los cálculos utilizando estos datos, la red Bitcoin maneja a diario un promedio de uno con cincuenta y ocho Tb de datos a nivel global. Conseguir este datos es sencillo:

En primer sitio, debemos tomar en consideración que en promedio día tras día se generan unos ciento cuarenta y cuatro bloques, con 1 MB por bloque. Esto es, un promedio de ciento cuarenta y cuatro MB de datos diarios. No obstante, estos han de ser replicados en los once mil nodos que conforman la red. O sea todos y cada uno de los bloques y sus datos viajan por la red a fin de que cada nodo pueda tener una copia precisa de exactamente la misma, con lo que nos queda:

11000 (nodos) * ciento cuarenta y cuatro (MB) = un millón quinientos ochenta y cuatro mil MB (datos replicados en todos y cada uno de los nodos)

Si llevamos este dato a Terabytes, obtenemos:

1584000 / un millón = uno con cincuenta y ocho TB

Así podemos conocer el aproximado de datos movilizados en toda la red Bitcoin.  Eso es una gran cantidad de información que consume mucho ancho de banda. Mas no solo eso, de manera adicional esto produce 2 problemas: hace más lenta la red en concepto de desempeño de red y complica la creación de un acuerdo en toda la red y los nodos que la conforman.

Si agregamos que los inconvenientes solo pueden acrecentar en escala con un mayor número de nodos y personas utilizando la red, entonces comprendemos pues urge solventar este inconveniente. En verdad, desarrolladores como Greg Maxwell han sido muy acentuados en este sentido, diciendo:

La blockchain descentralizada de Bitcoin es un medio de transmisión compartido a nivel del mundo, lo que seguramente sea el modo perfecto de comunicación más impresionantemente ineficiente nunca concebido por el hombre.

Muchos pueden opinar que las palabras de Maxwell atacan a la descentralización de la red. Mas realmente atacan a un inconveniente conocido por todos, las redes Peer to Peer son un medio bastante ineficiente para mandar información en redes que han de estar siempre y en todo momento acompasadas. Dada esta situación, lo mejor es hacer más eficaz el medio de transmisión y para esto hay múltiples propuestas tal como lo son las Relay Network, Erlay y naturalmente los Compact Blocks.

Las 3 ventajas que nos ofrecen los compact block son:

  1. No altera el protocolo Bitcoin.
  2. No rompe el esquema P2P de la presente red, resguardando su descentralización.
  3. Reduce de forma notable las necesidades de ancho de banda y la cantidad de datos trasmitidos en la red.
  4. Sin duda, no son razonamientos de poco peso y que sostienen al Bitcoin acorde a su línea filosófica: un dinero descentralizado al alcance de todos.

¿De qué manera marchan los Compact Blocks?

Lo que procuran los Compact Blocks es dividir la información de los bloques minados en internet en 2 procesos, que explicamos a continuación:

Generando un bloque válido en la red

El primer proceso es la generación del bloque, donde los mineros van a crear un bloque válido en las reglas de acuerdo de la red. En este punto, los mineros incluyen toda la información que en general tendría este bloque. O sea, su hash de bloque o bien Block ID, su Merkle Root, la información al completo del header del bloque y como es lógico todo el conjunto de transacciones que han sido ratificadas por exactamente el mismo. En este punto no hay modificación de ningún género en el proceso, prosigue siendo exactamente el mismo proceso de generación de bloques sin cambio.

Esto quiere decir que los mineros hacen su trabajo, producen el bloque y lo mandan a la red. En ese punto, el primer nodo en percibir dicho bloque comprueba exactamente el mismo, y empieza a mandar los bloques sólidos siguiendo la solución descrita ahora.

Enviando la información al resto de la red

Seguidamente empieza el segundo proceso que es el de transmisión de esa información, y atento pues acá es donde está la innovación de los compact blocks.  Como bien sabemos, cada nodo en la blockchain tiene un espacio llamado mempool, donde se guardan las transacciones que están a la espera de ser procesadas. Esta mempool está presente en todos y cada uno de los nodos sin salvedad. Esta situación nos deja inferir lo siguiente: muchas de las transacciones del bloque últimamente generado están en la mempool de todos los nodos de la red.

Esta deducción es fundamental pues el proceso actual de transmisión de los bloques lo que hace es; mandar dicho bloque con todo este conjunto de transacciones de forma duplicada. Es exactamente esta duplicación lo que hace menos eficaz el proceso de trasmitir datos en internet. En frente de esto, es válida la próxima pregunta: ¿Quizá no podemos aprovechar que los nodos ya tienen muchas de esas transacciones en su mempool y reducir de esta manera la cantidad de datos mandados a los nodos y que estos afiancen el nuevo bloque por ellos mismos? La contestación es sí, se puede hacer. Y en verdad, es exactamente esto lo que ocurre en el segundo proceso de los compact blocks.

Los nodos que utilizan los compact blocks extienden el bloque a través de un “bloque mínimo” del bloque minado. Este “bloque mínimo” realmente contiene información de vital relevancia entre la que podemos localizar lo siguiente:

  1. El header de ochenta bytes del nuevo bloque. Aquí está la información del Block ID o bien hash de bloque, el merkel root, el nonce y la cantidad de transacciones. Y asimismo, la data y hora en la que ha sido minado.
  2. Identificadores de transacciones o bien TXID (sin datos de los scripts de esas transacciones).
  3. Algunas transacciones completas (con toda la información de los scripts de esas transacciones) que el nodo expedidor pronostica que el nodo receptor todavía no tiene en su mempool.

En total, estos bloques mínimos ocupan un máximo de veinte Kb de datos. Lo que es una radical reducción de información en comparación con 1 MB de datos que en promedio ocupa un bloque.

Reconstruyendo el bloque

Como vemos la cantidad de información de este “bloque mínimo” es mucho menor que la que por norma general tiene un bloque completo. No obstante, esta información con perfección le dejaría al resto de nodos reconstruir de forma precisa el bloque minado. Y para esto, solo debe utilizar la información recibida en ese bloque mínimo y su mempool. De esta manera, el nodo emplea estos datos para recrear por completo el bloque final, el que puede ser verificado sin inconvenientes.

Incluso caso de que no resulte posible reconstruir el bloque de forma local, el nodo va a hacer las peticiones de información para conseguirlo. Para esto, el nodo requerirá dicha transacción (o bien transacciones) a otro nodo completo para reconstruir el índice y formar el bloque de forma indudable. Esto evita por poner un ejemplo, que los nodos edifiquen bloques dispares y rompan de esta forma el acuerdo de la red.

Este proceso de mandar información de forma fraccionada y usar datos locales para llenar la información de los bloques ratificados deja reducir de forma radical el tamaño de los mensajes de red. Puedes verlo como mandar pequeñas señales que puedes reconstruir al completo. Algo que es posible merced a que tienes en tu poder los elementos utilizados para edificar dichas señales. Además de esto, merced al empleo de la criptografía puedes estar seguro que tu mensaje reconstruido va a ser idéntico al original.

¿Cuánto sabes, criptonauta?

¿Los Compact Block verdaderamente asisten a optima el empleo de dato de la red Bitcoin?

Impacto de los Compacts Blocks en Bitcoin

Entre los pros de los compact blocks podemos mencionar:

  1. Reduce en buena medida la necesidad de ancho de banda de la red para trasmitir la información a todos y cada uno de los nodos. En verdad, en promedio ahora el consumo de datos de la red llega a los uno con cuatro Tb de datos diarios. Esto es una reducción de más del noventa por ciento en el consumo de datos de toda la red.
  2. Permite que la propagación de datos por la red sea más veloz. En verdad, bastan unos quince segundos a fin de que todos y cada uno de los nodos de la red tengan la información del nuevo bloque.
  3. Otro punto en favor de los compacts blocks es que reduce el consumo de datos para aquellas personas que tengan una conexión limitada. De esta manera, pueden participar en internet sin mayores inconvenientes ni con costos excesivos.
  4. Adicionalmente mejora la seguridad de la red, puesto que la transmisión veloz de información impide que los atacantes puedan mandar información falsa.

bitcoin
Bitcoin (BTC) $ 61,086.00
ethereum
Ethereum (ETH) $ 3,819.03
binance-coin
Binance Coin (BNB) $ 467.83
tether
Tether (USDT) $ 1.00
cardano
Cardano (ADA) $ 2.16
xrp
XRP (XRP) $ 1.12
solana
Solana (SOL) $ 160.32
polkadot
Polkadot (DOT) $ 41.71
usd-coin
USD Coin (USDC) $ 1.00
dogecoin
Dogecoin (DOGE) $ 0.237247