Principais conclusões
Sharding divide uma blockchain em segmentos menores chamados shards, permitindo que as transações sejam processadas em paralelo em vez de uma por uma.
Cada shard atua como um banco de dados independente que processa seu próprio subconjunto de transações, reduzindo a carga sobre nós individuais.
O sharding pode aumentar a taxa de transferência de transações, reduzir os requisitos de hardware para operadores de nós e melhorar a eficiência geral da rede.
As concessões incluem complexidade adicional, o risco de ataques a um único shard e desafios com transações que abrangem múltiplos shards.
O Ethereum implementou uma forma intermediária de sharding chamada Proto-Danksharding (EIP-4844) por meio do upgrade de Cancun, em março de 2024, reduzindo taxas para redes da Camada 2. O full danksharding permanece no roadmap.
Introdução
A tecnologia de blockchain oferece uma forma descentralizada e transparente de registrar transações, mas tem uma limitação bem conhecida: escalabilidade. Conforme a rede cresce e mais usuários enviam transações, ela pode ficar mais lenta e mais cara de usar. Às vezes, isso é descrito como o trilema da blockchain, que se refere à dificuldade de alcançar escalabilidade, segurança e descentralização ao mesmo tempo.
O sharding é uma abordagem que tenta resolver a parte de escalabilidade desse problema. Originalmente uma técnica de gerenciamento de banco de dados, o sharding foi adaptado por vários projetos de blockchain para permitir que redes processem mais transações sem abrir mão da descentralização.
O que é Sharding?
Sharding é o processo de dividir uma rede de blockchain em partições menores chamadas shards. Cada shard contém seu próprio pedaço dos dados da rede e processa suas próprias transações de forma independente. Em vez de exigir que todo nó armazene e verifique todas as transações da rede, cada nó é responsável apenas por um shard.
Isso representa uma mudança significativa em relação ao funcionamento padrão da maioria das blockchains. Em uma blockchain padrão, cada nó precisa processar e armazenar todas as transações em toda a rede. Embora essa abordagem seja segura, ela limita a velocidade com que a rede pode operar, porque todos os nós precisam permanecer em sincronia.
Como o Sharding Funciona?
Para entender o sharding, ajuda observar como os dados normalmente são processados em uma blockchain e, depois, como o sharding muda isso.
Processamento sequencial vs. paralelo
Em uma blockchain típica, cada nó processa transações uma a uma, em sequência. Isso significa que a velocidade da rede inteira é limitada pelo que cada nó individual consegue lidar. À medida que a blockchain cresce, isso se torna um gargalo.
O sharding introduz processamento em paralelo. Em vez de todos os nós trabalharem nas mesmas transações, grupos diferentes de nós lidam com shards diferentes simultaneamente. Isso permite que a rede processe muitas mais transações ao mesmo tempo.
Particionamento horizontal
O sharding usa uma técnica chamada particionamento horizontal, que divide os dados em linhas em vez de colunas. Cada shard mantém um subconjunto completo dos dados de transações das transações que ele processa. Isso preserva a integridade dos dados porque cada shard tem registros completos da sua parte da rede.
O particionamento horizontal é preferido em sistemas de blockchain porque dá suporte à descentralização. Os nós só precisam manter e verificar os dados de um shard, o que reduz a necessidade de armazenamento e poder computacional para participar da rede.
Particionamento vertical
No particionamento vertical, os dados são divididos em colunas, em vez de linhas. Cada partição no particionamento vertical contém um subconjunto de dados para cada entidade, ou para o conjunto de dados inteiro, mas apenas para um certo conjunto de atributos.
Quais são os benefícios do sharding?
O sharding oferece várias vantagens potenciais para redes de blockchain:
Maior vazão (throughput): ao processar transações em paralelo em vários shards, uma rede fragmentada pode lidar com significativamente mais transações por segundo do que um design de cadeia única.
Menores requisitos de hardware: Como cada nó armazena dados de apenas um shard, as demandas de armazenamento e processamento são reduzidas. Isso facilita e barateia a execução de um nó, o que pode aumentar a descentralização da rede.
Melhor escalabilidade: Uma rede fragmentada (sharded) pode, teoricamente, adicionar mais shards conforme a demanda cresce, permitindo que a rede escale sem uma queda proporcional de desempenho.
Esses benefícios são teóricos em diferentes graus. O quanto uma rede real melhora depende de como o sharding é implementado e de quais concessões (trade-offs) são aceitas.
Quais são as limitações do sharding?
O sharding introduz novos desafios que não existem em blockchains sem sharding:
Ataques a um único shard: Um atacante precisa de bem menos recursos para tomar controle de um shard do que para atacar toda a rede. Isso torna os shards individuais mais vulneráveis a um tipo de ataque de 51%.
Complexidade entre shards: Transações que envolvem dados de dois shards diferentes são difíceis de gerenciar. Se um shard não rastrear corretamente o estado de outro durante uma transação, erros como double-spending (pagamento duplicado) podem potencialmente ocorrer.
Disponibilidade de dados: Se os nós responsáveis por um shard específico ficarem offline, os dados desse shard podem ficar temporariamente indisponíveis, interrompendo a rede.
Sobrecarga de sincronização: Manter os shards coordenados adiciona complexidade ao design da rede. Erros no gerenciamento de shards podem levar a inconsistências ou problemas de desempenho.
Essas concessões explicam por que o sharding é tecnicamente desafiador de implementar e por que muitas redes adotam abordagens incrementais.
Como o sharding é usado no Ethereum?
O roadmap de escalabilidade do Ethereum evoluiu bastante desde que o sharding foi discutido pela primeira vez como parte do plano de upgrade "Ethereum 2.0". Em vez de implementar sharding de execução diretamente, a Ethereum Foundation adotou uma estratégia centrada em rollups. Nela, os rollups da Camada 2 cuidam da execução das transações fora da cadeia (off-chain) enquanto publicam dados na rede principal do Ethereum.
Como parte dessa estratégia, o Ethereum introduziu o Proto-Danksharding (EIP-4844) no upgrade de Cancun, em março de 2024. O EIP-4844 introduziu um novo tipo de transação chamado transação com blob (blob-carrying transaction). Blobs permitem que rollups da Camada 2 publiquem grandes quantidades de dados no Ethereum com um custo muito menor do que antes, porque os dados em blob são armazenados temporariamente (por cerca de 18 dias) e não são processados pela Ethereum Virtual Machine.
O full danksharding é a próxima fase no roadmap do Ethereum. Ele vai estender o sistema de blobs habilitando amostragem de disponibilidade de dados (data availability sampling), uma técnica que permite que os nós verifiquem se os dados estão disponíveis sem baixá-los completamente. Isso permitiria que o Ethereum suportasse muito mais blobs por bloco, reduzindo significativamente os custos para usuários da Camada 2. No momento em que este texto foi escrito, o full danksharding ainda não foi implementado.
Perguntas frequentes (FAQ)
O que é sharding em uma blockchain?
Sharding divide uma blockchain em segmentos menores e independentes chamados shards. Cada shard processa suas próprias transações e armazena seus próprios dados. Isso permite que diferentes partes da rede operem em paralelo, aumentando o número total de transações que a rede consegue processar.
O Ethereum atualmente é sharded?
O Ethereum implementou uma forma intermediária de sharding chamada Proto-Danksharding (EIP-4844), introduzida no upgrade de Cancun em março de 2024. Isso permite que redes da Camada 2 publiquem dados de transações em blobs de baixo custo em vez de usar calldata cara. O full danksharding, que permitiria amostragem de disponibilidade de dados em muitos shards, ainda está em desenvolvimento.
Quais são os principais riscos do sharding?
Os principais riscos incluem ataques a um único shard: em que um atacante consegue mirar um shard com menos recursos do que seria necessário para atacar a rede inteira. Também há complexidade de transações entre shards, que pode introduzir casos de borda como double-spending se não for tratada com cuidado. Problemas de disponibilidade de dados também podem surgir se os nós que gerenciam um shard específico ficarem offline.
Como o sharding difere do uso de soluções de Camada 2?
Sharding é uma técnica de escalabilidade da Camada 1 que modifica como a blockchain base armazena e processa dados. A escalabilidade da blockchain também pode ser tratada via soluções de Camada 2, que processam transações fora da cadeia (off-chain) e publicam resumos de volta na cadeia principal. No roadmap atual do Ethereum, as duas abordagens funcionam juntas: o sharding (via blobs) reduz o custo de publicar dados da Camada 2 no Ethereum, enquanto os rollups cuidam da execução das transações fora da cadeia.
Considerações finais
Sharding é uma técnica promissora para melhorar a escalabilidade de blockchains, mas traz concessões reais de complexidade e segurança. O conceito evoluiu de uma proposta teórica para uma implementação incremental prática, principalmente por meio do EIP-4844 do Ethereum. À medida que a pesquisa continua e mais redes experimentam designs de sharding, a tecnologia provavelmente vai evoluir ainda mais. Se alguma implementação específica terá sucesso dependerá de como ela equilibra, ao longo do tempo, taxa de transferência (throughput), segurança e descentralização.
Leitura adicional
Blockchain Camada 1 vs. Soluções de Escalabilidade da Camada 2
O que é o Ethereum e como ele funciona?
Rollups Optimistic vs. Zero-Knowledge: qual é a diferença?
O que é o upgrade do Ethereum Cancun?
Escalabilidade de Blockchain: Sidechains e Canais de Pagamento
Aviso legal: Este conteúdo é fornecido a você em uma base "como está" apenas para informações gerais e/ou fins educacionais, sem qualquer declaração ou garantia de qualquer tipo. Ele não deve ser interpretado como conselho financeiro, jurídico ou de outro tipo profissional, nem pretende recomendar a compra de qualquer produto ou serviço específico. Você deve buscar seu próprio aconselhamento com assessores profissionais apropriados. Quando o conteúdo for fornecido por um terceiro, observe que as opiniões expressas pertencem ao contribuinte terceiro e não necessariamente refletem as da Binance Academy. Os preços de ativos digitais podem ser voláteis. O valor do seu investimento pode cair ou subir e você pode não conseguir recuperar o valor investido. Você é o único responsável pelas suas decisões de investimento e a Binance Academy não se responsabiliza por quaisquer perdas que você possa incorrer. Para mais informações, veja nossos Termos de Uso, Aviso de Risco e Termos da Binance Academy.
