Como outros blockchains públicos, o ethereum pretende oferecer suporte a quantos usuários puder.
O problema é que, hoje, não sabemos realmente os limites da plataforma.
Por causa de um limite codificado em computação por bloco, o blockchain ethereum atualmente suporta cerca de 15 transações por segundo em comparação com, digamos, os 45.000 processados pela Visa.
Esta limitação do ethereum e outros sistemas de blockchain tem sido objeto de discussão por desenvolvedores e acadêmicos.
Embora os desenvolvedores do ethereum possam destacar como a plataforma de contrato inteligente flexível difere do bitcoin, por exemplo, ela não é exclusiva no que diz respeito à escalabilidade.
Por mais decepcionante que possa parecer, há esperança em soluções propostas que ainda não foram incluídas no software oficial.
Por que o dimensionamento é tão difícil?
O Ethereum e o bitcoin usam uma combinação de truques e incentivos técnicos para garantir que registrem com precisão quem possui o quê sem uma autoridade central.
O problema é que é difícil preservar esse equilíbrio e, ao mesmo tempo, aumentar o número de usuários (especialmente para o ponto em que pessoas comuns podem usar o sistema para comprar café ou executar aplicativos).
Isso porque o ethereum depende de uma rede de ‘nós’, cada um dos quais armazena todo o histórico de transações ethereum e o ‘estado’ atual de saldos de contas, contratos e armazenamento. Esta é obviamente uma tarefa complicada, especialmente porque o número total de transações está aumentando aproximadamente a cada 10–12 segundos com cada novo bloco.
A preocupação é que, se os desenvolvedores aumentarem o tamanho de cada bloco para ajustar-se a mais transações, os dados que um nó precisará armazenar crescerão – efetivamente expulsando as pessoas da rede. Se cada nó cresce o suficiente, apenas algumas grandes empresas terão os recursos para executá-las.
Apesar da inconveniência, a execução de um nó completo é a melhor maneira de os usuários aproveitarem a privacidade e a segurança. Tornar os nós completos mais difíceis de serem executados limitaria ainda mais o número de pessoas que podem verificar as próprias transações.
Em outras palavras, a descentralização e a escalabilidade estão atualmente em desacordo, mas os desenvolvedores estão procurando maneiras de contornar isso.
Fragmentação (Sharding)
Existem alguns projetos de escala ethereum nos trabalhos, cada um dos quais aborda um problema de escalabilidade diferente.
Como mencionado, um problema é que cada nó precisa armazenar o estado atualizado de cada conta na rede. ‘Sharding’ é extraído de uma técnica de escalonamento tradicional chamada ‘fragmentação de banco de dados’, que efetivamente divide um banco de dados em partes e coloca cada parte em um servidor diferente.
O objetivo do sharding é se afastar da exigência de nós ‘completos’ – aqueles que armazenam o estado completo da rede e todas as transações que ocorrem.
Em vez disso, cada nó armazena um subconjunto desses dados e apenas verifica essas transações. Se um nó precisar saber sobre transações ou blocos que não armazena, ele localizará outro nó com as informações necessárias.
O problema aqui é que o processo não é exatamente sem confiança, já que, neste modelo, os nós precisam confiar em outros nós.
A Ethereum quer resolver esse problema usando ‘incentivos criptoconométricos’ que levam os atores de um sistema a agir de determinada maneira – neste caso, garantindo que os nós estejam passando informações válidas para outros nós.
Transações Fora da Cadeia (Off-chain)
Uma tecnologia de expansão de capacidade possivelmente mais ambiciosa toma emprestada da Lightning Network da bitcoin, uma camada superior proposta para o blockchain que espelha como a Internet multi-camadas funciona.
Transações “off-chain” de estilo Lightning poderiam aproximar os recursos da tecnologia de como os usuários eram informados de que “deveria ser” – rápido e quase ilimitado no fornecimento, sem exigir que os usuários confiassem em qualquer intermediário.
De acordo com essa visão, a maioria das transações será feita em canais de micropagamento off-chain, elevando a carga do blockchain subjacente.
A razão pela qual isso funciona, em teoria, é que qualquer das partes pode retroceder a transação ao blockchain sempre que quiserem, dando a ambas as partes a capacidade de encerrar a interação.
Com este add-on, o limite computacional do ethereum não precisa aumentar muito, e a esperança é que ainda seja razoável para os entusiastas regulares do ethereum rodarem um node completo.
Quanto Tempo Levará para Escalar?
Essa é uma pergunta complicada, pois ainda há muita experimentação acontecendo na frente da escala.
Nas palavras do criador Vitalik Buterin, o objetivo de longo prazo é que a plataforma seja capaz de processar transações em “níveis de transação em escala Visa” ou além.
No entanto, como observadores céticos fazem questão de apontar, isso é baseado na análise de Buterin e em técnicas que ainda precisam ser implantadas em um blockchain público.
Em suma, embora o ethereum atualmente possa lidar com apenas um punhado de transações por segundo, seus arquitetos têm grandes esperanças para o futuro.