¿Qué es la fragmentación? Guía completa para principiantes

¿Qué es la fragmentación? Guía completa para principiantes

¿Qué es la fragmentación? Guía completa para principiantes

Últimas actualizaciones:

10 jul 2021

Desde la aparición de Bitcoin, la tecnología de cadena de bloques ha rediseñado por completo la forma en que percibimos el valor y conceptualizamos el dinero en su conjunto. Capturando la imaginación de muchos y despertando un gran interés en diferentes sectores, la cadena de bloques se ha convertido en uno de los avances tecnológicos más emocionantes del siglo XXI, así como en una infraestructura increíblemente apreciada.

Este sentimiento está alimentado principalmente por el deseo innato de construir y participar en una revolución tan grande como lo fue la creación de Internet en los años 80 y 90. Mientras que Internet inició el ámbito de la comunicación en línea, la cadena de bloques es pionera en nuevas formas de creación de riqueza a través de redes de datos y activos digitales.

Estas redes son su propio ecosistema técnico rigurosamente descentralizado, diseñado para proporcionar servicios de registro y contratos inteligentes a las aplicaciones, también conocidas como aplicaciones descentralizadas. Ethereum, la segunda criptomoneda más valiosa, fue concebida para facilitar la creación de estas aplicaciones y, en última instancia, dar a los usuarios más control sobre sus finanzas y datos en línea.

ETH dApps

La segunda criptomoneda más grande facilita el proceso de construcción de aplicaciones descentralizadas dentro de la cadena - Imagen vía CoinSwitch

La idea que se pretende con Ethereum es desarrollar una especie de "ordenador mundial" a través del cual las aplicaciones descentralizadas puedan funcionar, crecer y ampliar sus casos de uso y, con el tiempo, llegar a desafiar a grandes empresas y plataformas como Amazon o Twitter. Así, Ethereum serviría como un "ordenador mundial" descentralizado, abierto a todos y que no puede ser manipulado ni apagado.

Para conseguirlo, Ethereum tendrá que ser capaz de almacenar y conservar enormes cantidades de datos dentro de su sistema, una capacidad que actualmente no posee. Sin embargo, Ethereum podría resolver su problema de escalabilidad implementando un mecanismo llamado fragmentación, una mejora que, de hecho, se pondrá en marcha con Ethereum 2.0.

¿Qué es la fragmentación?

En informática, la fragmentación es una técnica utilizada para escalar las aplicaciones de modo que puedan soportar más datos. El proceso consiste en dividir grandes tablas de datos en trozos más pequeños, llamados fragmentos, que se reparten entre varios servidores. Cada fragmento viene con sus propios datos, lo que lo hace distintivo e independiente en comparación con otros fragmentos.

Sharding Scalability

La fragmentación permite a las cadenas de bloques escalar de forma más eficaz.

La fragmentación es especialmente beneficiosa para las redes de cadenas de bloques, ya que les permite reducir la latencia y la sobrecarga de datos al dividir la red en particiones más pequeñas y les permite procesar más transacciones por segundo. En concreto, la fragmentación es necesaria si un conjunto de datos es demasiado grande para ser almacenado en una sola base de datos y, dados los numerosos proyectos y desarrolladores que construyen en su red, éste es de hecho el caso de Ethereum.

De hecho, según los análisis de datos, hay más de 3.000 aplicaciones descentralizadas (dApps) que funcionan en la cadena de bloques de Ethereum, por lo que la escalabilidad a través de la fragmentación es un requisito absoluto para que Ethereum mantenga su condición de líder en el ecosistema y garantice la eficiencia general de su red.

¿Cómo funciona?

Para comprender perfectamente cómo funciona la fragmentación en la cadena de bloques, es de vital importancia repasar las funciones que realizan los nodos y entender cómo se almacenan y procesan los datos.

Los nodos son un componente vital de la infraestructura de las cadenas de bloques, ya que, de hecho, sin ellos, los datos de una cadena de bloques no serían accesibles. Todos los nodos están conectados entre sí e intercambian constantemente los datos más recientes de la cadena de bloques para que todos los nodos estén actualizados. Básicamente, los nodos constituyen la capa fundacional de la cadena de bloques, ya que le permiten almacenar, conservar y distribuir los datos a través de su infraestructura.

Blockchain Nodes

Los nodos son responsables de la integridad y fiabilidad del almacenamiento de los datos introducidos en el registro distribuido - Imagen vía CoinMonks

En las redes descentralizadas, cada nodo debe ser capaz de almacenar información crítica, como el historial de transacciones y los saldos de las cuentas. Al distribuir los datos y las transacciones entre varios nodos, la cadena de bloques puede garantizar su propia seguridad; sin embargo, este modelo no es el más eficaz en términos de escalabilidad. Aunque su sistema de registro distribuido proporciona a la cadena de bloques características de descentralización y seguridad, una red que necesite procesar grandes cantidades de transacciones y almacenar grandes cantidades de datos puede verse abrumada, atascada y experimentar latencia o lentitud.

Ethereum, por ejemplo, puede realizar entre 10 y 20 transacciones por segundo, pero en realidad esto no es lo suficientemente eficaz para una cadena de bloques de su tamaño, y la razón de su lentitud es el protocolo de consenso de prueba de trabajo (PoW) inherente a su estructura. Por ello, la cadena de bloques de Ethereum necesita urgentemente escalabilidad.

ETH Network Congestion

Cuando la red está congestionada las comisiones de Ethereum pueden ser extraordinariamente altas - Imagen vía BitcoinTalk

Sin embargo, mediante la fragmentación, una red de cadenas de bloques puede repartir su carga de trabajo horizontalmente, de modo que cada nodo no tenga que gestionar o procesar todas sus transacciones, lo que permite un diseño más compartimentado y eficiente.

Partición horizontal

La fragmentación se consigue mediante la partición horizontal de una base de datos o red en diferentes filas llamadas fragmentos. Esta arquitectura horizontal crea un ecosistema más dinámico, ya que permite que los fragmentos realicen acciones especializadas en función de sus características. Por ejemplo, un fragmento puede ser responsable de almacenar el historial de transacciones y el estado de una dirección concreta o podrá cooperar con otros fragmentos para procesar las transacciones de dicho activo digital.

El esquema siguiente ilustra el funcionamiento de la partición horizontal para que se pueda entender mejor:

Horizontal Partitioning

Los datos se dividen horizontalmente en componentes más pequeños y eficientes - Imagen vía DigitalOcean

El modelo muestra una gran base de datos compuesta por 6 filas. La tabla preconfeccionada se divide en 3 fragmentos horizontales más pequeños para que el procesamiento de la gran tabla de datos sea más manejable. La partición horizontal sólo convierte la tabla en una versión más pequeña y eficiente de sí misma, manteniendo sus características originales. El mismo concepto puede aplicarse a las infraestructuras de cadenas de bloques, en las que el estado de la cadena puede fragmentarse en trozos más pequeños y manejables, también conocidos como fragmentos.

Escalado horizontal vs. vertical

Al tratar el tema de la escalabilidad, las infraestructuras de cadena de bloques tienen unas cuantas opciones: Soluciones de capa 2, escalado vertical y partición horizontal.

Las soluciones de capa 2 son soluciones de escalabilidad fuera de la cadena de bloques. La idea de estas soluciones, en esencia, es prescindir de la capa base subyacente y colocar una arquitectura adicional sobre ella. Esta capa adicional se ocupa de los cálculos complejos y busca mitigar los diversos cuellos de botella de la arquitectura de la capa base. Plasma y Raiden son los ejemplos más comunes de escalabilidad de la capa 2 y quizás el proyecto más notable que aprovecha la capa 2 es Polygon, antes Matic.

Layer2 Scaling

Las soluciones de escaado de capa 2 operan fuera de la cadena y se construyen sobre la capa base de una cadena de bloques - Imagine vía BlockchainSimplified

Aquí es donde entra en juego el escalado vertical. El escalado vertical implica la expansión de una red añadiendo más potencia y memoria a la unidad central de procesamiento de un sistema y se realiza mejorando la eficiencia de cada transacción individual. Para ello, el escalado vertical básicamente añade más potencia de procesamiento a una máquina virtual existente para reforzar su capacidad de procesamiento.

Las soluciones de escalado vertical son bastante limitadas en su eficacia, pero son mucho más fáciles de implementar en comparación con los escalados horizontales. De hecho, si por ejemplo hay un problema con la memoria local de una máquina virtual que no es suficiente para procesar una carga de transacciones entrantes, una solución de escalado vertical podría remediarlo. En este caso, un escalado vertical añadiría más memoria a la infraestructura de la máquina virtual, reduciendo así su sobrecarga de procesamiento y aumentando su rendimiento transaccional.

Vertical Scaling

El escalado vertical añade más potencia y memoria a una máquina existente - Imagen vía StackOverflow 

Sin embargo, si la carga de transacciones entrantes supera la capacidad de hardware de la máquina virtual, es decir, no puede ser procesada físicamente, se requiere de una solución de escalamiento horizontal.

Como ya se ha dicho, el escalado horizontal o la fragmentación ayudan a mejorar el rendimiento general de las infraestructuras de cadenas de bloques añadiendo más clusters o máquinas virtuales individuales a la capa base existente. Aunque se trata de un sistema eficiente para el escalado, la fragmentación tiene sus complejidades, ya se requiere más tiempo para su implementación y para que sea totalmente operativa.

Además, en lo que se refiere a la implementación activa de soluciones de escalabilidad en las infraestructuras de cadena de bloques, hay algunas cuestiones que deben abordarse desde un punto de vista puramente técnico y fundamental.

Fragmentación para una mayor descentralización

La correlación entre la fragmentación y la descentralización en la cadena de bloques es, sin duda, un argumento a favor. De hecho, al introducir el concepto de escalabilidad en el contexto de la tecnología de cadena de bloques, hay que señalar que, dado que estos sistemas ya funcionan como redes distribuidas, es intrínsecamente difícil aumentar su rendimiento global añadiendo entidades de hardware, como nodos, mineros o validadores.

Esto se ve acentuado por el hecho de que los desarrolladores de la cadena de bloques se esfuerzan por preservar la inmutabilidad general de la cadena de base y están decididos a no manipular su arquitectura subyacente.

Esto, a su vez, produce algunas ventajas para las soluciones de escalado, ya que les permite aprovechar la seguridad y fiabilidad existentes de la cadena de la capa base para ampliar su rendimiento transaccional potencial, sin tocar su infraestructura base. La Lightning Network es un muy buen ejemplo de esto, ya que utiliza su tecnología para aprovechar la seguridad de Bitcoin con el fin de aumentar la capacidad transaccional global del sistema.

The Lightning Network

La red Lightning utiliza la fiabilidad de la red Bitcoin para aumentar el rendimiento transaccional - Imagen vía Blockonomics

