Sharding (fragmentação) é uma técnica de particionamento de base de dados usada pelas empresas de blockchain com o intuito de obter maior escalabilidade, permitindo-as processar mais transações por segundo. O sharding divide a rede blockchain inteira em partições menores, conhecidas como “shards” (fragmentos).
Dessa forma, cada shard é composto por seus próprios dados, o que o torna distinto e independente ao ser comparado com outros shards. A técnica de sharding pode ajudar a reduzir a latência ou lentidão de uma rede, visto que divide a blockchain em diferentes e separados shards.
Veja também: Stellar, a blockchain que buscar ser a solução de pagamentos P2P
O problema a ser resolvido
As redes blockchains e suas respectivas criptomoedas estão ganhando popularidade devido à ampliação da aplicação da tecnologia, que inclui a gestão da cadeia de suprimentos, bem como a gestão de transações financeiras. Conforme a popularidade da blockchain cresce, o mesmo acontece com a carga de trabalho e o volume transacional gerado pela rede.
Nesse sentido, um dos problemas mais persistentes entre as blockchains gira em torno dos seus mecanismos de consenso. Em uma blockchain que utilize o mecanismo Proof of Work, cada computador ou nó de autenticação registra todos os dados na cadeia, fazendo parte do processo de consenso.
Em blockchains maiores, como o Bitcoin, a maioria dos nós participantes devem autenticar novas transações e registrar a informação se a transação foi registrada no livro razão. Isso torna a conclusão deste processo extremamente lenta. É por este motivo que o Bitcoin, que utiliza o mecanismo Proof of Work, pode processar somente 7 transações por segundo.
A Ethereum possui um processamento de transação um pouco melhor, podendo concluir de 12 a 30 transações por segundo. Agora, ao comparar com a Visa, uma das maiores emissoras de cartão de crédito do mundo, a quantidade de transações por segundo chega a 1700. Isso mostra o quanto a blockchain precisa evoluir para ter sucesso no futuro
Com isso, se pensar uma blockchain como uma base de dados compartilhado, quanto mais e mais dados forem adicionados, maior a necessidade da rede em encontrar novos caminhos para processar todos os dados de forma eficiente e rápida, e isso é o que a técnica de sharding promete ajudar.
Veja também: Mecanismo de consenso e blockchain
Entendendo o sharding
O sharding visa distribuir a carga de trabalho de uma rede em nós únicos, onde cada nó é responsável pelos dados que estão nele. Isso elimina a necessidade de todos os nós de uma rede estarem separados de uma transação. O sharding foi projetado para ser um particionamento de base dados horizontais.
Dessa forma, o sharding é uma forma de distribuir a carga de trabalho de computação e armazenamento de uma rede blockchain. Sendo assim, cada nó não terá mais a necessidade de processar toda a carga transacional de uma rede. Portanto, cada nó manterá apenas as informações relacionadas ao seu shard em específico.
Além disso, a técnica de sharding permite a blockchain continuar sendo descentralizada e segura. A informação em um shard ainda pode ser compartilhada e qualquer um pode ver as entradas do livro razão, mas eles estão livres de registrar e armazenar os dados em cada um dos outros nós.
Embora o sharding possa ser a chave para permitir que a blockchain seja escalonada com segurança, muitos problemas ainda permanecem. Por exemplo, se for manter a segurança da blockchain, é necessário realizar uma proteção contra “shard takeovers”. O corrompimento de um determinado shard em um dado nó levará a perda permanente dos dados.
Particionamento Horizontal
O sharding pode ser realizado por meio do particionamento horizontal do banco de dados através de uma divisão em linhas. Os shards, como são chamadas as linhas mencionadas, são conceituados com base em características. Por exemplo, um shard pode ser responsável pelo estado e o histórico de transações para um tipo específico de endereço.
Além disso, é possível dividir os shards de acordo com o ativo digital armazenado neles. As transações envolvendo esse ativo digital pode ser possível através da combinação de shards. Por exemplo, a transação de locação imobiliária pode envolver diversos shards.
Dessa forma, estes shards correspondem diferentes entidades envolvidas na transação, desde o nome do cliente até chaves digitais configuradas em um bloqueio inteligente, que é disponibilizado ao locatário no pagamento do aluguel.
Exemplo de uma solução funcional
A empresa de blockchain Devvio criou protocolo de contabilidade distribuído altamente eficiente baseado em sharding, protocolos de segunda camada e um eficiente mecanismo de consenso que permite sua expansão para negócios financeiros. A solução permite executar até 8 milhões de transações por segundo.
Nesse sentido, no protocolo “devv” da empresa, cada shard representa um livro razão da blockchain. A empresa afirmou que milhares de shards podem ser adicionados a uma blockchain pública global ao longo do tempo, isso é feito com o intuito de processar dezenas de milhões de transações por segundo.
Além da Devvio, outras blockchains vem buscando implementar a técnica de sharding em suas redes, entre elas, podemos citar a Ethereum e Cardano. Os desenvolvedores desses projetos vêm estudando como podem implementar este método para otimizar suas redes.
Contudo, outras criptomoedas, como a Zilliqa (ZIL) já implementou o sharding em sua blockchain. Isso permitiu que a blockchain chegasse a 2828 transações por segundo em um teste de rede.
Conclusão
O sharding não é somente o único protocolo de escalonamento disponível, e os desenvolvedores de diversas blockchain, como Bitcoin e Ethereum, têm sido diligentes enquanto implementam melhorias em suas plataformas.
Nesse sentido, é graças aos esforços desses desenvolvedores que as startups e os principais nomes da indústria podem se desenvolver em um espaço emergente e robusto que está constantemente passando por atualizações.
Provavelmente, sharding não é a única peça que falta para solucionar o quebra-cabeça. Achar a solução para o problema de escalonamento das blockchains é complicado. Contudo, a solução depende, em última análise, dos pesquisadores e projetos serem capazes de testar e implantar protocolos de sharding.
No entanto, o sharding pode ser uma boa solução para os problemas de escalonamento das blockchains. Uma vez que elas se tornem escaláveis, podem atrair mais usuários ativos, desenvolvedores, Dapps etc.
Sendo assim, quanto mais descentralizado as redes nativas se tornarem, mais rápida a adoção em massa acontecerá na indústria blockchain. Com as soluções de escalonamento que têm surgido, certamente essa explosão da indústria não demorará muito tempo.