¿Qué es Sharding?

A medida que las blockchains se implementan en un número cada vez mayor de programas piloto para todo, desde transacciones financieras transfronterizas hasta la gestión de la cadena de suministro, persiste un problema: la falta de escalabilidad.

A medida que más computadoras se unen a la red de igual a igual, la eficiencia de todo el sistema generalmente se degrada.

La escalabilidad ya se ha identificado como un problema con las criptomonedas como bitcoin y Ethereum’s Ether. Si un libro mayor distribuido debe lograr la adopción por parte de las empresas de tecnología financiera (FinTech) y competir con las redes de pago cientos de veces más rápido, debe encontrar una manera de aumentar la escalabilidad y el rendimiento y abordar los problemas de latencia.

¿Qué es Sharding?

Sharding es uno de varios métodos populares que están explorando los desarrolladores para aumentar el rendimiento transaccional. En pocas palabras, la fragmentación es una forma de particionar para distribuir la carga de trabajo computacional y de almacenamiento en una red punto a punto (P2P) para que cada nodo no sea responsable de procesar la carga transaccional de toda la red. En cambio, cada nodo solo mantiene información relacionada con su partición o fragmento.

La información contenida en un fragmento aún se puede compartir entre otros nodos, lo que mantiene el libro mayor descentralizado y seguro porque todos pueden ver todas las entradas del libro mayor; simplemente no procesan ni almacenan toda la información.

El enigma del consenso

Uno de los problemas más persistentes con las blockchains públicas gira en torno a los protocolos de consenso: cómo obtener un acuerdo de los usuarios sobre si las transacciones propuestas son auténticas y deben agregarse a un libro mayor distribuido; Los protocolos de consenso, como el mecanismo de prueba de trabajo (PoW) más popular, pueden requerir una gran cantidad de recursos informáticos.

En una blockchain basada en PoW, cada computadora o nodo de autenticación registra todos los datos en la cadena y es parte del proceso de consenso. En blockchains grandes como bitcoin, la mayoría de los nodos participantes deben autenticar nuevas transacciones y registrar esa información si se van a agregar al libro mayor; eso hace que completar cada transacción sea lento y arduo. Por eso, bitcoin, que se basa en un PoW, solo puede procesar de 3,3 a 7 transacciones por segundo, y una sola transacción puede tardar 10 minutos en finalizar. Ethereum, otro libro mayor y criptomoneda popular de blockchain, solo puede procesar de 12 a 30 transacciones por segundo.

En comparación, VisaNet de Visa procesa en promedio 1.700 transacciones por segundo.

La ventaja de que cada nodo registre la nueva información que se agrega a una Blockchain es que los datos son indiscutibles e inmutables. Las blockchains basadas en PoW se escriben una vez y agregan muchas aplicaciones; como tales, son inmutables.

Ethereum e Hyperledger son las plataformas de blockchain líderes en el mundo y la base para una gran cantidad de aplicaciones, desde criptomonedas como Ether de Ethereum hasta contratos en línea «inteligentes» o autoejecutables. Ethereum está explorando la fragmentación mientras que Hyperledger no.

«La fragmentación es un concepto que se originó con la partición horizontal de bases de datos y está siendo adoptado por Ethereum… y funciona para que no todos los nodos tengan que procesar todas las transacciones, lo que mejora la escalabilidad», dijo Avivah Litan, vicepresidente de Gartner y analista distinguido.

El año pasado, Ethereum comenzó a explorar formas de aumentar el rendimiento después de que el libro mayor de blockchain y la criptomoneda alcanzaran más de un millón de transacciones por día.

Ethereum se decidió por dos arreglos propuestos. Uno era un mecanismo de «capa 2»: procesar transacciones fuera de la cadena en una base de datos estándar y solo registrar entradas permanentes en el libro mayor; la otra solución era la fragmentación, que permitía procesar muchas más transacciones en paralelo al mismo tiempo.

Los protocolos de capa 2 envían la mayoría de las transacciones fuera de la cadena y solo interactúan con la cadena de bloques subyacente para ingresar y salir del sistema de capa 2. Los protocolos de capa 2 transfieren datos entre nodos dentro de una LAN o una WAN adyacente, eliminando la carga de la red de blockchain P2P.

Después de activar la fragmentación, el «estado» de una cadena de bloques se divide en fragmentos o particiones. Cada cuenta de usuario única equivale a un fragmento, y las cuentas solo pueden realizar transacciones con otras cuentas en el mismo fragmento, explicó Litan. «Esto permite que ocurran muchas transacciones paralelas al mismo tiempo», dijo. «Un protocolo separado elegido por Ethereum permite las comunicaciones entre fragmentos».

¿La fragmentación es segura?

Además de abordar la escalabilidad, algunos argumentan que la fragmentación también mantiene la seguridad nativa de una cadena de bloques porque conserva «la mayoría de las propiedades deseadas de descentralización y seguridad de una cadena de bloques», escribió el creador de Ethereum, Vitalik Buterin, en una publicación de blog en ese momento.

«En teoría, el aumento en el rendimiento de las transacciones es lineal en el número de fragmentos. ¿Cuatro fragmentos? Cuatro veces el rendimiento, aproximadamente. Puede haber cualquier número de fragmentos», dijo David Huseby, experto en seguridad del proyecto de cadena de bloques Hyperledger de The Linux Foundation.

