¿Cuándo se lanza?
aproximadamente en 2023
La fragmentación podría implementarse durante el 2023. Las particiones podrán dotar a Ethereum de una mayor capacidad de almacenamiento y acceso a la data, pero no serán utilizadas para la ejecución de código.
¿Qué es la fragmentación?
La fragmentación o «sharding» es un concepto común en informática que denomina el proceso de dividir una base de datos horizontalmente para distribuir la carga. En el contexto de la red de Ethereum, la fragmentación operará en sinergia con las acumulaciones de capa 2 al aliviar la carga que representa el manejo de la amplia cantidad de datos requeridos por las acumulaciones en toda la red. Esto continuará ayudando a reducir la congestión de la red e incrementará el número de transacciones por segundo.
Esto es importante por otras razones, además de la escalabilidad.
Características de la fragmentación
Cualquiera puede ejecutar un nodo
La fragmentación es una buena manera de escalar si se quieren mantener la descentralización, ya que la alternativa es escalar aumentando el tamaño de la base de datos existente. Esto haría que Ethereum fuese menos accesible para los validadores de red, porque necesitarían ordenadores potentes y costosos. A través de la fragmentación, ya no será necesario que los validadores almacenen toda esta cantidad de datos. En lugar de ello, se espera el uso de técnicas basadas en los datos disponibles habilitados en la totalidad de la red. Esto reduce drásticamente el coste del almacenamiento de datos en la capa 1 al minimizar los requerimientos de hardware.
Más participación en la red
Con el tiempo, la fragmentación le permitirá ejecutar Ethereum en un ordenador portátil o teléfono. Por lo tanto, más personas podrán participar o ejecutar clientes en un Ethereum fragmentado. Esto aumentará la seguridad, porque cuanto más descentralizada sea la red, menor será la superficie de ataque.
Con menores requisitos de hardware, la fragmentación facilitará la ejecución de clientes por su propia cuenta, sin depender de ningún servicio intermediario en absoluto. Y si puede, plantéese la posibilidad de ejecutar varios clientes también. Esto puede mejorar el funcionamiento de la red al reducir aún más las causas de los fallos.
Cadenas de fragmentos versión 1: disponibilidad de datos
Los detalles señalados a continuación podrían estar desactualizados con respecto a los más recientes planes de desarrollo. Mientras realizamos dichas actualizaciones, por favor, consulte «La guía del autoestopista de Ethereum» para acceder a un desglose detallado de la hoja de ruta de Ethereum.
Cuando se envíen las primeras cadenas de fragmentos, solo proporcionarán datos adicionales a la red. No manejarán transacciones ni contratos inteligentes. Pero seguirán ofreciendo increíbles mejoras en las transacciones por segundo cuando se combinen con acumulaciones (o «rollups»).
Las acumulaciones son una tecnología de «capa 2» que existe en la actualidad. Permiten que las dapps agrupen o «acumulen» transacciones en una única transacción fuera de la cadena, generen una prueba criptográfica y luego la envíen a la cadena. Esto reduce los datos necesarios para una transacción. Si lo combinamos con toda la disponibilidad de datos adicional proporcionada por los fragmentos, obtendremos 100.000 transacciones por segundo.
Cadenas de fragmentos versión 2: ejecución del código
El plan siempre consistió en añadir funcionalidad adicional a los fragmentos, para hacerlos más parecidos a la red principal Ethereum actual. Esto les permitiría almacenar y ejecutar un código y manejar transacciones, ya que cada fragmento contendría su conjunto único de contratos inteligentes y saldos de cuentas. La comunicación entre fragmentos permitiría transacciones entre fragmentos.
Sin embargo, teniendo en cuenta el aumento de las transacciones por segundo que proporcionan los fragmentos de la versión 1, ¿sigue siendo necesario que esto suceda? Este es un tema que aún se está debatiendo en la comunidad y parece que hay algunas opciones.
¿Los fragmentos necesitan ejecución del código?
En el pódcast Bankless, Vitalik Buterin presentó tres opciones potenciales que vale la pena discutir.
1. No requiere una ejecución del estado
Esto significaría que no dar a los fragmentos la capacidad de manejar contratos inteligentes y dejarlos como depósitos de datos.
2. Tenga algunos fragmentos de ejecución.
Es probable que existan algunos elementos que no requieran que todos los fragmentos sean inteligentes. Podríamos añadir esta funcionalidad a unos cuantos y dejar el resto. De esta forma se podría acelerar la entrega.
3. Espere hasta que podamos hacer snarks de Zero Knowledge (ZK)
Por último, quizás deberíamos volver a plantearnos esto cuando se establezcan los snarks de ZK. Esta es una tecnología que podría ayudar a traer transacciones verdaderamente privadas a la red. Es probable que requieran fragmentos más inteligentes, pero aún están en investigación y desarrollo.
Otros recursos
Aquí tiene algunas ideas que van en la misma línea:
- Fase 1 y listo: Eth2 como motor de disponibilidad de datos (cdetrio, ethresear.ch)
Este sigue siendo un punto de debate activo. Actualizaremos estas páginas en cuanto sepamos más.
Relación entre actualizaciones
Las actualizaciones de Ethereum están interrelacionadas de alguna manera. Por tanto, recapitulemos sobre cómo se relacionan las cadenas de fragmentos con las otras actualizaciones.
Los fragmentos y la cadena de bloques de Ethereum
La lógica tras mantener los fragmentos seguros y sincronizados está del todo integrada en los clientes que construyen la cadena de bloques de Ethereum. Los participantes de la red serán asignados a los fragmentos en los que trabajarán. Los fragmentos tendrán acceso a capturas instantáneas de otros fragmentos, de tal forma que puedan tener una visión del estado de la red Ethereum y así lograr mantener todo actualizado.