Se você vem do mundo da TI, provavelmente já ouviu falar de fragmentação de dados de banco de dados ou disco.
Para aqueles que não vêm da TI, uma maneira simples de colocá-lo é que a fragmentação significa dividir os dados e o trabalho em pedaços (fragmentos).
Quando você divide o trabalho, diferentes agentes (pessoas, computadores ou até mesmo processos diferentes dentro de um único computador) cuidam de uma ou mais dessas peças simultaneamente.
O objetivo geral da fragmentação é aumentar o número de coisas que são alcançadas por unidade de tempo (taxa de transferência).
Em sistemas RAID para discos, por exemplo, a fragmentação permite que um arquivo seja dividido em vários pedaços e cada pedaço pode ser lido ou gravado ao mesmo tempo por vários discos. Isso aumenta imensamente a taxa de transferência do disco.
O principal desafio para todas as formas de dinheiro descentralizado é alcançar um consenso global.
Quanto dinheiro o endereço X tem? Quanto dinheiro X foi transferido para Y?
A menos que haja consenso sobre esses fatos, as criptomoedas não formariam um sistema financeiro viável.
Os usuários de criptomoedas precisam de uma maneira de garantir a partes desconfiadas que o valor que eles vêem no saldo uns dos outros está correto.
Todos também devem estar convencidos de que as transações aconteceram com sucesso — e a mineração fornece essa garantia.
Então, como essa ideia é aplicada a criptomoedas?
Como você provavelmente sabe, a mineração de criptografia consome muita energia.
As criptomoedas Proof of Work, tais quais Ethereum e Bitcoin custam globalmente dezenas, até centenas, de milhares de dólares por minuto para manter.
Muitas pesquisas atuais existem para encontrar maneiras inovadoras de melhor usar os recursos de mineração.
A mineração Proof of Work (PoW) resolve o problema do consenso.
( É sem dúvida a maior contribuição de Satoshi para o desenvolvimento de dinheiro eletrônico descentralizado.)
Cada participante da rede realiza um pouco de trabalho e o resultado geral é que um dos participantes encontrará uma solução para um bloco, garantindo assim a integridade das transações.
Se você dividir o trabalho que está sendo feito pelos mineradores em fragmentos, então diferentes grupos de mineradores processariam diferentes partes de transações para dividir a carga.
O resultado seria muito mais transações sendo processadas por segundo, efetivamente realizando o que a fragmentação se estabeleceu para fazer.
Mas há enormes desafios na forma de implementar a fragmentação.
Bitcoin mostrou sua força quando foi consistentemente atacado e seu próprio algoritmo auto-regulado.
Isso foi possível porque o custo para atacar toda a rede Bitcoin torna inviável para sustentar um ataque muito longo e ainda ser rentável.
O que aconteceria, no entanto, se a rede Bitcoin fosse dividida em muitos fragmentos e cada grupo menor de mineradores tivesse processado um pedaço das transações durante este ataque?
Aqueles que possuem enorme hashpower poderiam então centralizar todos os seus esforços em atacar um grupo menor e sabotar mais facilmente Bitcoin.
Dependendo da estratégia de fragmentação adotada, isso pode interromper toda a rede.
Por exemplo, se uma parte da rede dependia dos resultados fornecidos por grupos menores para continuar funcionando, e esses grupos menores foram atacados, a rede maior poderia ser efetivamente DDOS’ed atacando um grupo muito menor (um mais fraco) de mineiros.
Outra questão é como montar os fragmentos de volta em um único consenso geral.
Como cada nó agora está processando um pedaço menor de uma estrutura de dados maior, ele não possui toda a estrutura dentro de sua memória.
Os nós devem então se comunicar uns com os outros para trocar esses dados ausentes. Toda a rede deve, portanto, “falar” muito mais para garantir que todos cheguem ao mesmo consenso.
O que os pesquisadores descobriram é que essa comunicação pode crescer muito e derrotar o propósito de fragmentação em primeiro lugar.
Seria como trocar um obstáculo por outro.
Embora o objetivo deste artigo seja manter as coisas realmente simples, devemos mencionar este teorema apenas para apontá-lo na direção certa no caso de você querer cavar mais.
CAP é um acrônimo para Consistency, Availability e Partition tolerance.
Aqui está o que cada peça significa:
Consistência: todos na rede estão recebendo dados válidos.
Disponibilidade: todos na rede recebem uma resposta, não importa quando eles emitem uma consulta.
Tolerância de partição: a rede continua funcionando mesmo que muitos fragmentos sejam perdidos ou corrompidos.
O teorema CAP afirma que você só pode ter dois destes ao mesmo tempo para qualquer sistema de armazenamento.
As redes descentralizadas são inerentemente heterogêneas.
Sua conexão doméstica com a Internet é muitas vezes mais lenta do que grandes troncos de fibra óptica onde os supercomputadores se comunicam.
Os países pobres têm acesso mais lento, enquanto as comunidades ricas desfrutam de uma excelente conectividade.
As redes caem por várias razões, e assim por diante.
Portanto, garantir que todos tenham acesso apenas aos dados corretos mais recentes (Consistência) ou que eles receberão uma resposta a cada consulta (Disponibilidade) é muito difícil para qualquer rede de criptomoeda.
E, como mencionamos anteriormente, se alguém com recursos suficientes decidiu atacar um pedaço menor da rede, a tolerância à partição seria mantida? Ou uma versão fragilada do Bitcoin entraria em colapso?
Ainda existem muitos debates sobre fragmentação. Não é totalmente claro que a fragmentação aumentaria a taxa de transferência geral da rede e manteria a mesma confiabilidade que o Bitcoin exibiu na última década.
Os trade-offs (CAP) estão sendo cuidadosamente pesados pelos pesquisadores porque cada tentativa de aumentar a taxa de transferência blockchain resultou em outra variável aumentando o custo de alcançar consenso.
A atividade de armazenamento e rede são dois parâmetros que aumentam muito sempre que a fragmentação é tentada.
Esse aumento geralmente compensa as vantagens suficientes para desencorajar a mudança de um único blockchain para um modelo fragmentado.
Esperamos que esta introdução básica tenha lhe dado uma ideia melhor sobre a fragmentação e os desafios envolvidos na sua implementação.
Uma das principais ideias a ter em mente é que existe um teorema fundamental do armazenamento de dados que diz que você não pode ter consistência, disponibilidade e tolerância à partição ao mesmo tempo. E esse é um fator limitante para a taxa de transferência de blockchain porque cada vez que você divide a carga de trabalho, outro componente parece se tornar mais complexo e compensa as vantagens de distribuir as tarefas.
—