Você sabe o que é sharding? Então prepare-se para aprender mais um conceito que faz parte do mundo das criptomoedas!
Em tradução literal sharding significa fragmentação, na prática, consiste em dividir um grande banco de dados em partes menores com o objetivo de facilitar o seu gerenciamento.
Trazendo essa definição para o universo cripto, essa é uma das maneiras utilizadas para resolver o problema de escalabilidade que comumente as redes blockchain sofrem.
De que forma isso pode ser feito? Basicamente, a função do sharding é dar a cada nó que compõe a rede a capacidade de armazenar, calcular e validar apenas a parte da transação que lhe cabe, sem precisar carregar consigo os dados dos demais nodes, que é justamente o que deixa a rede pesada e causa lentidão.
“Mas se um dos mecanismos de segurança da blockchain é o fato de cada bloco carregar as suas próprias informações e as informações do seu antecessor, o sharding não facilitaria os ataques cibernéticos?” Se essa foi a pergunta que passou agora na mente, você não pensou errado.
Esse é um dos riscos atribuídos a essa fragmentação no que se refere à sua aplicação na blockchain. No entanto, há estratégias dentro desse conceito que podem minimizá-las, além de outras opções que também podem contribuir para melhor a escalabilidade dessas redes.
Quer saber quais são e como esses problemas podem ser resolvidos? Então continue a leitura deste artigo e confira o que é sharding, como funciona, quais são suas vantagens e desvantagens e alternativas a essa estratégia.
O que é sharding e qual sua relação com a blockchain?
Seguindo com a nossa explicação sobre o que é sharding, consiste na divisão horizontal de um grande banco de dados. O objetivo dessa técnica é facilitar o gerenciamento, dividindo um banco muito grande em partes menores.
Por conta dessa característica, o sharding passou a ser usado pelas redes blockchain como um meio de resolver a questão da escalabilidade. Mas qual seria essa questão, propriamente dita? Para explicá-la, vale relembrarmos um pouco como essa rede funciona.
Uma rede blockchain é formada pelos chamados nós (nodes), que podem ser definidos como servidores de bancos de dados individuais. Como critério de segurança, cada um desses nodes armazena uma cópia completa da rede da qual fazem parte. Dessa forma, ainda que um deles seja atacado, ou mesmo sofra algum problema técnico, a rede e suas operações não são comprometidas.
A questão é que, além de fazer esse armazenamento completo, os nós precisam estar sempre atualizados. Isso significa que quanto mais transações são feitas e validadas, maior é o volume de dados que eles precisam guardar.
Esse ponto, por sua vez, é o que deixa os bancos de dados mais pesados e lentos, demandando de cada vez mais energia para os processos e elevando o tempo necessário para as validações, prejudicando o funcionamento da rede como um todo.
O sharding chega como uma solução para dividir os nodes que formam a rede em partes iguais, de modo que cada um tenha capacidade para trabalhar de maneira autônoma, ainda que pertencentes a um mesmo grupo.
Como o sharding funciona na prática?
Para entender de forma mais completa o que é sharding e como esse processo de fragmentação funciona em uma blockchain, imagine uma rede formada por 20 mil nodes, os quais são divididos em 10 partes iguais, ou seja, 10 grupos com 2 mil nodes cada.
Isso é o mesmo que ter 10 redes funcionando paralelamente, possibilitando que um número bem maior de operações e validações possam ser realizadas, já que a blockchain estará “mais leve”.
Explicando isso em uma linguagem mais técnica, mas fácil de ser compreendida, o sharding na blockchain altera o modelo de execução linear para o modelo de execução paralelo. O que significa que, ao invés de todos os nodes calcularem e processarem todas as transações, cada node realizará somente algumas operações.
A rede se torna escalável visto que passa a ser possível realizar um número bem maior de transações simultaneamente, demandando menos tempo e gerando menos custos.
Quais são as vantagens e desvantagens do sharding?
Certamente, a escalabilidade, o tempo reduzido das operações e os custos menores são as principais vantagens da fragmentação de uma rede blockchain.
Entretanto, conforme apontamos logo no início deste artigo, essa solução esbarra na questão da segurança, já que modifica diretamente uma das principais características da blockchain, que é os nodes funcionarem juntos e operarem conectados.
Por conta disso, os maiores riscos da utilização do sharding nessa tecnologia são:
- risco de segurança;
- risco de comunicação.
Risco de segurança
O risco de segurança se dá pelo fato que é muito mais fácil para os hackers acessarem o fragmento de uma rede (ou seja, um nó) que a rede inteira. Se isso acontece, há a chances de esses invasores enviarem transações falsas e/ou inválidas para a rede principal, comprometendo sua credibilidade e afetando seriamente todas as outras operações e nodes.
Risco de comunicação
Fragmentar uma blockchain consiste em, basicamente, transformar uma única rede em várias, o que significa que a comunicação entre os nós que não estão no mesmo grupo será interrompida.
Para resolver isso, é preciso adicionar uma solução extra que promova a interação entre os nodes separados, o que tende a ser uma atividade bastante complexa para os desenvolvedores.
Existem alternativas ao sharding?
Tanto para tentar sanar esses riscos que acabamos de citar quanto para resolver o problema de escalabilidade comum nas redes blockchain, existem duas alternativas ao sharding que podem ser utilizadas, que são:
- aumentar a capacidade dos blocos;
- utilizar altcoins.
Aumentar a capacidade dos blocos
Blocos com capacidade de armazenamento maior conseguem executar mais transações, por sua vez, a velocidade da rede também aumenta. No entanto, isso impacta diretamente na necessidade de um poder computacional também mais elevado.
Considerando que apenas equipamentos mais potentes conseguem processar blocos maiores, o custo de aquisição desses computadores certamente será maior, assim como o gasto energético, o que pode resultar no aumento do valor das taxas pagas aos mineradores, afetando, assim, os usuários da rede.
Utilizar altcoins
O uso das altcoins garante que as transações sejam realizadas na própria rede desses ativos. Essa estratégia melhora o desempenho da blockchain, pois evita a sua sobrecarga.
No entanto, mais uma vez, esbarra na questão da divisão da rede, o que pode torná-la vulnerável a ataques cibernéticos.
Ficou claro o que é sharding? Gostou de conhecer mais esse conceito? Então conheça vários outros agora mesmo, conferindo os demais artigos do blog da Bitso!