Además, como la fragmentación divide los grandes trozos de datos en particiones horizontales más pequeñas y eficientes, esto permite crear un ecosistema más descentralizado en su conjunto. De hecho, si toda la estructura de datos de una red de cadenas de bloques residiera en un supernodo y sólo unos pocos individuos pudieran ejecutarla y acceder a ella, esto, en primer lugar, facilitaría a los atacantes la manipulación y abuso de dicha estructura y, en segundo lugar, alejaría las aspiraciones de funcionamiento descentralizado y sin confianza propias de los ecosistemas de cadenas de bloques.

Así, la escalabilidad y la fragmentación, en particular, pueden considerarse componentes integrales del desarrollo general de las redes de cadenas de bloques, así como catalizadores finales de la "raison d’être" descentralizada de las cadenas de bloques.

Fragmentación en ETH 2.0

Según el explorador de bloques Etherscan, los nodos completos de Ethereum ya consumen al menos 5 terabytes de espacio, es decir, 10 veces más de lo que puede ocupar un ordenador medio. Además, los nodos de Ethereum van a ser más grandes y difíciles de ejecutar a medida que la plataforma se desarrolle y su base de usuarios crezca con el tiempo.

Nodes On Etherscan

Sin una solución de escalado sostenible, las redes de cadenas de bloques tendrán dificultades para gestionar grandes cantidades de nodos - Imagen vía EtherScan

Está claro, por tanto, que Ethereum requiere de una solución de escalado de forma inminente, y la fragmentación es, de hecho, la solución para ello. Por lo tanto, hablemos ahora de cómo funcionará la fragmentación en Ethereum 2.0.

Divide los nodos y vencerás

Junto con Casper y Ethereum WebAssembly (ewasm), la fragmentación es una de las principales características de la esperada actualización Ethereum 2.0. Actualmente, en la red de Ethereum, cada nodo debe verificar cada transacción, una característica que garantiza intrínsecamente la vitalidad de su red. Esto es así para que, incluso si el 80% de los nodos de Ethereum se cayeran simultáneamente, la red siguiera funcionando.

Este modelo actual no hace necesariamente que Ethereum sea más lento, pero sí es problemático, ya que no optimiza completamente los recursos de la red ETH. Por ejemplo, supongamos que hay tres nodos distintos en la red de Ethereum que verifican una transacción y estos nodos se definen como nodo X, nodo Y y nodo Z. En la actualidad, para verificar una transacción, definida como dato T, cada nodo tendrá que verificar todo el conjunto de datos de T para su confirmación.

Aunque esto garantiza la seguridad de la red en su conjunto, crea un cuello de botella por el que deben pasar todas las transacciones. De hecho, la red se ve obligada a esperar a que cada nodo verifique cada transacción, lo que, por supuesto, no es el escenario más ideal o eficiente. Sin embargo, con Ethereum 2.0 y su propuesta de fragmentación, el conjunto de datos de T se dividiría en T1, T2 y T3, por ejemplo, y los nodos X, Y y Z sólo tendrían que procesar uno de los fragmentos de datos más pequeños para verificar la totalidad del conjunto de datos de T.

Al dividir los datos en subconjuntos individuales más pequeños, Ethereum puede lograr un mayor rendimiento transaccional y crear un entorno más rápido y sostenible para perseguir sus objetivos futuros y seguir creciendo como ecosistema.

Mecánica de la fragmentación

Ethereum 2.0 buscará maximizar la eficiencia de su red completando una transición de la capa base de prueba de trabajo (PoW) a prueba de participación (PoS). El algoritmo de consenso prueba de trabajo (PoW) se basa en el concepto de minero para mantener la red segura y sincronizada, y requiere grandes cantidades de potencia de cálculo para funcionar. Por otro lado, la prueba de participación sustituye el consumo de energía por un compromiso financiero.

En este caso, el protocolo de prueba de participación de ETH 2.0, llamado Casper, ya no requerirá mineros, sino que implementará validadores que, colocando al menos 32 ETH en una piscina de staking, podrán validar transacciones y crear nuevos bloques. Casper se implementará por medio de la beacon chain, que será la cadena del sistema de Ethereum 2.0, y permitirá que los fragmentos se comuniquen entre sí.

Beacon Chain

La beacon chain es el mecanismo de coordinación de ETH 2.0, responsable de crear nuevos bloques y recompensar a los validadores – Ethos.Dev

Por supuesto, esto constituye un gran avance en la infraestructura y los usuarios, en general, deberían encontrarse con una forma nueva y más optimizada de Ethereum. Para empezar, ETH 2.0 hará que las cuentas de usuario sean específicas de un fragmento determinado y compartimentará las transacciones en "paquetes de transacciones", asignando cada paquete a un fragmento concreto. Estos paquetes se subdividirán a su vez en cabeceras y cuerpos de grupos de transacciones, y cada componente definirá las características específicas del fragmento.

Transaction Group Header

Cabecera y cuerpo del grupo de transacciones del fragmento - Imagen vía BlockStreet Medium

Como se ilustra en la imagen anterior, cada cabecera de grupo de operaciones tiene una parte izquierda y otra derecha distintas. La parte izquierda de la cabecera presenta los siguientes componentes:

  • ID del fragmento: Para identificar el fragmento al que pertenece el grupo de transacciones.

  • Estado previo de la raíz: El estado de la raíz de ese fragmento concreto antes de que el grupo de transacciones se coloque dentro de él.

  • Estado posterior a la raíz: El estado de la raíz del fragmento después de que el grupo de transacciones se coloque dentro de él.

  • Recibo de la raíz: Confirmación de que el grupo de transacciones ha entrado en la raíz del fragmento.

La parte derecha de la cabecera, en cambio, muestra un grupo de validadores seleccionados al azar que verifican las transacciones dentro del propio fragmento. Estos paquetes de transacciones, además, tienen que someterse a un doble proceso de verificación para poder anexionarse a la cadena principal. En el primer proceso de verificación, los validadores asignados aleatoriamente a un fragmento votan sobre la validez de cada paquete de transacciones. Si los validadores votan afirmativamente, un comité independiente de la beacon chain debe verificar este voto mediante un contrato inteligente de gestión de fragmentos. Si el segundo voto también es positivo, el paquete de transacciones se añadirá a la cadena principal y pasará a formar parte del registro público, estableciendo un enlace cruzado inmutable con el grupo de transacciones de ese fragmento.

Comunicación entre fragmentos

La infraestructura de ETH 2.0 permitirá que los fragmentos se intercomuniquen eficazmente con el objetivo de producir un ecosistema verdaderamente interoperable y mutuamente beneficioso. Vitalik Buterin, el visionario fundador de Ethereum, describió el concepto de comunicación entre fragmentos en la DevCon 2018 de Praga al afirmar:

Teniendo en cuenta la analogía de la isla de fragmentos de Buterin, está claro que si estos fragmentos quieren comunicarse con éxito entre sí, necesitarán un protocolo específico de intercomunicación entre fragmentos. El protocolo de intercomunicación entre fragmentos de ETH 2.0 es el llamado "paradigma de recibo". Como se muestra en la imagen anterior, el recibo de la raiz es un componente de la cabecera del grupo de transacciones y se utiliza para confirmar que un grupo de transacciones ha entrado en la raíz del fragmento en un árbol de Merkle.

Cada transacción del grupo genera un recibo en el fragmento específico al que pertenece. La beacon chain, la cadena del sistema de Ethereum 2.0, utilizará entonces su memoria compartida distribuida para almacenar en ella todos los recibos de estas transacciones, de ahí el término "paradigma de recibo". Esto se hace para que otros fragmentos puedan ver e interactuar con los recibos dentro de la beacon chain, pero debido a la naturaleza inmutable de la cadena de bloques, no podrán manipular los recibos de las transacciones.

Ethereum 2.0

Ethereum 2.0 hará realidad la fragmentación, y Ethereum será una nueva cadena de bloques.

Se trata de una característica importante porque permitirá que los fragmentos sepan exactamente cuándo es apropiado comunicarse entre sí y sólo lo hagan cuando sea necesario. En esencia, este diseño específico de ETH 2.0 permite que los fragmentos verifiquen y se beneficien de la actividad de los demás, manteniendo la finalidad y el propósito de cada fragmento individual.

Complejidades operativas y latencia de la comunicación entre fragmentos

Dos de los problemas más acuciantes en lo que se refiere a la comunicación entre fragmentos de ETH 2.0 son la complejidad operativa y la latencia. Sin embargo, Vitalik Buterin ha anunciado dos propuestas para remediarlo y garantizar el desarrollo de un Ethereum totalmente fragmentado.

Estas propuestas permitirán:

  • Canalizar varias responsabilidades y tareas de los fragmentos individuales a la beacon chain.

  • Garantizar que cada fragmento tenga su propio estado y ejecución.

  • Reducir las complejidades de la estructura del fragmento y preservar varias funcionalidades de la red.

  • Dar a los fragmentos la funcionalidad suficiente para soportar la ejecución de contratos inteligentes en los distintos grupos de transacciones.

  • Introducir 3 nuevos tipos de transacciones: Nuevo Script de Ejecución, Nuevo Validador y Retirada. El Nuevo Script de Ejecución creará un script de ejecución que puede contener ETH, el Nuevo Validador puede añadir nuevos validadores al sistema, y la Retirada puede eliminar validadores de la beacon chain.

Además, otro problema que ETH 2.0 pretende resolver es la latencia de la red en la comunicación entre fragmentos. Si, por ejemplo, un usuario quiere enviar un token del fragmento X al fragmento Y, una transacción en el fragmento X destruye el token allí, pero guarda un registro del valor enviado, la dirección y el fragmento de destino, en este caso el fragmento Y.

Tras un cierto retraso, cada fragmento se entera de la raíz de estado de otros fragmentos, lo que les permite verificar la transacción y confirmar que la dirección del fragmento Y es válida. El fragmento X producirá entonces un recibo de la transacción que será recuperado por el fragmento Y, y permitirá destruir el valor en el fragmento X y trasladarlo al fragmento Y.

Network Latency

Ethereum 2.0 aspira a resolver la lentitud de las transacciones y la latencia de la red de ETH - Imagen vía CNSPartners

Como es fácil de imaginar, este proceso provoca bastantes retrasos y se aleja completamente de los objetivos de escalabilidad de ETH 2.0. Por ello, Ethereum ha propuesto una solución para esto, llamada "transferencias rápidas entre fragmentos mediante raíces de recepción optimistas". Aunque el título puede inducir a error, en realidad se trata de un sistema bastante sencillo que implica almacenar estados condicionales y ser optimista sobre la validez de una transacción enviada.

Básicamente, todo esto significa que si Bob tiene 50 tokens en el fragmento B y Alice envía 20 tokens a Bob desde el fragmento A, pero el fragmento B aún no conoce el estado del fragmento A y, por tanto, no puede validar completamente la transferencia, el estado de la cuenta de Bob (fragmento B) mostrará temporalmente 70 tokens si la transferencia de Alice es auténtica o 50 tokens si no lo es.

This is because validators who authenticate the transaction from Shard A to Shard B can be optimistically certain of the finality of the transfer and of the fact that Bob’s account will eventually resolve to 70 tokens once the transaction from Alice is validated. Thus, validators can act just as if Bob already has the 70 tokens.

