O conceito de Shards refere-se ao método utilizado na validação das transações na blockchain. Ele é largamente utilizado em bancos de dados, dividindo-os em várias partes menores chamados de shards ou fragmentos com intuito de facilitar o gerenciamento desse conteúdo.
No modelo tradicional chamado de execução linear, todos os validadores da blockchain precisam ter armazenados em sua máquina todas as informações de toda a rede e cada transação passa por todos os validadores. Esta é a forma que são realizadas as transações blockchain da Ethereum por exemplo. No sharding um bloco de dados é dividido em várias partes e registrado em diferentes máquinas, esse método é chamado de execução paralela.
Na blockchain com sistema de sharding como a Near, cada bloco é dividido em várias partes e cada parte fica a cargo de uma pessoa que então é responsável por apenas esta parte dos dados da blockchain. Este formato permite a cada grupo validar várias transações ao mesmo tempo, já que validam apenas as transações referentes ao seu shard. No método anterior teríamos uma pessoa validando as transações em um bloco e agora temos várias pessoas validando transações em múltiplos blocos ao mesmo tempo.
A rede Ethereum pretende implementar o sharding na sua atualização 2.0. A Near já implementou com sucesso e vem aperfeiçoando-o e incrementando as funcionalidades por etapas para que esteja funcionando totalmente com 100% da sua capacidade. Espera-se que o sharding esteja completamente implementado na blockchain Near por volta do 3 quadrimestre de 2022. Após isto está previsto uma última atualização que será o Dynamic Sharding, ou sharding dinâmico. Este recurso deve ser incluído no final de ano de 2022 e consiste na capacidade da rede se dividir e mesclar os shards automaticamente conforme a sua utilização e necessidade.
Este método possibilita uma velocidade muito maior nas transações já que, em vez de uma transação por segundo, cada grupo de pessoas pode confirmar várias transações ao mesmo tempo. Na Near é possível validar 10000 transações por segundo sendo que na teoria não há limite em número de transações podendo sua capacidade ser aumentada acrescentando-se mais shards.
A tecnologia de sharding da Near Protocol chama-se Nightshade. Cada shard produz uma quantidade de dados, chamada chunk, ou pedaços em inglês, e estas então são ligadas a outros chunks que constituem um bloco. Cada validador é responsável por vários chunks que formam um bloco. Isto também facilita e amplia o números de possíveis stakers já que não precisam de um computador tão avançado e uma grande quantidade de tokens Near para participar do processo de validação, aumentando assim a segurança da rede.
O sistema ainda prevê no futuro o Re-Sharding que consiste em utilizar somente os shards necessários sem utilizar outras partes da rede sem necessidade
Em resumo o NightShade apresenta duas funções, uma onde são produzidos blocos e outra de validadores, cada um fica responsável por uma pequena parte da blockchain fazendo com que seja necessário uma menor capacidade computacional.
Eventualmente, a própria rede ajustará dinamicamente o número de shards com base em sua utilização e nenhum validador precisará validar todos os shards. Assim temos um número muito maior de transações ao mesmo tempo que aumenta a escalabilidade da rede como um todo proporcionando um ambiente propício para a criação de todos os tipos de aplicações rendendo agilidade na utilização e proporcionando baixo custo nas transações
Para saber mais sobre o Nightshade Sharding acesse os links em inglês:
https://near.org/papers/nightshade/#sharding-basics
https://near.org/blog/near-launches-nightshade-sharding-paving-the-way-for-mass-adoption/