Sharding
El sharding es una técnica de escalado que divide la carga de trabajo de una blockchain en varios segmentos paralelos —los shards— para que la red pueda procesar más de lo que podría manejar un solo nodo por sí solo. Tomada del diseño de bases de datos, la idea es que, en lugar de que cada nodo verifique cada transacción, distintos subconjuntos de la red se encarguen de distintos shards, lo que multiplica la capacidad total sin dejar de mantener modestos los requisitos de hardware de cada nodo.
La parte difícil es hacerlo sin debilitar la seguridad: si cada shard lo valida solo una porción de la red, un atacante solo necesita superar a esa porción, y las transacciones que abarcan varios shards exigen una comunicación entre shards cuidadosa. Estas dificultades reconfiguraron la hoja de ruta de Ethereum. Su plan original de 64 shards de ejecución —cadenas paralelas que ejecutan todas transacciones— se abandonó en favor de que sean los rollups quienes se encarguen de la ejecución, con la cadena base aplicando sharding solo a los datos. El primer paso, el «proto-danksharding» (EIP-4844), se lanzó en marzo de 2024 y añadió un espacio «blob» temporal y barato que recortó drásticamente los costes de los rollups; el danksharding completo, que permitiría a los nodos verificar los datos de los blobs muestreando pequeñas piezas en lugar de descargarlo todo, queda todavía por delante. Otras redes tomaron caminos distintos: NEAR opera en producción con ejecución dividida en shards y TON está diseñada para dividir los shards de forma dinámica bajo carga.
Un error común es creer que Ethereum «tiene sharding» en el sentido original de cadenas paralelas de procesamiento de transacciones; lo que está construyendo es un sharding de datos al servicio de los rollups. La lección más amplia es que el sharding no es una única técnica sino una familia de diseños, cada uno de los cuales intercambia complejidad por capacidad en lugares distintos.