Una vez que la transacción del fragmento A al fragmento B se verifica, se convierte en permanente, o simplemente se revierte si no era válida. Este sistema de transferencia rápida entre fragmentos reduce en gran medida los cuellos de botella causados por la latencia de la red y, si se aplica con éxito, permitirá a Ethereum 2.0 acelerar su rendimiento y mejorar su escalabilidad en general.

Dejando a un lado Ethereum 2.0, hablemos ahora brevemente de cómo se implementa la fragmentación en otros proyectos y, más concretamente, en Zilliqa, NEAR y Polkadot.

Fragmentación en Zilliqa

Otro proyecto que presenta interesantes propuestas de valor y que también implementa la fragmentación es Zilliqa. Fundada en 2017, Zilliqa es una cadena de bloques para casos de uso con un intensivo coste computacional para empresas y tecnologías emergentes, siendo sus funcionalidades clave la fragmentación y el procesamiento transaccional en paralelo.

Zilliqa

Plataforma de cadena de bloques de alto rendimiento de última generación.

Aunque su red funciona con algoritmos de prueba de trabajo (PoW) que requieren una gran potencia de cálculo, Zilliqa está diseñada para escalar bajo demanda mediante la incorporación de más nodos ZIL y mineros, lo que permite añadir más fragmentos a la red.

ZIL es el token nativo de Zilliqa y, según su modelo de fragmentación, si Zilliqa tuviera 20.000 nodos, su red podría dividirse en 25 subredes con 800 nodos cada una, que podrían procesar datos en paralelo y simultáneamente. La arquitectura de Zilliqa es compleja, ya que utiliza dos cadenas de bloques, también en paralelo. El proyecto utiliza bloques de transacciones, llamados TX-Blocks, para contener las transacciones enviadas por los usuarios de la red, y bloques de servicios de directorio, o DS-Blocks, para contener los datos de los mineros de la red que aseguran y apoyan la infraestructura de Zilliqa.

La fragmentación de la cadena de bloques de Zilliqa es un proceso doble. En primer lugar, elige nodos del Comité de Servicios de Directorio que inician el proceso de fragmentación y asignan nodos a cada fragmento. En segundo lugar, una vez que las transacciones se verifican en el fragmento, pueden ser verificadas por toda la red y entrar en un estado global que anexa cada transacción en cada fragmento a una única fuente de verdad verificable en la cadena de bloques de Zilliqa.

Zilliqa Sharding

Modelo de fragmentación divide y vencerás de Zilliqa - Imagen vía ZilliqaDeveloperPortal

En esencia, una transacción fragmentada en la red Zilliqa incluye el lanzamiento de una transacción por parte de un usuario, que se transfiere a un fragmento que valida la transacción y la compara con otras transacciones para crear un "microbloque" de transacciones. A continuación, el fragmento logra un consenso sobre la validez del microbloque, que se asigna al Comité de Servicios de Directorio, que fusiona los microbloques con el "bloque final". A continuación, el Comité de Servicios de Directorio logra el consenso final sobre este bloque antes de anexionarlo a la cadena de bloques.

Fragmentación en NEAR

Un proyecto que implementa una forma de fragmentación bastante alternativa no es otro que el Protocolo NEAR. Lanzado en 2020, NEAR es una plataforma de cadena de bloques con fragmentación gobernada por la comunidad (prueba de participación, PoS), cuyo núcleo es la interoperabilidad y la escalabilidad.

NEAR aprovecha su tecnología Nightshade para conseguir una capacidad de rendimiento enorme que hace que los validadores procesen las transacciones en paralelo para mejorar la capacidad general de procesamiento de transacciones de la cadena de bloques. Aunque el modelo de fragmentación basado en cadenas de bloques y una beacon chain es potente, presenta algunas complejidades de infraestructura debido a que tanto las cadenas de bloques como la beacon chain son, en esencia, entidades separadas dentro del mismo ecosistema de cadena de bloques.

NEAR Protocol Shards

El protocolo NEAR divide todas las transacciones en bloques y busca acumularlas en un solo bloque de mayor tamaño - Imagen vía LearnNEAR

El Protocolo NEAR aborda esta cuestión e introduce un diseño de fragmentación convincente modelando su infraestructura como una cadena de bloques única, en la que cada bloque contiene lógicamente todas las transacciones de todos los fragmentos, y cambia el estado completo de los fragmentos. A través de Nightshade, NEAR puede preservar su espíritu de singularidad de la cadena de bloques fragmentando las transacciones de cada bloque en bloques físicos, idealmente con un bloque por fragmento, y agregándolos en un solo bloque de tamaño mayor.

Fragmentación en Polkadot

Polkadot utiliza un modelo de fragmentación que difiere totalmente del mecanismo de fragmentación utilizado en Ethereum y utiliza sus características de componibilidad entre cadenas para activar la fragmentación a través de parachains. El diseño nativo de Polkadot es el de una red multicadena que proporciona fiabilidad, seguridad y escalabilidad de capa 0 a todas las cadenas de bloques de capa 1 construidas sobre su arquitectura.

Estas capas 1 representan la red de parachains, siendo las parachains las diversas cadenas de bloques que se ejecutan en paralelo dentro del ecosistema Polkadot, tanto en la red Polkadot como en la red Kusama.

Parachain Sharding

Las parachains permiten a Polkadot procesar múltiples transacciones paralelas y realizar la fragmentación entre cadenas - Imagen vía PolkadotComics

Las parachain están conectadas a la relay chain de Polkadot y son seguras, y pueden beneficiarse de la seguridad, escalabilidad e interoperabilidad que proporciona Polkadot. La red de parachains puede considerarse un paradigma avanzado de fragmentación que implementa las características de la cadena principal de Polkadot y funciona de forma paralelizada, como un fragmento.Los proyectos de parachain como Clover, por ejemplo, pueden proporcionar transacciones sin gas y aportar nuevas capas de escalabilidad e interoperabilidad a las infraestructuras de capa 1 sin fragmentación. Esto se debe a que Polkadot, como red multicadena construida sobre parachains, es capaz de procesar múltiples transacciones paralelas en varias cadenas a la vez, encarnando en última instancia el concepto de fragmentación entre cadenas.

Conclusión

La fragmentación es la base de la escalabilidad en las redes descentralizadas y ofrece una serie de interesantes oportunidades para aquellos proyectos que quieran aplicarla o al menos experimentar con su concepto.

La cuestión, en la actualidad, viene definida por el hecho de que las redes de cadenas de bloques crecen y se expanden a un ritmo exponencial debido a su popularidad, casos de uso y, en definitiva, a su demanda. A su vez, esto provoca una serie de cuellos de botella dentro de la cadena, complejidades e ineficiencias de la red, que son totalmente representativas de su extrema necesidad de una solución de escalado adecuada.

Ethereum 2.0 está preparado para introducir sus capacidades de fragmentación en un futuro no muy lejano y esto representa uno de los acontecimientos más esperados en la historia de la cadena de bloques de ETH. Las expectativas siguen siendo increíblemente altas, ya que si la fragmentación de ETH 2.0 tiene éxito, garantizará la escalabilidad a largo plazo de la red Ethereum y acompañará al proyecto en su intento de convertirse en el "ordenador mundial" descentralizado, abierto a todos e imposible de apagar.

Aviso: Estas son las opiniones del autor y no deben considerarse consejos de inversión. Los lectores deben hacer su propia investigación.

El artículo ¿Qué es la fragmentación? Guía completa para principiante fue publicado en primer lugar en Coin Bureau.

Desde la aparición de Bitcoin, la tecnología de cadena de bloques ha rediseñado por completo la forma en que percibimos el valor y conceptualizamos el dinero en su conjunto. Capturando la imaginación de muchos y despertando un gran interés en diferentes sectores, la cadena de bloques se ha convertido en uno de los avances tecnológicos más emocionantes del siglo XXI, así como en una infraestructura increíblemente apreciada.

Este sentimiento está alimentado principalmente por el deseo innato de construir y participar en una revolución tan grande como lo fue la creación de Internet en los años 80 y 90. Mientras que Internet inició el ámbito de la comunicación en línea, la cadena de bloques es pionera en nuevas formas de creación de riqueza a través de redes de datos y activos digitales.

Estas redes son su propio ecosistema técnico rigurosamente descentralizado, diseñado para proporcionar servicios de registro y contratos inteligentes a las aplicaciones, también conocidas como aplicaciones descentralizadas. Ethereum, la segunda criptomoneda más valiosa, fue concebida para facilitar la creación de estas aplicaciones y, en última instancia, dar a los usuarios más control sobre sus finanzas y datos en línea.

ETH dApps

La segunda criptomoneda más grande facilita el proceso de construcción de aplicaciones descentralizadas dentro de la cadena - Imagen vía CoinSwitch

La idea que se pretende con Ethereum es desarrollar una especie de "ordenador mundial" a través del cual las aplicaciones descentralizadas puedan funcionar, crecer y ampliar sus casos de uso y, con el tiempo, llegar a desafiar a grandes empresas y plataformas como Amazon o Twitter. Así, Ethereum serviría como un "ordenador mundial" descentralizado, abierto a todos y que no puede ser manipulado ni apagado.

Para conseguirlo, Ethereum tendrá que ser capaz de almacenar y conservar enormes cantidades de datos dentro de su sistema, una capacidad que actualmente no posee. Sin embargo, Ethereum podría resolver su problema de escalabilidad implementando un mecanismo llamado fragmentación, una mejora que, de hecho, se pondrá en marcha con Ethereum 2.0.

¿Qué es la fragmentación?

En informática, la fragmentación es una técnica utilizada para escalar las aplicaciones de modo que puedan soportar más datos. El proceso consiste en dividir grandes tablas de datos en trozos más pequeños, llamados fragmentos, que se reparten entre varios servidores. Cada fragmento viene con sus propios datos, lo que lo hace distintivo e independiente en comparación con otros fragmentos.

Sharding Scalability

La fragmentación permite a las cadenas de bloques escalar de forma más eficaz.

La fragmentación es especialmente beneficiosa para las redes de cadenas de bloques, ya que les permite reducir la latencia y la sobrecarga de datos al dividir la red en particiones más pequeñas y les permite procesar más transacciones por segundo. En concreto, la fragmentación es necesaria si un conjunto de datos es demasiado grande para ser almacenado en una sola base de datos y, dados los numerosos proyectos y desarrolladores que construyen en su red, éste es de hecho el caso de Ethereum.

De hecho, según los análisis de datos, hay más de 3.000 aplicaciones descentralizadas (dApps) que funcionan en la cadena de bloques de Ethereum, por lo que la escalabilidad a través de la fragmentación es un requisito absoluto para que Ethereum mantenga su condición de líder en el ecosistema y garantice la eficiencia general de su red.

¿Cómo funciona?

Para comprender perfectamente cómo funciona la fragmentación en la cadena de bloques, es de vital importancia repasar las funciones que realizan los nodos y entender cómo se almacenan y procesan los datos.