Pero, el diablo está en los detalles, señaló Huseby. Para mantener la seguridad de la blockchain, debe protegerse contra las adquisiciones de fragmentos. La corrupción de los nodos en un fragmento determinado dará lugar a la pérdida permanente de la parte correspondiente de los datos, según un artículo de investigación publicado por la Universidad de Cornell .

En el modelo de la red Ethereum, por ejemplo, los nodos deben asignarse aleatoriamente a un fragmento y, en momentos aleatorios, se reasignan a otro fragmento elegido al azar.

«La idea es hacer que sea difícil para un atacante predecir, o forzar, a qué fragmento se asigna su nodo (malicioso). Esto hace que sea más difícil obtener una adquisición bizantina de cualquier fragmento», dijo Huseby.

La fragmentación con cadenas de bloques de Hyperledger no es tan sencilla, explicó Huseby.

«Nuestras cadenas de bloques normalmente no tratan con ‘direcciones’ como lo hacen las criptomonedas. Las cadenas de bloques de Hyperledger se centran en mantener un estado global (base de datos de pensamiento) y el mecanismo de consenso regula las actualizaciones de ese estado mientras que la cadena de bloques almacena las actualizaciones de estado de forma segura», dijo Huseby.

Las redes Hyperledger se pueden fragmentar verticalmente como Ethereum, pero dado que no divide un espacio de direcciones, puede probar diferentes técnicas de fragmentación.

«Si tuviera que fragmentar una red Hyperledger, primero aprovecharía la división entre la validación de transacciones y la construcción de bloques», dijo Huseby. «La validación de transacciones es mucho más lenta que la construcción de bloques, por lo que mi primer paso sería aumentar drásticamente la cantidad de nodos de validación de transacciones».

Un segundo desafío es lidiar con clientes «delgados», también llamados monederos SPV (Verificación de pago simplificada), para garantizar que esos nodos tengan una imagen completa del estado de la cadena de bloques mientras se divide entre fragmentos. Para abordar el problema de visibilidad asociado con la fragmentación, los clientes ligeros se comunican a través de redes separadas y mantienen copias de estado local para cada fragmentación.

Por último, la comunicación entre fragmentos plantea un desafío porque cada fragmento aparece como una red de cadena de bloques separada.

Solucionar el problema de comunicación.

A principios de este mes, la empresa emergente Devvio anunció que había creado un protocolo de registro distribuido altamente eficiente basado en fragmentación , protocolos de capa 2 y un mecanismo de consenso eficiente, que puede abordar todos los problemas principales que enfrentan las redes blockchain. Devvio dijo que su protocolo podría ampliarse para los negocios financieros globales al ejecutar hasta ocho millones de transacciones por segundo.

mecanismo de fragmentación devvio

En el protocolo «Devv» de Devvio, cada fragmento representa un libro mayor de cadena de bloques separado; la compañía afirma que se pueden agregar miles de fragmentos a una cadena de bloques pública global con el tiempo para procesar en última instancia decenas de millones de transacciones por segundo. Por ejemplo, cada fragmento es un nodo de cadena de bloques independiente en el libro mayor descentralizado de Devv que puede manejar hasta 3000 transacciones. Agregar otro nodo duplicaría la cantidad de transacciones que se pueden procesar, según el director ejecutivo de Devvio, Tom Anderson.

Cada fragmento (que también es una billetera criptográfica) se convierte en una entrada en una red más grande, que Devvio llama la red T1; fragmentos individuales pueden comunicarse con otros a través de una red transaccional separada, llamada T2.

Martha Bennett, analista principal de Forrester Research, señaló que prácticamente todos los marcos de blockchain actuales que usan, o proponen usar, la fragmentación realizan la función de manera diferente.

Cadena de bloques Prism PolyShard MIT Stanford

Por ejemplo, siete universidades bajo los auspicios de una organización suiza sin fines de lucro llamada Distributed Technology Research Foundation (DTR) acaban de anunciar que están desarrollando una red de moneda digital  que resuelve los problemas de rendimiento y escalabilidad de blockchain a través de la fragmentación.

«La falta de escalabilidad está frenando la adopción de criptomonedas, y [nuestra] investigación innovadora está abordando esto», dijo Joey Krug, miembro del Consejo de la Fundación DTR. «Los desarrolladores de Unit-e están convirtiendo esta investigación en un rendimiento escalable real que beneficiará a una gran cantidad de aplicaciones financieras descentralizadas».

Unit-e está utilizando «formas de fragmentación completamente nuevas» llamadas «PolyShard», una solución de almacenamiento y computación que se vuelve más eficiente con más usuarios sin sacrificar la seguridad. La clave es que el protocolo PolyShard combina datos de diferentes usuarios y transacciones de una manera que aún permite la recuperación precisa de datos, similar a la virtualización en servidores y sistemas de almacenamiento.

Sin embargo, hasta la fecha, los mecanismos de fragmentación aún se encuentran en la fase de desarrollo y prueba (teórica en cierto sentido) y están creando métodos estandarizados que abordan no solo la escalabilidad sino también la seguridad. Ese desafío debe abordarse antes de que la fragmentación pueda considerarse una solución.

«La fragmentación no es una solución tan sencilla para la escalabilidad», dijo Husebuy. «Hay muchos detalles que deben tenerse en cuenta y vamos a necesitar algo de experimentación empírica para acompañar la teoría antes de que podamos llamarla segura. Las implementaciones deben tener cuidado con las suposiciones para que no haya agujeros que un atacante puede usar para eludir cualquiera de los mecanismos de seguridad y consenso».