Uno de los retos del blockchain, y de otras redes basadas en la misma idea de la cadena de bloques, es su escalabilidad: ampliar y ampliar esas redes distribuidas para abordar el creciente interés comercial existente sin que el rendimiento se vea afectado. Y es que la regla es sencilla: conforme más equipos se unen a una red en la que todos los nodos son iguales entre sí, la eficacia de todo el sistema tiende a degradarse.

A medida que la tecnología blockchain y las criptomonedas se hacen más populares, la escalabilidad de la red se vuelve un problema cada vez mayor, pues las cadenas de bloques de las criptomonedas más importantes no están listas para procesar un número tan grande de transacciones, es por ello que el sharding es un concepto que se está poniendo de moda dentro de la comunidad criptográfica.

El sharding es una forma de segmentar los datos de una base de datos de forma horizontal, es decir, partir la base de datos principal en varias en bases de datos más pequeñas y repartiendo la información. De esta forma lo que se consigue es una partición de datos en diferentes bases que tengan cierta homogeneidad, para conseguir una escalabilidad mucho más rápida.

Es un método por el que se particiona y distribuye la carga de procesamiento y almacenamiento a lo largo de una red peer-to-peer (P2P). De este modo, se consigue que los nodos no se vean obligados a procesar toda la carga transaccional de la red, sino únicamente aquella relacionada con el fragmento que le corresponde.

¿Quiénes están usándolas?

Aunque todavía es un concepto en pañales dentro del mundo de blockchain (con preocupaciones por resolver en torno a la seguridad de este modelo), algunas plataformas ya han comunicado que están explorando sus posibilidades.

Ethereum comenzó a explorar formas de aumentar el rendimiento de su red, principalmente por medio del ‘sharding’.

Ejemplo de cómo funciona

Para ver su eficacia, vamos a analizar un ejemplo sencillo.

El primer ejemplo, muestra una tabla donde están condensados todos los datos de los usuarios de manera desglosada lo que hace que sea mucha información y la base de datos empieza a ser muy numerosa, es ahí cuando nos encontramos ante grandes problemas al tener los datos de forma desorganizada y se vuelve inmanejable.

Ahora bien, si aplicamos el sharding como en el segundo ejemplo, podemos encontrar una infinidad de tablas horizontales clasificadas en un cierto grado de homogeneidad, de esta forma, al final lo que estamos consiguiendo es fragmentar una única tabla en múltiples tablas con menos datos cada uno, con esto conseguimos mejorar la escalabilidad al agrupar menos datos en tablas más pequeñas, de esta forma el acceso a ellos es mucho más rápido, y también se consigue mejorar la monitorización de los mismos.

De manera práctica, el sharding es básicamente una manera de dividir la información en partes para luego almacenarlas en múltiples bases de datos con el fin de obtener un mejor rendimiento.

En términos de la blockchain, la red de Ethereum es la que más problemas presenta de escalabilidad, funciona de forma que todos los datos que contiene cada transacción deben ser validados por todos los nodos de la cadena, por eso, al fragmentar los datos en shards, lo que están consiguiendo es que los nodos se repartan los shards y sólo tengan que validar una parte de los datos que contiene cada transacción, es decir, cada uno valida una parte de la información (se reparten la información) y luego toda la información una vez validada se incorpora a la cadena de forma completa.

De esta manera se logra mantener toda la información en el bloque, con la diferencia de que los nodos tan sólo contienen una parte de la información y no toda como hasta ahora. Con este método se consigue mejorar la eficacia y la escalabilidad al fragmentar la información.

Deja un comentario