Los nodos son un componente vital de la infraestructura de las cadenas de bloques, ya que, de hecho, sin ellos, los datos de una cadena de bloques no serían accesibles. Todos los nodos están conectados entre sí e intercambian constantemente los datos más recientes de la cadena de bloques para que todos los nodos estén actualizados. Básicamente, los nodos constituyen la capa fundacional de la cadena de bloques, ya que le permiten almacenar, conservar y distribuir los datos a través de su infraestructura.

Blockchain Nodes

Los nodos son responsables de la integridad y fiabilidad del almacenamiento de los datos introducidos en el registro distribuido - Imagen vía CoinMonks

En las redes descentralizadas, cada nodo debe ser capaz de almacenar información crítica, como el historial de transacciones y los saldos de las cuentas. Al distribuir los datos y las transacciones entre varios nodos, la cadena de bloques puede garantizar su propia seguridad; sin embargo, este modelo no es el más eficaz en términos de escalabilidad. Aunque su sistema de registro distribuido proporciona a la cadena de bloques características de descentralización y seguridad, una red que necesite procesar grandes cantidades de transacciones y almacenar grandes cantidades de datos puede verse abrumada, atascada y experimentar latencia o lentitud.

Ethereum, por ejemplo, puede realizar entre 10 y 20 transacciones por segundo, pero en realidad esto no es lo suficientemente eficaz para una cadena de bloques de su tamaño, y la razón de su lentitud es el protocolo de consenso de prueba de trabajo (PoW) inherente a su estructura. Por ello, la cadena de bloques de Ethereum necesita urgentemente escalabilidad.

ETH Network Congestion

Cuando la red está congestionada las comisiones de Ethereum pueden ser extraordinariamente altas - Imagen vía BitcoinTalk

Sin embargo, mediante la fragmentación, una red de cadenas de bloques puede repartir su carga de trabajo horizontalmente, de modo que cada nodo no tenga que gestionar o procesar todas sus transacciones, lo que permite un diseño más compartimentado y eficiente.

Partición horizontal

La fragmentación se consigue mediante la partición horizontal de una base de datos o red en diferentes filas llamadas fragmentos. Esta arquitectura horizontal crea un ecosistema más dinámico, ya que permite que los fragmentos realicen acciones especializadas en función de sus características. Por ejemplo, un fragmento puede ser responsable de almacenar el historial de transacciones y el estado de una dirección concreta o podrá cooperar con otros fragmentos para procesar las transacciones de dicho activo digital.

El esquema siguiente ilustra el funcionamiento de la partición horizontal para que se pueda entender mejor:

Horizontal Partitioning

Los datos se dividen horizontalmente en componentes más pequeños y eficientes - Imagen vía DigitalOcean

El modelo muestra una gran base de datos compuesta por 6 filas. La tabla preconfeccionada se divide en 3 fragmentos horizontales más pequeños para que el procesamiento de la gran tabla de datos sea más manejable. La partición horizontal sólo convierte la tabla en una versión más pequeña y eficiente de sí misma, manteniendo sus características originales. El mismo concepto puede aplicarse a las infraestructuras de cadenas de bloques, en las que el estado de la cadena puede fragmentarse en trozos más pequeños y manejables, también conocidos como fragmentos.

Escalado horizontal vs. vertical

Al tratar el tema de la escalabilidad, las infraestructuras de cadena de bloques tienen unas cuantas opciones: Soluciones de capa 2, escalado vertical y partición horizontal.

Las soluciones de capa 2 son soluciones de escalabilidad fuera de la cadena de bloques. La idea de estas soluciones, en esencia, es prescindir de la capa base subyacente y colocar una arquitectura adicional sobre ella. Esta capa adicional se ocupa de los cálculos complejos y busca mitigar los diversos cuellos de botella de la arquitectura de la capa base. Plasma y Raiden son los ejemplos más comunes de escalabilidad de la capa 2 y quizás el proyecto más notable que aprovecha la capa 2 es Polygon, antes Matic.

Layer2 Scaling

Las soluciones de escaado de capa 2 operan fuera de la cadena y se construyen sobre la capa base de una cadena de bloques - Imagine vía BlockchainSimplified

Aquí es donde entra en juego el escalado vertical. El escalado vertical implica la expansión de una red añadiendo más potencia y memoria a la unidad central de procesamiento de un sistema y se realiza mejorando la eficiencia de cada transacción individual. Para ello, el escalado vertical básicamente añade más potencia de procesamiento a una máquina virtual existente para reforzar su capacidad de procesamiento.

Las soluciones de escalado vertical son bastante limitadas en su eficacia, pero son mucho más fáciles de implementar en comparación con los escalados horizontales. De hecho, si por ejemplo hay un problema con la memoria local de una máquina virtual que no es suficiente para procesar una carga de transacciones entrantes, una solución de escalado vertical podría remediarlo. En este caso, un escalado vertical añadiría más memoria a la infraestructura de la máquina virtual, reduciendo así su sobrecarga de procesamiento y aumentando su rendimiento transaccional.

Vertical Scaling

El escalado vertical añade más potencia y memoria a una máquina existente - Imagen vía StackOverflow 

Sin embargo, si la carga de transacciones entrantes supera la capacidad de hardware de la máquina virtual, es decir, no puede ser procesada físicamente, se requiere de una solución de escalamiento horizontal.

Como ya se ha dicho, el escalado horizontal o la fragmentación ayudan a mejorar el rendimiento general de las infraestructuras de cadenas de bloques añadiendo más clusters o máquinas virtuales individuales a la capa base existente. Aunque se trata de un sistema eficiente para el escalado, la fragmentación tiene sus complejidades, ya se requiere más tiempo para su implementación y para que sea totalmente operativa.

Además, en lo que se refiere a la implementación activa de soluciones de escalabilidad en las infraestructuras de cadena de bloques, hay algunas cuestiones que deben abordarse desde un punto de vista puramente técnico y fundamental.

Fragmentación para una mayor descentralización

La correlación entre la fragmentación y la descentralización en la cadena de bloques es, sin duda, un argumento a favor. De hecho, al introducir el concepto de escalabilidad en el contexto de la tecnología de cadena de bloques, hay que señalar que, dado que estos sistemas ya funcionan como redes distribuidas, es intrínsecamente difícil aumentar su rendimiento global añadiendo entidades de hardware, como nodos, mineros o validadores.

Esto se ve acentuado por el hecho de que los desarrolladores de la cadena de bloques se esfuerzan por preservar la inmutabilidad general de la cadena de base y están decididos a no manipular su arquitectura subyacente.

Esto, a su vez, produce algunas ventajas para las soluciones de escalado, ya que les permite aprovechar la seguridad y fiabilidad existentes de la cadena de la capa base para ampliar su rendimiento transaccional potencial, sin tocar su infraestructura base. La Lightning Network es un muy buen ejemplo de esto, ya que utiliza su tecnología para aprovechar la seguridad de Bitcoin con el fin de aumentar la capacidad transaccional global del sistema.

The Lightning Network

La red Lightning utiliza la fiabilidad de la red Bitcoin para aumentar el rendimiento transaccional - Imagen vía Blockonomics

Además, como la fragmentación divide los grandes trozos de datos en particiones horizontales más pequeñas y eficientes, esto permite crear un ecosistema más descentralizado en su conjunto. De hecho, si toda la estructura de datos de una red de cadenas de bloques residiera en un supernodo y sólo unos pocos individuos pudieran ejecutarla y acceder a ella, esto, en primer lugar, facilitaría a los atacantes la manipulación y abuso de dicha estructura y, en segundo lugar, alejaría las aspiraciones de funcionamiento descentralizado y sin confianza propias de los ecosistemas de cadenas de bloques.

Así, la escalabilidad y la fragmentación, en particular, pueden considerarse componentes integrales del desarrollo general de las redes de cadenas de bloques, así como catalizadores finales de la "raison d’être" descentralizada de las cadenas de bloques.

Fragmentación en ETH 2.0

Según el explorador de bloques Etherscan, los nodos completos de Ethereum ya consumen al menos 5 terabytes de espacio, es decir, 10 veces más de lo que puede ocupar un ordenador medio. Además, los nodos de Ethereum van a ser más grandes y difíciles de ejecutar a medida que la plataforma se desarrolle y su base de usuarios crezca con el tiempo.

Nodes On Etherscan

Sin una solución de escalado sostenible, las redes de cadenas de bloques tendrán dificultades para gestionar grandes cantidades de nodos - Imagen vía EtherScan

Está claro, por tanto, que Ethereum requiere de una solución de escalado de forma inminente, y la fragmentación es, de hecho, la solución para ello. Por lo tanto, hablemos ahora de cómo funcionará la fragmentación en Ethereum 2.0.

Divide los nodos y vencerás

Junto con Casper y Ethereum WebAssembly (ewasm), la fragmentación es una de las principales características de la esperada actualización Ethereum 2.0. Actualmente, en la red de Ethereum, cada nodo debe verificar cada transacción, una característica que garantiza intrínsecamente la vitalidad de su red. Esto es así para que, incluso si el 80% de los nodos de Ethereum se cayeran simultáneamente, la red siguiera funcionando.

Este modelo actual no hace necesariamente que Ethereum sea más lento, pero sí es problemático, ya que no optimiza completamente los recursos de la red ETH. Por ejemplo, supongamos que hay tres nodos distintos en la red de Ethereum que verifican una transacción y estos nodos se definen como nodo X, nodo Y y nodo Z. En la actualidad, para verificar una transacción, definida como dato T, cada nodo tendrá que verificar todo el conjunto de datos de T para su confirmación.

Aunque esto garantiza la seguridad de la red en su conjunto, crea un cuello de botella por el que deben pasar todas las transacciones. De hecho, la red se ve obligada a esperar a que cada nodo verifique cada transacción, lo que, por supuesto, no es el escenario más ideal o eficiente. Sin embargo, con Ethereum 2.0 y su propuesta de fragmentación, el conjunto de datos de T se dividiría en T1, T2 y T3, por ejemplo, y los nodos X, Y y Z sólo tendrían que procesar uno de los fragmentos de datos más pequeños para verificar la totalidad del conjunto de datos de T.

Al dividir los datos en subconjuntos individuales más pequeños, Ethereum puede lograr un mayor rendimiento transaccional y crear un entorno más rápido y sostenible para perseguir sus objetivos futuros y seguir creciendo como ecosistema.

Mecánica de la fragmentación

Ethereum 2.0 buscará maximizar la eficiencia de su red completando una transición de la capa base de prueba de trabajo (PoW) a prueba de participación (PoS). El algoritmo de consenso prueba de trabajo (PoW) se basa en el concepto de minero para mantener la red segura y sincronizada, y requiere grandes cantidades de potencia de cálculo para funcionar. Por otro lado, la prueba de participación sustituye el consumo de energía por un compromiso financiero.

En este caso, el protocolo de prueba de participación de ETH 2.0, llamado Casper, ya no requerirá mineros, sino que implementará validadores que, colocando al menos 32 ETH en una piscina de staking, podrán validar transacciones y crear nuevos bloques. Casper se implementará por medio de la beacon chain, que será la cadena del sistema de Ethereum 2.0, y permitirá que los fragmentos se comuniquen entre sí.

