Podría decirse que la tecnología blockchain está revolucionando la forma en que se almacenan y distribuyen los datos. Sin embargo, debido a la gran cantidad de usuarios que tienen algunas blockchains, aparecen problemas como el trilema de la escalabilidad, seguridad y descentralización. En este artículo hablaremos de cómo la fragmentación o sharding podría ayudar a resolver el problema de la escalabilidad. Proyectos como NEAR, Polkadot o Ethereum plantean utilizar la fragmentación de estado para ser más escalables, aunque en las blockchains públicas es todo un reto.
Qué es sharding
La practica de la fragmentación no es nueva, ya que era muy común entre los administradores de bases de datos antes de la existencia de la tecnología blockchain. Cuando se habla de fragmentación o Sharding, se hace referencia al proceso de dividir cualquier tipo de base de datos en bases de datos más pequeñas, para aumentar así la velocidad con la que se ejecutan las transacciones. El aumento del número de bases de datos es directamente proporcional al aumento de velocidad de transacciones y mejor procesamiento simultáneo.
Solana, la blockchain de escalabilidad que se paralizó por exceso de actividad
En una cadena de bloques, los nodos procesan y almacenan todas las transacciones de la cadena y ello hace que sea un sistema tan seguro. El problema viene cuando la red se hace demasiado grande, como en el caso de Bitcoin o Ethereum, y se ralentiza el tiempo de ejecución de las transacciones, conllevando un aumento de costes. La escalabilidad es la capacidad que tiene cualquier sistema para adaptarse al incremento de su demanda, sin que se vea perjudicado. Por ello, la escalabilidad es tan importante en una red blockchain que quiera llegar a un gran número de usuarios.
La fragmentación en una blockchain
La fragmentación en una cadena de bloques es un modelo de ejecución paralela, donde se dispone de diferentes nodos que procesan diferentes transacciones simultáneamente. Por lo que en lugar de que cada nodo registre cada transacción de la cadena de bloques, algunos nodos procesarían ciertas transacciones, mientras que otros procesarán otras. No significa que cada nodo, independientemente, procese unas transacciones, sino que varios nodos (y no todos los de la red) procesan el mismo fragmento que se compone de distintas transacciones. Esto permite más transacciones de forma simultánea, sin grandes tiempos de espera y una mejor eficiencia y escalabilidad.
Pongamos un ejemplo para entenderlo. Vamos a imaginar una red blockchain que admite 1.000 nodos. Esto quiere decir que podríamos dividir los datos en 10 fragmentos y que cada fragmento tendría asociado 100 nodos. De esta forma, cada nodo procesa y almacena 1/10 parte de los datos, pero los datos se verifican en 100 nodos. Esto nos da un aumento x10 de velocidad.
Mayor dificultad en las blockchain públicas
Todas las claves de por qué 2021 ha sido el año más productivo de la joven industria cripto
La fragmentación puede ser una herramienta efectiva, sobre todo, para las blockchains de entorno privado. Sin embargo, usar la fragmentación en blockchain públicas entraña mayor dificultad. Una de ellas es la comunicación entre fragmentos. La comunicación entre los fragmentos es difícil y requiere mucho desarrollo para implementar el mecanismo de comunicación. Aún así, si se consiguiese la comunicación, esta misma podría conducir a una mayor sobrecarga, disminuyendo algunas ventajas de la fragmentación. Algo parecido al Sharding podría ser Interledger, donde se permite la interconexión entre ledgers y facilita una blockchain más escalable con la ayuda de otras.
Un desafío también importante en la fragmentación es la forma de consenso y cómo se eligen los validadores. Existen muchos tipos de consenso, pero en la actualidad los más conocidos son PoW (Proof Of Work) y PoS (Proof Of Stake). En general, el PoS se considera mejor para implementar la fragmentación que PoW, por la manera en que valida las transacciones. El PoS se combina con una selección pseudoaleatoria de muestreo de los validadores dentro de un fragmento. Esto hace que un mal actor no sepa en qué fragmento se le está colocando, antes de que realmente se coloque en él, tratándose así de una validación aleatoria y evitando un posible ataque del 1%.
Fragmentación de redes y estados
Existen varios tipos de fragmentación, pero la más complicada de aplicar es la fragmentación de estado. Se trata de dividir todo el estado de la red entre operadores de nodos y los fragmentos. Por lo que cada fragmento solo almacena una parte del estado. Los nodos se mueven entre fragmentos de forma aleatoria y cada nodo mantendrá el estado de fragmento en el que se encuentra. Se necesita una rápida comunicación entre fragmentos, ya que pueden darse transacciones entre fragmentos.
Casos de uso de la tecnología blockchain en el campo del Derecho
La fragmentación de redes se refiere al procesamiento en paralelo de las transacciones en fragmentos separados. Es decir, cada nodo almacena una copia local de la cadena de bloques completa. Las transacciones están paralelizadas y el consenso se ejecuta en cada fragmento. El problema con este tipo de fragmentación es que pese a acelerar las transacciones, el cuello de botella está en el almacenamiento. La capacidad de cada nodo es el factor limitante para la escalabilidad lineal, a medida que el tamaño de cada fragmento crece inevitablemente.
Blockchains basadas en la fragmentación de estados
Proyectos como Ethereum 2.0, Algorand, Polkadot, Cardano, a través de Hydra, NEAR y Zilliqa están ideando y desarrollando sus propios diseños de blockchain basados en la fragmentación de estados. Todos ellos tienen en común que están basados en el algoritmo de consenso Proof Of Stake y en la selección pseudoaleatoria de validadores. Por ejemplo, Ethereum 2.0 planea utilizar funciones aleatorias verificables (VRF) para aumentar la seguridad en la fragmentación.
Pese a que una gran mayoría de personas coincide en señalar que la solución a la escalabilidad es la fragmentación, todavia no existe una implementación de fragmentación de estado 100% funcionando, más allá de las redes de prueba y documentos académicos, pero están muy cerca de llegar a implementarse. Sin embargo, es cierto que Zilliqa ha sido la primera en utilizar la fragmentación. Actualmente, solo gestiona fragmentación de redes y está investigando cómo pasarse a la fragmentación de estados.
También puedes seguirnos en nuestros canales de Telegram y Twitter