Como o Sharding funciona
Em um design com sharding, as responsabilidades da rede são divididas para que cada participante precise lidar apenas com uma parte da carga total. Dependendo do design, os shards podem dividir o armazenamento de dados, a execução de transações ou ambos.
As primeiras propostas de sharding para a Ethereum focavam em várias shard chains nas quais a execução de smart contracts poderia ocorrer entre os shards (frequentemente chamado de execution sharding). Essa abordagem aumenta a vazão ao paralelizar a computação, mas também traz complexidade em torno da comunicação e da segurança entre shards.
O roadmap da Ethereum evoluiu à medida que os rollups se tornaram a principal forma de escalar a execução. Em vez de escalar a L1 executando muitos smart contracts em paralelo em shards, a Ethereum passou a se concentrar cada vez mais em escalar a disponibilidade de dados (DA), tornando barato e verificável para os rollups publicar os dados de transações necessários para a verificação independente.
Um passo importante é o proto-danksharding (EIP-4844), que adiciona dados temporários chamados blobs aos blocos. Os blobs são mais baratos do que publicar os dados dos rollups como calldata, não podem ser lidos pela EVM e são removidos após uma janela de retenção (cerca de 18 dias), o que limita o crescimento do armazenamento de longo prazo nos nodes.
Além disso, a Ethereum também usa uma forma de “consenso com sharding”: os validadores são divididos em comitês, de modo que cada validador processe apenas um subconjunto das attestations, mantendo o custo do consenso sob controle conforme o conjunto de validadores cresce.
Exemplo
Se uma estrada de pista única é como uma blockchain em que todo node processa todas as transações, o sharding é como adicionar várias pistas para que o tráfego (o trabalho) flua em paralelo.
Por que é importante
O sharding busca aumentar a capacidade sem obrigar todos os nodes a fazer todo o trabalho, o que ajuda a preservar a descentralização. Na Ethereum hoje, “sharding” significa principalmente disponibilidade de dados mais barata e escalável para rollups, o que costuma se traduzir em custos menores nas L2s e maior vazão em todo o ecossistema.
Riscos ou limitações
O “sharding” pode ser mal compreendido: ele não significa automaticamente que os smart contracts da L1 terão mais vazão, especialmente na Ethereum, onde os rollups cuidam da maior parte da escalabilidade da execução. Os dados em blobs são temporários por design, então rollups e observadores terceiros precisam baixar e armazenar com segurança o que precisam antes da remoção. A DA ainda pode ficar congestionada, e designs mais centrados em builders podem gerar preocupações de centralização se os requisitos de hardware para gerar provas forem altos.
Termos relacionados
- Rollup
- Disponibilidade de dados
- Proto-Danksharding (EIP-4844)
- Danksharding
- Calldata