Beacon Chain

La beacon chain es el mecanismo de coordinación de ETH 2.0, responsable de crear nuevos bloques y recompensar a los validadores – Ethos.Dev

Por supuesto, esto constituye un gran avance en la infraestructura y los usuarios, en general, deberían encontrarse con una forma nueva y más optimizada de Ethereum. Para empezar, ETH 2.0 hará que las cuentas de usuario sean específicas de un fragmento determinado y compartimentará las transacciones en "paquetes de transacciones", asignando cada paquete a un fragmento concreto. Estos paquetes se subdividirán a su vez en cabeceras y cuerpos de grupos de transacciones, y cada componente definirá las características específicas del fragmento.

Transaction Group Header

Cabecera y cuerpo del grupo de transacciones del fragmento - Imagen vía BlockStreet Medium

Como se ilustra en la imagen anterior, cada cabecera de grupo de operaciones tiene una parte izquierda y otra derecha distintas. La parte izquierda de la cabecera presenta los siguientes componentes:

  • ID del fragmento: Para identificar el fragmento al que pertenece el grupo de transacciones.

  • Estado previo de la raíz: El estado de la raíz de ese fragmento concreto antes de que el grupo de transacciones se coloque dentro de él.

  • Estado posterior a la raíz: El estado de la raíz del fragmento después de que el grupo de transacciones se coloque dentro de él.

  • Recibo de la raíz: Confirmación de que el grupo de transacciones ha entrado en la raíz del fragmento.

La parte derecha de la cabecera, en cambio, muestra un grupo de validadores seleccionados al azar que verifican las transacciones dentro del propio fragmento. Estos paquetes de transacciones, además, tienen que someterse a un doble proceso de verificación para poder anexionarse a la cadena principal. En el primer proceso de verificación, los validadores asignados aleatoriamente a un fragmento votan sobre la validez de cada paquete de transacciones. Si los validadores votan afirmativamente, un comité independiente de la beacon chain debe verificar este voto mediante un contrato inteligente de gestión de fragmentos. Si el segundo voto también es positivo, el paquete de transacciones se añadirá a la cadena principal y pasará a formar parte del registro público, estableciendo un enlace cruzado inmutable con el grupo de transacciones de ese fragmento.

Comunicación entre fragmentos

La infraestructura de ETH 2.0 permitirá que los fragmentos se intercomuniquen eficazmente con el objetivo de producir un ecosistema verdaderamente interoperable y mutuamente beneficioso. Vitalik Buterin, el visionario fundador de Ethereum, describió el concepto de comunicación entre fragmentos en la DevCon 2018 de Praga al afirmar:

Teniendo en cuenta la analogía de la isla de fragmentos de Buterin, está claro que si estos fragmentos quieren comunicarse con éxito entre sí, necesitarán un protocolo específico de intercomunicación entre fragmentos. El protocolo de intercomunicación entre fragmentos de ETH 2.0 es el llamado "paradigma de recibo". Como se muestra en la imagen anterior, el recibo de la raiz es un componente de la cabecera del grupo de transacciones y se utiliza para confirmar que un grupo de transacciones ha entrado en la raíz del fragmento en un árbol de Merkle.

Cada transacción del grupo genera un recibo en el fragmento específico al que pertenece. La beacon chain, la cadena del sistema de Ethereum 2.0, utilizará entonces su memoria compartida distribuida para almacenar en ella todos los recibos de estas transacciones, de ahí el término "paradigma de recibo". Esto se hace para que otros fragmentos puedan ver e interactuar con los recibos dentro de la beacon chain, pero debido a la naturaleza inmutable de la cadena de bloques, no podrán manipular los recibos de las transacciones.

Ethereum 2.0

Ethereum 2.0 hará realidad la fragmentación, y Ethereum será una nueva cadena de bloques.

Se trata de una característica importante porque permitirá que los fragmentos sepan exactamente cuándo es apropiado comunicarse entre sí y sólo lo hagan cuando sea necesario. En esencia, este diseño específico de ETH 2.0 permite que los fragmentos verifiquen y se beneficien de la actividad de los demás, manteniendo la finalidad y el propósito de cada fragmento individual.

Complejidades operativas y latencia de la comunicación entre fragmentos

Dos de los problemas más acuciantes en lo que se refiere a la comunicación entre fragmentos de ETH 2.0 son la complejidad operativa y la latencia. Sin embargo, Vitalik Buterin ha anunciado dos propuestas para remediarlo y garantizar el desarrollo de un Ethereum totalmente fragmentado.

Estas propuestas permitirán:

  • Canalizar varias responsabilidades y tareas de los fragmentos individuales a la beacon chain.

  • Garantizar que cada fragmento tenga su propio estado y ejecución.

  • Reducir las complejidades de la estructura del fragmento y preservar varias funcionalidades de la red.

  • Dar a los fragmentos la funcionalidad suficiente para soportar la ejecución de contratos inteligentes en los distintos grupos de transacciones.

  • Introducir 3 nuevos tipos de transacciones: Nuevo Script de Ejecución, Nuevo Validador y Retirada. El Nuevo Script de Ejecución creará un script de ejecución que puede contener ETH, el Nuevo Validador puede añadir nuevos validadores al sistema, y la Retirada puede eliminar validadores de la beacon chain.

Además, otro problema que ETH 2.0 pretende resolver es la latencia de la red en la comunicación entre fragmentos. Si, por ejemplo, un usuario quiere enviar un token del fragmento X al fragmento Y, una transacción en el fragmento X destruye el token allí, pero guarda un registro del valor enviado, la dirección y el fragmento de destino, en este caso el fragmento Y.

Tras un cierto retraso, cada fragmento se entera de la raíz de estado de otros fragmentos, lo que les permite verificar la transacción y confirmar que la dirección del fragmento Y es válida. El fragmento X producirá entonces un recibo de la transacción que será recuperado por el fragmento Y, y permitirá destruir el valor en el fragmento X y trasladarlo al fragmento Y.

Network Latency

Ethereum 2.0 aspira a resolver la lentitud de las transacciones y la latencia de la red de ETH - Imagen vía CNSPartners

Como es fácil de imaginar, este proceso provoca bastantes retrasos y se aleja completamente de los objetivos de escalabilidad de ETH 2.0. Por ello, Ethereum ha propuesto una solución para esto, llamada "transferencias rápidas entre fragmentos mediante raíces de recepción optimistas". Aunque el título puede inducir a error, en realidad se trata de un sistema bastante sencillo que implica almacenar estados condicionales y ser optimista sobre la validez de una transacción enviada.

Básicamente, todo esto significa que si Bob tiene 50 tokens en el fragmento B y Alice envía 20 tokens a Bob desde el fragmento A, pero el fragmento B aún no conoce el estado del fragmento A y, por tanto, no puede validar completamente la transferencia, el estado de la cuenta de Bob (fragmento B) mostrará temporalmente 70 tokens si la transferencia de Alice es auténtica o 50 tokens si no lo es.

This is because validators who authenticate the transaction from Shard A to Shard B can be optimistically certain of the finality of the transfer and of the fact that Bob’s account will eventually resolve to 70 tokens once the transaction from Alice is validated. Thus, validators can act just as if Bob already has the 70 tokens.

Una vez que la transacción del fragmento A al fragmento B se verifica, se convierte en permanente, o simplemente se revierte si no era válida. Este sistema de transferencia rápida entre fragmentos reduce en gran medida los cuellos de botella causados por la latencia de la red y, si se aplica con éxito, permitirá a Ethereum 2.0 acelerar su rendimiento y mejorar su escalabilidad en general.

Dejando a un lado Ethereum 2.0, hablemos ahora brevemente de cómo se implementa la fragmentación en otros proyectos y, más concretamente, en Zilliqa, NEAR y Polkadot.

Fragmentación en Zilliqa

Otro proyecto que presenta interesantes propuestas de valor y que también implementa la fragmentación es Zilliqa. Fundada en 2017, Zilliqa es una cadena de bloques para casos de uso con un intensivo coste computacional para empresas y tecnologías emergentes, siendo sus funcionalidades clave la fragmentación y el procesamiento transaccional en paralelo.

Zilliqa

Plataforma de cadena de bloques de alto rendimiento de última generación.

Aunque su red funciona con algoritmos de prueba de trabajo (PoW) que requieren una gran potencia de cálculo, Zilliqa está diseñada para escalar bajo demanda mediante la incorporación de más nodos ZIL y mineros, lo que permite añadir más fragmentos a la red.

ZIL es el token nativo de Zilliqa y, según su modelo de fragmentación, si Zilliqa tuviera 20.000 nodos, su red podría dividirse en 25 subredes con 800 nodos cada una, que podrían procesar datos en paralelo y simultáneamente. La arquitectura de Zilliqa es compleja, ya que utiliza dos cadenas de bloques, también en paralelo. El proyecto utiliza bloques de transacciones, llamados TX-Blocks, para contener las transacciones enviadas por los usuarios de la red, y bloques de servicios de directorio, o DS-Blocks, para contener los datos de los mineros de la red que aseguran y apoyan la infraestructura de Zilliqa.

La fragmentación de la cadena de bloques de Zilliqa es un proceso doble. En primer lugar, elige nodos del Comité de Servicios de Directorio que inician el proceso de fragmentación y asignan nodos a cada fragmento. En segundo lugar, una vez que las transacciones se verifican en el fragmento, pueden ser verificadas por toda la red y entrar en un estado global que anexa cada transacción en cada fragmento a una única fuente de verdad verificable en la cadena de bloques de Zilliqa.

Zilliqa Sharding

Modelo de fragmentación divide y vencerás de Zilliqa - Imagen vía ZilliqaDeveloperPortal

En esencia, una transacción fragmentada en la red Zilliqa incluye el lanzamiento de una transacción por parte de un usuario, que se transfiere a un fragmento que valida la transacción y la compara con otras transacciones para crear un "microbloque" de transacciones. A continuación, el fragmento logra un consenso sobre la validez del microbloque, que se asigna al Comité de Servicios de Directorio, que fusiona los microbloques con el "bloque final". A continuación, el Comité de Servicios de Directorio logra el consenso final sobre este bloque antes de anexionarlo a la cadena de bloques.

Fragmentación en NEAR

Un proyecto que implementa una forma de fragmentación bastante alternativa no es otro que el Protocolo NEAR. Lanzado en 2020, NEAR es una plataforma de cadena de bloques con fragmentación gobernada por la comunidad (prueba de participación, PoS), cuyo núcleo es la interoperabilidad y la escalabilidad.

NEAR aprovecha su tecnología Nightshade para conseguir una capacidad de rendimiento enorme que hace que los validadores procesen las transacciones en paralelo para mejorar la capacidad general de procesamiento de transacciones de la cadena de bloques. Aunque el modelo de fragmentación basado en cadenas de bloques y una beacon chain es potente, presenta algunas complejidades de infraestructura debido a que tanto las cadenas de bloques como la beacon chain son, en esencia, entidades separadas dentro del mismo ecosistema de cadena de bloques.

