Share This Article
[ACTUALIZADO NOVIEMBRE 2022]
Formarse es esencial cuando hablamos de criptomonedas. No solo a nivel de inversor: también en todo lo relacionado con el funcionamiento de las criptos. Existen términos complejos que conviene conocer y que marcan la tónica general del funcionamiento de las criptos.
Uno de esos términos complejos que los inversores medios suelen no manejar es el sharding. Se entiende por sharding el proceso de dividir una base de datos de manera horizontal para distribuir la carga. En informática es un concepto que empezó a hacerse muy popular en la década de los 90.
En lo que respecta a las criptomonedas, el sharding se utiliza para descongestionar la red y aumentar las transacciones por segundo a medida que se crean nuevas “shards” o segmentos.
¿Qué hace el sharding con las criptomonedas?

Hacer sharding tiene efectos inmediatos en el funcionamiento de las cadenas de bloques. Al dividir la red blockchain en pequeños segmentos individuales o shards, cada uno de esos segmentos tendrá un conjunto único de contratos inteligentes.
Los nodos se asignarán a cada shard de manera individual para verificar las transacciones, en vez de delegar en ellos la responsabilidad de verificar cada transacción en la red.
Las cadenas de bloques que usan sharding se basan en un algoritmo de consenso PoS o Proof of Stake.
Además, al dividir la cadena de bloques en segmentos más pequeños, el rendimiento de las transacciones aumenta, evitando los problemas recurrentes de la escalabilidad con los que normalmente las cadenas de bloques lidian.
El sharding se logra dividiendo los nodos de la red en varios grupos, y segmentando la información que se encuentra en la red entre esos grupos. Es decir, divide la base de datos en segmentos o shards, cada uno con características diferentes, por lo que no es posible confundirlos entre sí.
La ventaja del sharding es que cada uno de los shards tiene un conjunto de contratos inteligentes diferentes.
Al crear una clasificación de datos horizontal, cada una de las filas incluirá solamente fragmentos con un tipo de información específica. Esto ayuda a dividir shards en función de los contratos inteligentes mantenidos.
Otro punto a favor es la organización de los nodos de red. Con el sharding, se crea una red de transmisión centralizada que permite que los fragmentos se comuniquen entre sí, haciendo que cada uno de ellos pueda conservar su información y compartirla siempre que sea necesario mediante un relé.
El sharding facilita la comunicación entre fragmentos, permitiendo que los accesos a los datos sean mucho más fluidos.
¿Por qué es tan importante todo esto? Porque la comunicación entre fragmentos, si es fluida, permite a todos los usuarios de una red acceder a la información almacenada en la cadena de bloques, evitando problemas que suelen aparecer cuando la información no está debidamente compartimentada.
Otros aspectos del sharding que conviene conocer

Ya hemos hablado de una de las principales ventajas del sharding: mejora la escalabilidad. Eso permite que se pueda conectar una mayor cantidad de nodos sin que la velocidad de las operaciones se vea comprometida.
Pero también tiene un impacto positivo a otros niveles. Por ejemplo, esa mejora de la escalabilidad fomenta que la participación en la red aumente, lo que siempre es beneficioso.
El sharding permite clasificar los datos de manera óptima y aumentar el rendimiento de los bloques.
Al poder operar un mayor número de usuarios y manejar la información sin que se vean comprometida, es posible intercambiar una cantidad mucho más alta de información en una cadena de bloques.
Sin embargo, el sharding tiene un hándicap: puede llegar a aumentar los riesgos que se corren al entrar en una red. Por ejemplo, la toma de control de un shard es más probable que pase cuando la participación es mayor. Y lo mismo ocurre cuando hablamos de la colusión entre fragmentos.
La asignación aleatoria de nodos y shards parece solucionar el problema de un posible acceso malicioso.
Eso es un riesgo, dado que se podría llegar a perder una cantidad de información mayor por bloque. Además, los datos podrían corromperse si ingresa un elemento malicioso al bloque.
Esta cuestión ha sido abordada por Ethereum, dando una solución efectiva al problema: haciendo que cada shard tenga asignado un nodo al azar. Un proceso de asignación que se produce a intervalos irregulares y que no es posible predecir.
Entonces, ¿es recomendable hacer sharding?

Siempre que exista la posibilidad de sufrir una congestión de red, el sharding es una buena opción. Las cadenas de bloques llegan a manejar una cantidad de datos tan grande que pueden amenazar con colapsar si no se pone solución al problema.
Si existe la posibilidad de congestión de la red, el sharding es prácticamente obligatorio.
La compartimentación de esos datos que forman parte de las cadenas de bloques permite mejorar la fluidez, aunque hay que tener en cuenta que la probabilidad de que ingrese un elemento malicioso es más alta si aumenta la participación.
Con el paso del tiempo, el sharding es algo que va a tener que realizarse en todas las cadenas de bloques para poner solución al problema de la congestión. No obstante, Ethereum ha dado una solución satisfactoria al problema al crear un sistema de asignación aleatorio de shards y nodos.