Puntos clave
El sharding divide una blockchain en segmentos más pequeños llamados shards, lo que permite procesar transacciones en paralelo en lugar de una por una.
Cada shard actúa como una base de datos independiente que procesa su propio subconjunto de transacciones, reduciendo la carga en los nodos individuales.
El sharding puede aumentar el rendimiento de las transacciones, reducir los requisitos de hardware para los operadores de nodos y mejorar la eficiencia general de la red.
Las compensaciones incluyen complejidad adicional, el riesgo de ataques a un solo shard y desafíos con transacciones que abarcan varios shards.
Ethereum ha implementado una forma intermedia de sharding llamada Proto-Danksharding (EIP-4844) mediante la actualización de Cancún en marzo de 2024, reduciendo las comisiones para las redes de capa 2. El danksharding completo sigue en la hoja de ruta.
Introducción
La tecnología blockchain ofrece una forma descentralizada y transparente de registrar transacciones, pero tiene una limitación bien conocida: la escalabilidad. A medida que una red crece y más usuarios envían transacciones, puede volverse más lenta y más costosa de usar. A veces esto se describe como el trilema de la blockchain, que se refiere a la dificultad de lograr escalabilidad, seguridad y descentralización al mismo tiempo.
El sharding es un enfoque que intenta resolver el lado de escalabilidad de este problema. Originalmente era una técnica de administración de bases de datos, pero varios proyectos de blockchain la han adaptado para permitir que las redes gestionen más transacciones sin sacrificar la descentralización.
¿Qué es el sharding?
El sharding es el proceso de dividir una red de blockchain en particiones más pequeñas llamadas shards. Cada shard contiene su propia porción de los datos de la red y procesa sus propias transacciones de forma independiente. En lugar de requerir que cada nodo almacene y verifique cada transacción de toda la red, cada nodo solo es responsable de un shard.
Esto supone un cambio significativo frente a cómo funcionan la mayoría de las blockchains por defecto. En una blockchain estándar, cada nodo debe procesar y almacenar todas las transacciones de toda la red. Este enfoque, aunque es seguro, limita qué tan rápido puede operar la red porque todos los nodos deben mantenerse sincronizados.
¿Cómo funciona el sharding?
Para entender el sharding, ayuda observar cómo se procesan los datos normalmente en una blockchain y luego cómo cambia eso con el sharding.
Procesamiento secuencial vs. procesamiento en paralelo
En una blockchain típica, cada nodo procesa transacciones una por una, en secuencia. Esto significa que la velocidad de toda la red está limitada por lo que puede manejar cada nodo individual. A medida que crece una blockchain, esto se convierte en un cuello de botella.
El sharding introduce procesamiento en paralelo. En lugar de que todos los nodos trabajen con las mismas transacciones, distintos grupos de nodos manejan diferentes shards simultáneamente. Esto permite que la red procese muchísimas más transacciones al mismo tiempo.
Particionamiento horizontal
El sharding usa una técnica llamada particionamiento horizontal, que divide los datos en filas en lugar de columnas. Cada shard contiene un subconjunto completo de datos de transacciones para las transacciones que gestiona. Esto preserva la integridad de los datos porque cada shard tiene registros completos para su porción de la red.
El particionamiento horizontal se prefiere en sistemas blockchain porque favorece la descentralización. Los nodos solo necesitan almacenar y verificar los datos de un shard, lo que reduce la potencia de almacenamiento y cómputo requerida para participar en la red.
Particionamiento vertical
En el particionamiento vertical, los datos se dividen en columnas en lugar de filas. Cada partición en el particionamiento vertical contiene un subconjunto de datos para cada entidad, o el conjunto completo de datos, pero solo para cierto conjunto de atributos.
¿Cuáles son los beneficios del sharding?
El sharding ofrece varias ventajas potenciales para las redes blockchain:
Mayor rendimiento: Al procesar transacciones en paralelo a través de múltiples shards, una red con sharding puede manejar significativamente más transacciones por segundo que un diseño de cadena única.
Menores requisitos de hardware: Como cada nodo solo almacena datos para un shard, se reducen las necesidades de almacenamiento y procesamiento. Esto facilita y abarata ejecutar un nodo, lo que puede aumentar la descentralización de la red.
Mejor escalabilidad: Una red con sharding puede, en teoría, añadir más shards a medida que crece la demanda, lo que permitiría escalar la red sin una caída proporcional del rendimiento.
Estos beneficios son teóricos en distintos grados. La magnitud de la mejora que ve una red real depende de cómo se implemente el sharding y de qué compensaciones (trade-offs) se acepten.
¿Cuáles son las limitaciones del sharding?
El sharding introduce nuevos desafíos que no existen en las blockchains sin sharding:
Ataques a un solo shard: Un atacante necesita muchos menos recursos para tomar control de un shard que para atacar toda la red. Esto hace que los shards individuales sean más vulnerables a un tipo de ataque del 51%.
Complejidad entre shards: Las transacciones que implican datos de dos shards diferentes son difíciles de gestionar. Si un shard no registra correctamente el estado de otro durante una transacción, podrían ocurrir errores como el doble gasto.
Disponibilidad de datos: Si los nodos responsables de un shard se desconectan, es posible que los datos de ese shard no estén disponibles temporalmente, lo que interrumpiría la red.
Sobrecarga de sincronización: Mantener los shards coordinados agrega complejidad al diseño de la red. Los errores en la gestión de shards podrían provocar inconsistencias o problemas de rendimiento.
Estas compensaciones explican por qué implementar sharding es técnicamente exigente y por qué muchas redes adoptan enfoques incrementales.
¿Cómo se usa el sharding en Ethereum?
La hoja de ruta de escalado de Ethereum ha evolucionado considerablemente desde que se discutió por primera vez el sharding como parte del plan de actualización de "Ethereum 2.0". En lugar de implementar sharding de ejecución directamente, la Ethereum Foundation cambió a una estrategia centrada en rollups: los rollups de capa 2 gestionan la ejecución de transacciones fuera de la cadena (off-chain) y publican datos en la red principal (mainnet) de Ethereum.
Como parte de esa estrategia, Ethereum introdujo Proto-Danksharding (EIP-4844) en la actualización de Cancún en marzo de 2024. La EIP-4844 introdujo un nuevo tipo de transacción llamada transacción con blob (blob-carrying transaction). Los blobs permiten que los rollups de capa 2 publiquen grandes cantidades de datos en Ethereum a un costo mucho menor que antes, porque los datos del blob se almacenan temporalmente (aprox. 18 días) y no se procesan en la Máquina Virtual de Ethereum.
El danksharding completo es la siguiente fase en la hoja de ruta de Ethereum. Extenderá el sistema de blobs habilitando un muestreo de disponibilidad de datos (data availability sampling), una técnica que permite que los nodos verifiquen que los datos están disponibles sin descargarlos por completo. Esto permitiría que Ethereum admita muchos más blobs por bloque, reduciendo significativamente los costos para usuarios de capa 2. Al momento de redactar este texto, el danksharding completo todavía no se ha implementado.
Preguntas frecuentes
¿Qué es el sharding en una blockchain?
El sharding divide una blockchain en segmentos más pequeños e independientes llamados shards. Cada shard procesa sus propias transacciones y almacena sus propios datos. Esto permite que diferentes partes de la red operen en paralelo, aumentando el número total de transacciones que la red puede manejar.
¿Ethereum está actualmente con sharding?
Ethereum ha implementado una forma intermedia de sharding llamada Proto-Danksharding (EIP-4844), introducida en la actualización de Cancún en marzo de 2024. Esto permite que las redes de capa 2 publiquen datos de transacciones en blobs de bajo costo, en lugar de hacerlo en carísimos calldata. El danksharding completo, que habilitaría el muestreo de disponibilidad de datos entre muchos shards, sigue en desarrollo.
¿Cuáles son los principales riesgos del sharding?
Los riesgos principales incluyen los ataques a un solo shard, en los que un atacante puede apuntar a un shard con menos recursos que los necesarios para atacar toda la red, y la complejidad de las transacciones entre shards, que puede introducir casos límite como el doble gasto si no se maneja con cuidado. También pueden surgir problemas de disponibilidad de datos si los nodos que gestionan un shard en particular se desconectan.
¿En qué se diferencia el sharding de usar soluciones de capa 2?
El sharding es una técnica de escalado de capa 1 que modifica la forma en que la blockchain base almacena y procesa los datos. La escalabilidad de una blockchain también puede abordarse mediante soluciones de capa 2, que gestionan las transacciones fuera de la cadena y publican resúmenes de vuelta en la cadena principal. En la hoja de ruta actual de Ethereum, ambos enfoques funcionan juntos: el sharding (mediante blobs) reduce el costo de publicar datos de capa 2 en Ethereum, mientras que los rollups se encargan de la ejecución de transacciones fuera de la cadena.
Reflexiones finales
El sharding es una técnica prometedora para mejorar la escalabilidad de las blockchains, pero conlleva compensaciones reales en complejidad y seguridad. El concepto ha evolucionado de una propuesta teórica a una implementación práctica incremental, sobre todo con la EIP-4844 de Ethereum. A medida que continúe la investigación y más redes experimenten con diseños de sharding, es probable que la tecnología siga evolucionando. El éxito de cualquier implementación específica dependerá de qué tan bien equilibre, con el tiempo, el rendimiento, la seguridad y la descentralización.
Lecturas adicionales
Capa 1 de blockchain vs. soluciones de escalado de capa 2
¿Qué es Ethereum y cómo funciona?
Rollups optimistas vs. rollups de conocimiento cero: ¿cuál es la diferencia?
¿Qué es la actualización de Ethereum Cancun?
Escalabilidad de blockchain: Sidechains y canales de pago
Aviso legal: Este contenido se le presenta “tal cual” para información general y/o fines educativos únicamente, sin ninguna clase de representación o garantía. No debe interpretarse como asesoramiento financiero, legal u otro tipo de asesoramiento profesional, y tampoco se pretende recomendar la compra de ningún producto o servicio específico. Debe buscar su propio asesoramiento de asesores profesionales adecuados. Cuando el contenido sea aportado por un tercero, tenga en cuenta que las opiniones expresadas pertenecen al colaborador tercero y no reflejan necesariamente las de Binance Academy. Los precios de los activos digitales pueden ser volátiles. El valor de su inversión puede subir o bajar y es posible que no recupere el importe invertido. Usted es el único responsable de sus decisiones de inversión y Binance Academy no se hace responsable de ninguna pérdida en la que usted pudiera incurrir. Para obtener más información, consulte nuestros Términos de uso, Aviso de riesgo y Términos de Binance Academy.