NEAR Protocol Shards

El protocolo NEAR divide todas las transacciones en bloques y busca acumularlas en un solo bloque de mayor tamaño - Imagen vía LearnNEAR

El Protocolo NEAR aborda esta cuestión e introduce un diseño de fragmentación convincente modelando su infraestructura como una cadena de bloques única, en la que cada bloque contiene lógicamente todas las transacciones de todos los fragmentos, y cambia el estado completo de los fragmentos. A través de Nightshade, NEAR puede preservar su espíritu de singularidad de la cadena de bloques fragmentando las transacciones de cada bloque en bloques físicos, idealmente con un bloque por fragmento, y agregándolos en un solo bloque de tamaño mayor.

Fragmentación en Polkadot

Polkadot utiliza un modelo de fragmentación que difiere totalmente del mecanismo de fragmentación utilizado en Ethereum y utiliza sus características de componibilidad entre cadenas para activar la fragmentación a través de parachains. El diseño nativo de Polkadot es el de una red multicadena que proporciona fiabilidad, seguridad y escalabilidad de capa 0 a todas las cadenas de bloques de capa 1 construidas sobre su arquitectura.

Estas capas 1 representan la red de parachains, siendo las parachains las diversas cadenas de bloques que se ejecutan en paralelo dentro del ecosistema Polkadot, tanto en la red Polkadot como en la red Kusama.

Parachain Sharding

Las parachains permiten a Polkadot procesar múltiples transacciones paralelas y realizar la fragmentación entre cadenas - Imagen vía PolkadotComics

Las parachain están conectadas a la relay chain de Polkadot y son seguras, y pueden beneficiarse de la seguridad, escalabilidad e interoperabilidad que proporciona Polkadot. La red de parachains puede considerarse un paradigma avanzado de fragmentación que implementa las características de la cadena principal de Polkadot y funciona de forma paralelizada, como un fragmento.Los proyectos de parachain como Clover, por ejemplo, pueden proporcionar transacciones sin gas y aportar nuevas capas de escalabilidad e interoperabilidad a las infraestructuras de capa 1 sin fragmentación. Esto se debe a que Polkadot, como red multicadena construida sobre parachains, es capaz de procesar múltiples transacciones paralelas en varias cadenas a la vez, encarnando en última instancia el concepto de fragmentación entre cadenas.

Conclusión

La fragmentación es la base de la escalabilidad en las redes descentralizadas y ofrece una serie de interesantes oportunidades para aquellos proyectos que quieran aplicarla o al menos experimentar con su concepto.

La cuestión, en la actualidad, viene definida por el hecho de que las redes de cadenas de bloques crecen y se expanden a un ritmo exponencial debido a su popularidad, casos de uso y, en definitiva, a su demanda. A su vez, esto provoca una serie de cuellos de botella dentro de la cadena, complejidades e ineficiencias de la red, que son totalmente representativas de su extrema necesidad de una solución de escalado adecuada.

Ethereum 2.0 está preparado para introducir sus capacidades de fragmentación en un futuro no muy lejano y esto representa uno de los acontecimientos más esperados en la historia de la cadena de bloques de ETH. Las expectativas siguen siendo increíblemente altas, ya que si la fragmentación de ETH 2.0 tiene éxito, garantizará la escalabilidad a largo plazo de la red Ethereum y acompañará al proyecto en su intento de convertirse en el "ordenador mundial" descentralizado, abierto a todos e imposible de apagar.

Aviso: Estas son las opiniones del autor y no deben considerarse consejos de inversión. Los lectores deben hacer su propia investigación.

El artículo ¿Qué es la fragmentación? Guía completa para principiante fue publicado en primer lugar en Coin Bureau.

Desde la aparición de Bitcoin, la tecnología de cadena de bloques ha rediseñado por completo la forma en que percibimos el valor y conceptualizamos el dinero en su conjunto. Capturando la imaginación de muchos y despertando un gran interés en diferentes sectores, la cadena de bloques se ha convertido en uno de los avances tecnológicos más emocionantes del siglo XXI, así como en una infraestructura increíblemente apreciada.

Este sentimiento está alimentado principalmente por el deseo innato de construir y participar en una revolución tan grande como lo fue la creación de Internet en los años 80 y 90. Mientras que Internet inició el ámbito de la comunicación en línea, la cadena de bloques es pionera en nuevas formas de creación de riqueza a través de redes de datos y activos digitales.

Estas redes son su propio ecosistema técnico rigurosamente descentralizado, diseñado para proporcionar servicios de registro y contratos inteligentes a las aplicaciones, también conocidas como aplicaciones descentralizadas. Ethereum, la segunda criptomoneda más valiosa, fue concebida para facilitar la creación de estas aplicaciones y, en última instancia, dar a los usuarios más control sobre sus finanzas y datos en línea.

ETH dApps

La segunda criptomoneda más grande facilita el proceso de construcción de aplicaciones descentralizadas dentro de la cadena - Imagen vía CoinSwitch

La idea que se pretende con Ethereum es desarrollar una especie de "ordenador mundial" a través del cual las aplicaciones descentralizadas puedan funcionar, crecer y ampliar sus casos de uso y, con el tiempo, llegar a desafiar a grandes empresas y plataformas como Amazon o Twitter. Así, Ethereum serviría como un "ordenador mundial" descentralizado, abierto a todos y que no puede ser manipulado ni apagado.

Para conseguirlo, Ethereum tendrá que ser capaz de almacenar y conservar enormes cantidades de datos dentro de su sistema, una capacidad que actualmente no posee. Sin embargo, Ethereum podría resolver su problema de escalabilidad implementando un mecanismo llamado fragmentación, una mejora que, de hecho, se pondrá en marcha con Ethereum 2.0.

¿Qué es la fragmentación?

En informática, la fragmentación es una técnica utilizada para escalar las aplicaciones de modo que puedan soportar más datos. El proceso consiste en dividir grandes tablas de datos en trozos más pequeños, llamados fragmentos, que se reparten entre varios servidores. Cada fragmento viene con sus propios datos, lo que lo hace distintivo e independiente en comparación con otros fragmentos.

Sharding Scalability

La fragmentación permite a las cadenas de bloques escalar de forma más eficaz.

La fragmentación es especialmente beneficiosa para las redes de cadenas de bloques, ya que les permite reducir la latencia y la sobrecarga de datos al dividir la red en particiones más pequeñas y les permite procesar más transacciones por segundo. En concreto, la fragmentación es necesaria si un conjunto de datos es demasiado grande para ser almacenado en una sola base de datos y, dados los numerosos proyectos y desarrolladores que construyen en su red, éste es de hecho el caso de Ethereum.

De hecho, según los análisis de datos, hay más de 3.000 aplicaciones descentralizadas (dApps) que funcionan en la cadena de bloques de Ethereum, por lo que la escalabilidad a través de la fragmentación es un requisito absoluto para que Ethereum mantenga su condición de líder en el ecosistema y garantice la eficiencia general de su red.

¿Cómo funciona?

Para comprender perfectamente cómo funciona la fragmentación en la cadena de bloques, es de vital importancia repasar las funciones que realizan los nodos y entender cómo se almacenan y procesan los datos.

Los nodos son un componente vital de la infraestructura de las cadenas de bloques, ya que, de hecho, sin ellos, los datos de una cadena de bloques no serían accesibles. Todos los nodos están conectados entre sí e intercambian constantemente los datos más recientes de la cadena de bloques para que todos los nodos estén actualizados. Básicamente, los nodos constituyen la capa fundacional de la cadena de bloques, ya que le permiten almacenar, conservar y distribuir los datos a través de su infraestructura.

Blockchain Nodes

Los nodos son responsables de la integridad y fiabilidad del almacenamiento de los datos introducidos en el registro distribuido - Imagen vía CoinMonks

En las redes descentralizadas, cada nodo debe ser capaz de almacenar información crítica, como el historial de transacciones y los saldos de las cuentas. Al distribuir los datos y las transacciones entre varios nodos, la cadena de bloques puede garantizar su propia seguridad; sin embargo, este modelo no es el más eficaz en términos de escalabilidad. Aunque su sistema de registro distribuido proporciona a la cadena de bloques características de descentralización y seguridad, una red que necesite procesar grandes cantidades de transacciones y almacenar grandes cantidades de datos puede verse abrumada, atascada y experimentar latencia o lentitud.

Ethereum, por ejemplo, puede realizar entre 10 y 20 transacciones por segundo, pero en realidad esto no es lo suficientemente eficaz para una cadena de bloques de su tamaño, y la razón de su lentitud es el protocolo de consenso de prueba de trabajo (PoW) inherente a su estructura. Por ello, la cadena de bloques de Ethereum necesita urgentemente escalabilidad.

ETH Network Congestion

Cuando la red está congestionada las comisiones de Ethereum pueden ser extraordinariamente altas - Imagen vía BitcoinTalk

Sin embargo, mediante la fragmentación, una red de cadenas de bloques puede repartir su carga de trabajo horizontalmente, de modo que cada nodo no tenga que gestionar o procesar todas sus transacciones, lo que permite un diseño más compartimentado y eficiente.

Partición horizontal

La fragmentación se consigue mediante la partición horizontal de una base de datos o red en diferentes filas llamadas fragmentos. Esta arquitectura horizontal crea un ecosistema más dinámico, ya que permite que los fragmentos realicen acciones especializadas en función de sus características. Por ejemplo, un fragmento puede ser responsable de almacenar el historial de transacciones y el estado de una dirección concreta o podrá cooperar con otros fragmentos para procesar las transacciones de dicho activo digital.

El esquema siguiente ilustra el funcionamiento de la partición horizontal para que se pueda entender mejor:

Horizontal Partitioning

Los datos se dividen horizontalmente en componentes más pequeños y eficientes - Imagen vía DigitalOcean

El modelo muestra una gran base de datos compuesta por 6 filas. La tabla preconfeccionada se divide en 3 fragmentos horizontales más pequeños para que el procesamiento de la gran tabla de datos sea más manejable. La partición horizontal sólo convierte la tabla en una versión más pequeña y eficiente de sí misma, manteniendo sus características originales. El mismo concepto puede aplicarse a las infraestructuras de cadenas de bloques, en las que el estado de la cadena puede fragmentarse en trozos más pequeños y manejables, también conocidos como fragmentos.

Escalado horizontal vs. vertical

Al tratar el tema de la escalabilidad, las infraestructuras de cadena de bloques tienen unas cuantas opciones: Soluciones de capa 2, escalado vertical y partición horizontal.

Las soluciones de capa 2 son soluciones de escalabilidad fuera de la cadena de bloques. La idea de estas soluciones, en esencia, es prescindir de la capa base subyacente y colocar una arquitectura adicional sobre ella. Esta capa adicional se ocupa de los cálculos complejos y busca mitigar los diversos cuellos de botella de la arquitectura de la capa base. Plasma y Raiden son los ejemplos más comunes de escalabilidad de la capa 2 y quizás el proyecto más notable que aprovecha la capa 2 es Polygon, antes Matic.

