O sharding divide uma blockchain em partes mais pequenas chamadas shards. Cada shard processa as suas próprias transações e armazena os seus próprios dados. Os shards comunicam entre si através de uma camada de coordenação. O objetivo é o paralelismo. Em vez de uma única cadeia processar todas as transações, várias cadeias processam as transações em simultâneo. A capacidade de processamento aumenta com o número de shards. O roadmap do Ethereum inclui o sharding, embora o rollup tenha prioridade como solução de escalabilidade a curto prazo.
O sharding é tecnicamente complexo. Dividir uma cadeia significa dividir a segurança. Se um shard for comprometido, toda a rede fica em risco. A comunicação entre shards acrescenta latência e complexidade. Os validadores precisam de ser atribuídos aos shards aleatoriamente e rotacionados frequentemente para evitar o conluio. O projeto deve garantir que um atacante não pode concentrar poder num shard e assumir o controlo do mesmo. A proposta de danksharding da Ethereum combina o sharding com os rollups. Os shards armazenam os dados do rollup, mas não executam as transações. Os rollups tratam da execução. O sharding trata da disponibilidade dos dados. Esta divisão de trabalho é mais simples e segura do que o sharding com execução completa.
Compensações do particionamento
- Taxa de transferência — escala com o número de fragmentos.
- Complexidade — a comunicação entre shards é difícil
- Segurança — cada fragmento necessita de validadores suficientes.
- Disponibilidade de dados — os shards devem publicar dados para verificação.
O sharding não é uma solução rápida. É um projeto de engenharia de vários anos com muitas variáveis. Os rollups oferecem hoje escalabilidade. O sharding é para o futuro.
Comments
No comments yet. Be the first to share a thought.
Leave a comment