Layer2 Scaling

Las soluciones de escaado de capa 2 operan fuera de la cadena y se construyen sobre la capa base de una cadena de bloques - Imagine vía BlockchainSimplified

Aquí es donde entra en juego el escalado vertical. El escalado vertical implica la expansión de una red añadiendo más potencia y memoria a la unidad central de procesamiento de un sistema y se realiza mejorando la eficiencia de cada transacción individual. Para ello, el escalado vertical básicamente añade más potencia de procesamiento a una máquina virtual existente para reforzar su capacidad de procesamiento.

Las soluciones de escalado vertical son bastante limitadas en su eficacia, pero son mucho más fáciles de implementar en comparación con los escalados horizontales. De hecho, si por ejemplo hay un problema con la memoria local de una máquina virtual que no es suficiente para procesar una carga de transacciones entrantes, una solución de escalado vertical podría remediarlo. En este caso, un escalado vertical añadiría más memoria a la infraestructura de la máquina virtual, reduciendo así su sobrecarga de procesamiento y aumentando su rendimiento transaccional.

Vertical Scaling

El escalado vertical añade más potencia y memoria a una máquina existente - Imagen vía StackOverflow 

Sin embargo, si la carga de transacciones entrantes supera la capacidad de hardware de la máquina virtual, es decir, no puede ser procesada físicamente, se requiere de una solución de escalamiento horizontal.

Como ya se ha dicho, el escalado horizontal o la fragmentación ayudan a mejorar el rendimiento general de las infraestructuras de cadenas de bloques añadiendo más clusters o máquinas virtuales individuales a la capa base existente. Aunque se trata de un sistema eficiente para el escalado, la fragmentación tiene sus complejidades, ya se requiere más tiempo para su implementación y para que sea totalmente operativa.

Además, en lo que se refiere a la implementación activa de soluciones de escalabilidad en las infraestructuras de cadena de bloques, hay algunas cuestiones que deben abordarse desde un punto de vista puramente técnico y fundamental.

Fragmentación para una mayor descentralización

La correlación entre la fragmentación y la descentralización en la cadena de bloques es, sin duda, un argumento a favor. De hecho, al introducir el concepto de escalabilidad en el contexto de la tecnología de cadena de bloques, hay que señalar que, dado que estos sistemas ya funcionan como redes distribuidas, es intrínsecamente difícil aumentar su rendimiento global añadiendo entidades de hardware, como nodos, mineros o validadores.

Esto se ve acentuado por el hecho de que los desarrolladores de la cadena de bloques se esfuerzan por preservar la inmutabilidad general de la cadena de base y están decididos a no manipular su arquitectura subyacente.

Esto, a su vez, produce algunas ventajas para las soluciones de escalado, ya que les permite aprovechar la seguridad y fiabilidad existentes de la cadena de la capa base para ampliar su rendimiento transaccional potencial, sin tocar su infraestructura base. La Lightning Network es un muy buen ejemplo de esto, ya que utiliza su tecnología para aprovechar la seguridad de Bitcoin con el fin de aumentar la capacidad transaccional global del sistema.

The Lightning Network

La red Lightning utiliza la fiabilidad de la red Bitcoin para aumentar el rendimiento transaccional - Imagen vía Blockonomics

Además, como la fragmentación divide los grandes trozos de datos en particiones horizontales más pequeñas y eficientes, esto permite crear un ecosistema más descentralizado en su conjunto. De hecho, si toda la estructura de datos de una red de cadenas de bloques residiera en un supernodo y sólo unos pocos individuos pudieran ejecutarla y acceder a ella, esto, en primer lugar, facilitaría a los atacantes la manipulación y abuso de dicha estructura y, en segundo lugar, alejaría las aspiraciones de funcionamiento descentralizado y sin confianza propias de los ecosistemas de cadenas de bloques.

Así, la escalabilidad y la fragmentación, en particular, pueden considerarse componentes integrales del desarrollo general de las redes de cadenas de bloques, así como catalizadores finales de la "raison d’être" descentralizada de las cadenas de bloques.

Fragmentación en ETH 2.0

Según el explorador de bloques Etherscan, los nodos completos de Ethereum ya consumen al menos 5 terabytes de espacio, es decir, 10 veces más de lo que puede ocupar un ordenador medio. Además, los nodos de Ethereum van a ser más grandes y difíciles de ejecutar a medida que la plataforma se desarrolle y su base de usuarios crezca con el tiempo.

Nodes On Etherscan

Sin una solución de escalado sostenible, las redes de cadenas de bloques tendrán dificultades para gestionar grandes cantidades de nodos - Imagen vía EtherScan

Está claro, por tanto, que Ethereum requiere de una solución de escalado de forma inminente, y la fragmentación es, de hecho, la solución para ello. Por lo tanto, hablemos ahora de cómo funcionará la fragmentación en Ethereum 2.0.

Divide los nodos y vencerás

Junto con Casper y Ethereum WebAssembly (ewasm), la fragmentación es una de las principales características de la esperada actualización Ethereum 2.0. Actualmente, en la red de Ethereum, cada nodo debe verificar cada transacción, una característica que garantiza intrínsecamente la vitalidad de su red. Esto es así para que, incluso si el 80% de los nodos de Ethereum se cayeran simultáneamente, la red siguiera funcionando.

Este modelo actual no hace necesariamente que Ethereum sea más lento, pero sí es problemático, ya que no optimiza completamente los recursos de la red ETH. Por ejemplo, supongamos que hay tres nodos distintos en la red de Ethereum que verifican una transacción y estos nodos se definen como nodo X, nodo Y y nodo Z. En la actualidad, para verificar una transacción, definida como dato T, cada nodo tendrá que verificar todo el conjunto de datos de T para su confirmación.

Aunque esto garantiza la seguridad de la red en su conjunto, crea un cuello de botella por el que deben pasar todas las transacciones. De hecho, la red se ve obligada a esperar a que cada nodo verifique cada transacción, lo que, por supuesto, no es el escenario más ideal o eficiente. Sin embargo, con Ethereum 2.0 y su propuesta de fragmentación, el conjunto de datos de T se dividiría en T1, T2 y T3, por ejemplo, y los nodos X, Y y Z sólo tendrían que procesar uno de los fragmentos de datos más pequeños para verificar la totalidad del conjunto de datos de T.

Al dividir los datos en subconjuntos individuales más pequeños, Ethereum puede lograr un mayor rendimiento transaccional y crear un entorno más rápido y sostenible para perseguir sus objetivos futuros y seguir creciendo como ecosistema.

Mecánica de la fragmentación

Ethereum 2.0 buscará maximizar la eficiencia de su red completando una transición de la capa base de prueba de trabajo (PoW) a prueba de participación (PoS). El algoritmo de consenso prueba de trabajo (PoW) se basa en el concepto de minero para mantener la red segura y sincronizada, y requiere grandes cantidades de potencia de cálculo para funcionar. Por otro lado, la prueba de participación sustituye el consumo de energía por un compromiso financiero.

En este caso, el protocolo de prueba de participación de ETH 2.0, llamado Casper, ya no requerirá mineros, sino que implementará validadores que, colocando al menos 32 ETH en una piscina de staking, podrán validar transacciones y crear nuevos bloques. Casper se implementará por medio de la beacon chain, que será la cadena del sistema de Ethereum 2.0, y permitirá que los fragmentos se comuniquen entre sí.

Beacon Chain

La beacon chain es el mecanismo de coordinación de ETH 2.0, responsable de crear nuevos bloques y recompensar a los validadores – Ethos.Dev

Por supuesto, esto constituye un gran avance en la infraestructura y los usuarios, en general, deberían encontrarse con una forma nueva y más optimizada de Ethereum. Para empezar, ETH 2.0 hará que las cuentas de usuario sean específicas de un fragmento determinado y compartimentará las transacciones en "paquetes de transacciones", asignando cada paquete a un fragmento concreto. Estos paquetes se subdividirán a su vez en cabeceras y cuerpos de grupos de transacciones, y cada componente definirá las características específicas del fragmento.

Transaction Group Header

Cabecera y cuerpo del grupo de transacciones del fragmento - Imagen vía BlockStreet Medium

Como se ilustra en la imagen anterior, cada cabecera de grupo de operaciones tiene una parte izquierda y otra derecha distintas. La parte izquierda de la cabecera presenta los siguientes componentes:

  • ID del fragmento: Para identificar el fragmento al que pertenece el grupo de transacciones.

  • Estado previo de la raíz: El estado de la raíz de ese fragmento concreto antes de que el grupo de transacciones se coloque dentro de él.

  • Estado posterior a la raíz: El estado de la raíz del fragmento después de que el grupo de transacciones se coloque dentro de él.

  • Recibo de la raíz: Confirmación de que el grupo de transacciones ha entrado en la raíz del fragmento.

La parte derecha de la cabecera, en cambio, muestra un grupo de validadores seleccionados al azar que verifican las transacciones dentro del propio fragmento. Estos paquetes de transacciones, además, tienen que someterse a un doble proceso de verificación para poder anexionarse a la cadena principal. En el primer proceso de verificación, los validadores asignados aleatoriamente a un fragmento votan sobre la validez de cada paquete de transacciones. Si los validadores votan afirmativamente, un comité independiente de la beacon chain debe verificar este voto mediante un contrato inteligente de gestión de fragmentos. Si el segundo voto también es positivo, el paquete de transacciones se añadirá a la cadena principal y pasará a formar parte del registro público, estableciendo un enlace cruzado inmutable con el grupo de transacciones de ese fragmento.

Comunicación entre fragmentos

La infraestructura de ETH 2.0 permitirá que los fragmentos se intercomuniquen eficazmente con el objetivo de producir un ecosistema verdaderamente interoperable y mutuamente beneficioso. Vitalik Buterin, el visionario fundador de Ethereum, describió el concepto de comunicación entre fragmentos en la DevCon 2018 de Praga al afirmar:

Teniendo en cuenta la analogía de la isla de fragmentos de Buterin, está claro que si estos fragmentos quieren comunicarse con éxito entre sí, necesitarán un protocolo específico de intercomunicación entre fragmentos. El protocolo de intercomunicación entre fragmentos de ETH 2.0 es el llamado "paradigma de recibo". Como se muestra en la imagen anterior, el recibo de la raiz es un componente de la cabecera del grupo de transacciones y se utiliza para confirmar que un grupo de transacciones ha entrado en la raíz del fragmento en un árbol de Merkle.

Cada transacción del grupo genera un recibo en el fragmento específico al que pertenece. La beacon chain, la cadena del sistema de Ethereum 2.0, utilizará entonces su memoria compartida distribuida para almacenar en ella todos los recibos de estas transacciones, de ahí el término "paradigma de recibo". Esto se hace para que otros fragmentos puedan ver e interactuar con los recibos dentro de la beacon chain, pero debido a la naturaleza inmutable de la cadena de bloques, no podrán manipular los recibos de las transacciones.

Ethereum 2.0

Ethereum 2.0 hará realidad la fragmentación, y Ethereum será una nueva cadena de bloques.

Se trata de una característica importante porque permitirá que los fragmentos sepan exactamente cuándo es apropiado comunicarse entre sí y sólo lo hagan cuando sea necesario. En esencia, este diseño específico de ETH 2.0 permite que los fragmentos verifiquen y se beneficien de la actividad de los demás, manteniendo la finalidad y el propósito de cada fragmento individual.

Complejidades operativas y latencia de la comunicación entre fragmentos

Dos de los problemas más acuciantes en lo que se refiere a la comunicación entre fragmentos de ETH 2.0 son la complejidad operativa y la latencia. Sin embargo, Vitalik Buterin ha anunciado dos propuestas para remediarlo y garantizar el desarrollo de un Ethereum totalmente fragmentado.

Estas propuestas permitirán:

  • Canalizar varias responsabilidades y tareas de los fragmentos individuales a la beacon chain.

  • Garantizar que cada fragmento tenga su propio estado y ejecución.

  • Reducir las complejidades de la estructura del fragmento y preservar varias funcionalidades de la red.

  • Dar a los fragmentos la funcionalidad suficiente para soportar la ejecución de contratos inteligentes en los distintos grupos de transacciones.

  • Introducir 3 nuevos tipos de transacciones: Nuevo Script de Ejecución, Nuevo Validador y Retirada. El Nuevo Script de Ejecución creará un script de ejecución que puede contener ETH, el Nuevo Validador puede añadir nuevos validadores al sistema, y la Retirada puede eliminar validadores de la beacon chain.

Además, otro problema que ETH 2.0 pretende resolver es la latencia de la red en la comunicación entre fragmentos. Si, por ejemplo, un usuario quiere enviar un token del fragmento X al fragmento Y, una transacción en el fragmento X destruye el token allí, pero guarda un registro del valor enviado, la dirección y el fragmento de destino, en este caso el fragmento Y.

Tras un cierto retraso, cada fragmento se entera de la raíz de estado de otros fragmentos, lo que les permite verificar la transacción y confirmar que la dirección del fragmento Y es válida. El fragmento X producirá entonces un recibo de la transacción que será recuperado por el fragmento Y, y permitirá destruir el valor en el fragmento X y trasladarlo al fragmento Y.

Network Latency

Ethereum 2.0 aspira a resolver la lentitud de las transacciones y la latencia de la red de ETH - Imagen vía CNSPartners

Como es fácil de imaginar, este proceso provoca bastantes retrasos y se aleja completamente de los objetivos de escalabilidad de ETH 2.0. Por ello, Ethereum ha propuesto una solución para esto, llamada "transferencias rápidas entre fragmentos mediante raíces de recepción optimistas". Aunque el título puede inducir a error, en realidad se trata de un sistema bastante sencillo que implica almacenar estados condicionales y ser optimista sobre la validez de una transacción enviada.

Básicamente, todo esto significa que si Bob tiene 50 tokens en el fragmento B y Alice envía 20 tokens a Bob desde el fragmento A, pero el fragmento B aún no conoce el estado del fragmento A y, por tanto, no puede validar completamente la transferencia, el estado de la cuenta de Bob (fragmento B) mostrará temporalmente 70 tokens si la transferencia de Alice es auténtica o 50 tokens si no lo es.

This is because validators who authenticate the transaction from Shard A to Shard B can be optimistically certain of the finality of the transfer and of the fact that Bob’s account will eventually resolve to 70 tokens once the transaction from Alice is validated. Thus, validators can act just as if Bob already has the 70 tokens.

Una vez que la transacción del fragmento A al fragmento B se verifica, se convierte en permanente, o simplemente se revierte si no era válida. Este sistema de transferencia rápida entre fragmentos reduce en gran medida los cuellos de botella causados por la latencia de la red y, si se aplica con éxito, permitirá a Ethereum 2.0 acelerar su rendimiento y mejorar su escalabilidad en general.

Dejando a un lado Ethereum 2.0, hablemos ahora brevemente de cómo se implementa la fragmentación en otros proyectos y, más concretamente, en Zilliqa, NEAR y Polkadot.

Fragmentación en Zilliqa

Otro proyecto que presenta interesantes propuestas de valor y que también implementa la fragmentación es Zilliqa. Fundada en 2017, Zilliqa es una cadena de bloques para casos de uso con un intensivo coste computacional para empresas y tecnologías emergentes, siendo sus funcionalidades clave la fragmentación y el procesamiento transaccional en paralelo.

Zilliqa

Plataforma de cadena de bloques de alto rendimiento de última generación.

Aunque su red funciona con algoritmos de prueba de trabajo (PoW) que requieren una gran potencia de cálculo, Zilliqa está diseñada para escalar bajo demanda mediante la incorporación de más nodos ZIL y mineros, lo que permite añadir más fragmentos a la red.

ZIL es el token nativo de Zilliqa y, según su modelo de fragmentación, si Zilliqa tuviera 20.000 nodos, su red podría dividirse en 25 subredes con 800 nodos cada una, que podrían procesar datos en paralelo y simultáneamente. La arquitectura de Zilliqa es compleja, ya que utiliza dos cadenas de bloques, también en paralelo. El proyecto utiliza bloques de transacciones, llamados TX-Blocks, para contener las transacciones enviadas por los usuarios de la red, y bloques de servicios de directorio, o DS-Blocks, para contener los datos de los mineros de la red que aseguran y apoyan la infraestructura de Zilliqa.

La fragmentación de la cadena de bloques de Zilliqa es un proceso doble. En primer lugar, elige nodos del Comité de Servicios de Directorio que inician el proceso de fragmentación y asignan nodos a cada fragmento. En segundo lugar, una vez que las transacciones se verifican en el fragmento, pueden ser verificadas por toda la red y entrar en un estado global que anexa cada transacción en cada fragmento a una única fuente de verdad verificable en la cadena de bloques de Zilliqa.

Zilliqa Sharding

Modelo de fragmentación divide y vencerás de Zilliqa - Imagen vía ZilliqaDeveloperPortal

En esencia, una transacción fragmentada en la red Zilliqa incluye el lanzamiento de una transacción por parte de un usuario, que se transfiere a un fragmento que valida la transacción y la compara con otras transacciones para crear un "microbloque" de transacciones. A continuación, el fragmento logra un consenso sobre la validez del microbloque, que se asigna al Comité de Servicios de Directorio, que fusiona los microbloques con el "bloque final". A continuación, el Comité de Servicios de Directorio logra el consenso final sobre este bloque antes de anexionarlo a la cadena de bloques.

Fragmentación en NEAR

Un proyecto que implementa una forma de fragmentación bastante alternativa no es otro que el Protocolo NEAR. Lanzado en 2020, NEAR es una plataforma de cadena de bloques con fragmentación gobernada por la comunidad (prueba de participación, PoS), cuyo núcleo es la interoperabilidad y la escalabilidad.

NEAR aprovecha su tecnología Nightshade para conseguir una capacidad de rendimiento enorme que hace que los validadores procesen las transacciones en paralelo para mejorar la capacidad general de procesamiento de transacciones de la cadena de bloques. Aunque el modelo de fragmentación basado en cadenas de bloques y una beacon chain es potente, presenta algunas complejidades de infraestructura debido a que tanto las cadenas de bloques como la beacon chain son, en esencia, entidades separadas dentro del mismo ecosistema de cadena de bloques.

NEAR Protocol Shards

El protocolo NEAR divide todas las transacciones en bloques y busca acumularlas en un solo bloque de mayor tamaño - Imagen vía LearnNEAR

El Protocolo NEAR aborda esta cuestión e introduce un diseño de fragmentación convincente modelando su infraestructura como una cadena de bloques única, en la que cada bloque contiene lógicamente todas las transacciones de todos los fragmentos, y cambia el estado completo de los fragmentos. A través de Nightshade, NEAR puede preservar su espíritu de singularidad de la cadena de bloques fragmentando las transacciones de cada bloque en bloques físicos, idealmente con un bloque por fragmento, y agregándolos en un solo bloque de tamaño mayor.

Fragmentación en Polkadot

Polkadot utiliza un modelo de fragmentación que difiere totalmente del mecanismo de fragmentación utilizado en Ethereum y utiliza sus características de componibilidad entre cadenas para activar la fragmentación a través de parachains. El diseño nativo de Polkadot es el de una red multicadena que proporciona fiabilidad, seguridad y escalabilidad de capa 0 a todas las cadenas de bloques de capa 1 construidas sobre su arquitectura.

Estas capas 1 representan la red de parachains, siendo las parachains las diversas cadenas de bloques que se ejecutan en paralelo dentro del ecosistema Polkadot, tanto en la red Polkadot como en la red Kusama.

Parachain Sharding

Las parachains permiten a Polkadot procesar múltiples transacciones paralelas y realizar la fragmentación entre cadenas - Imagen vía PolkadotComics

Las parachain están conectadas a la relay chain de Polkadot y son seguras, y pueden beneficiarse de la seguridad, escalabilidad e interoperabilidad que proporciona Polkadot. La red de parachains puede considerarse un paradigma avanzado de fragmentación que implementa las características de la cadena principal de Polkadot y funciona de forma paralelizada, como un fragmento.Los proyectos de parachain como Clover, por ejemplo, pueden proporcionar transacciones sin gas y aportar nuevas capas de escalabilidad e interoperabilidad a las infraestructuras de capa 1 sin fragmentación. Esto se debe a que Polkadot, como red multicadena construida sobre parachains, es capaz de procesar múltiples transacciones paralelas en varias cadenas a la vez, encarnando en última instancia el concepto de fragmentación entre cadenas.

Conclusión

La fragmentación es la base de la escalabilidad en las redes descentralizadas y ofrece una serie de interesantes oportunidades para aquellos proyectos que quieran aplicarla o al menos experimentar con su concepto.

La cuestión, en la actualidad, viene definida por el hecho de que las redes de cadenas de bloques crecen y se expanden a un ritmo exponencial debido a su popularidad, casos de uso y, en definitiva, a su demanda. A su vez, esto provoca una serie de cuellos de botella dentro de la cadena, complejidades e ineficiencias de la red, que son totalmente representativas de su extrema necesidad de una solución de escalado adecuada.

Ethereum 2.0 está preparado para introducir sus capacidades de fragmentación en un futuro no muy lejano y esto representa uno de los acontecimientos más esperados en la historia de la cadena de bloques de ETH. Las expectativas siguen siendo increíblemente altas, ya que si la fragmentación de ETH 2.0 tiene éxito, garantizará la escalabilidad a largo plazo de la red Ethereum y acompañará al proyecto en su intento de convertirse en el "ordenador mundial" descentralizado, abierto a todos e imposible de apagar.

Aviso: Estas son las opiniones del autor y no deben considerarse consejos de inversión. Los lectores deben hacer su propia investigación.

El artículo ¿Qué es la fragmentación? Guía completa para principiante fue publicado en primer lugar en Coin Bureau.

Comparte: