Problema de escalabilidade do Blockchain e algumas soluções promissoras
Blockchain é revolucionário. Mas a escalabilidade do Blockchain é um problema significativo que enfrentamos hoje. Ele não consegue se ajustar às cargas de trabalho massivas, o que é assustador. E é inerentemente lento.
De qualquer forma, se usado adequadamente, pode fortalecer a segurança e a privacidade dos dados. E pode ajudar na prevenção do roubo de identidade – um problema preocupante em todo o mundo. Além disso, o blockchain facilita pagamentos internacionais mais rápidos e reduz drasticamente os custos de transação.
E temos ouvido que o blockchain está aqui para ficar. Se tiver que ficar, o blockchain deve acelerar o processamento da transação; pelo menos, ao nível da rede de processamento de pagamentos Visa.
Aqui, discutimos o problema de escalabilidade do blockchain, mantendo o foco em,
- Bitcoin – a primeira criptomoeda de grande sucesso
- Ethereum – uma plataforma de blockchain que facilita aplicativos distribuídos e contratos inteligentes. Até você pode criar sua própria criptomoeda no topo do Ethereum; e, pela mesma razão, muitas ofertas iniciais de moedas, uma versão criptomoeda de IPOs de ações, são realizadas na Ethereum.
Por que o blockchain é lento?
Qualquer um pode fazer mineração. E apenas um bloco pode ser publicado por vez. Assim que o bloco for publicado, outros mineiros irão verificar, o que leva tempo.
Além disso, o tamanho máximo de cada bloco é limitado. Esta é uma preocupação com a escalabilidade do blockchain
O Bitcoin é projetado para publicar um bloco a cada dez minutos. Além disso, o tamanho do bloco é limitado a 1 MB. Portanto, se houver mais transações, essas transações devem esperar mais dez minutos. Assim, quanto mais transações, maior o tempo para confirmá-las.
Apesar desse problema, as mineradoras tentarão incluir transações com taxas mais altas – já que não há limite de quanto se pode pagar em taxas. Conseqüentemente, atrasando aqueles com taxas baixas; porque são os mineiros que recebem essas taxas de transição. Por isso, quando as transações acontecem em alto volume, é preciso pagar taxas maiores para uma confirmação mais rápida. E não faz sentido para uma criptomoeda cobrar taxas pesadas.
Ethereum, no entanto, tem um tempo de bloqueio mais rápido. Em média, um bloco é publicado a cada 15 segundos. E não tem um limite de tamanho de bloco. De qualquer forma, há um limite para as taxas de transação cumulativas de cada bloco. Ou seja, o minerador pode incluir quantas transações puder, em um bloco, desde que as taxas totais trazidas por essas transações não excedam um determinado limite.
Lembre-se, Ethereum é uma plataforma de blockchain que não só tem seu próprio criptomoeda Ether (ETH), mas uma infinidade de outras criptomoedas, muitas vezes chamadas de tokens ou moedas, e aplicativos distribuídos. E cada operação executada por esses aplicativos custa dinheiro, pois os mineradores fornecem potência de computação para eles. Por sua vez, esses pagamentos também são feitos em transações, adicionando assim mais volumes do que se pode ver no Bitcoin.
Pode-se dizer que a prova de trabalho é um problema que está causando o problema de escalabilidade do blockchain.
O que é prova de trabalho?
Quando um bloco é construído com transações, o minerador deve gastar uma certa quantidade de poder computacional para publicar o bloco. E normalmente envolve a resolução de um problema matemático complexo.
Quando o mineiro publicasse um bloco junto com a solução, outros o veriam. Embora verificar a solução seja muito fácil e rápido. A solução do problema nada mais é do que prova de trabalho – já que o mineiro prova que fez o trabalho.
A quantidade de energia que precisa ser gasta depende da capacidade computacional total disponível da rede.
A prova de trabalho é uma excelente forma de manter o blockchain saudável e descentralizado. No entanto, isso também é um obstáculo para processar transações mais rapidamente.
Pare com isso. O que é descentralização?
O Federal Reserve controla o dólar americano. Você pode perguntar alguma coisa se eles querem imprimir mais dólares? Não, você não tem chance. No entanto, o mesmo acontece com a maioria dos bancos centrais de todo o mundo que controlam as moedas fiduciárias. E essas entidades envolvem muito menos o público em suas tomadas de decisão; e, às vezes, seus interesses não serão iguais aos interesses públicos.
A descentralização é a distribuição do controle às pessoas que participam de um sistema, em vez de permitir que poucas pessoas controlem as operações e o processo de tomada de decisões. Esta é uma das razões pelas quais mais e mais pessoas estão usando criptomoedas. No atual ecossistema de blockchain, se mais pessoas entrarem na rede, maior será o problema de escalabilidade do blockchain.
2 Soluções para melhorar a escalabilidade do blockchain
Passaram-se apenas dez anos desde a invenção do blockchain. E muitos pesquisadores estão trabalhando para tornar o blockchain mais rápido.
Aqui, discutimos alguns desenvolvimentos interessantes que abordam o problema de escalabilidade da cadeia de blocos.
1. Canais de pagamento
Em vez de inserir todas as transações no blockchain, um canal de pagamento será aberto entre um conjunto de entidades. Qualquer número de canais pode ser aberto entre as entidades da rede – usuários, comerciantes e mineradores. E um canal pode ser fechado a qualquer momento.
Apenas a abertura e o fechamento de um canal de pagamento serão notados no blockchain.
Vamos dar um exemplo para ver como funciona.
Existem cinco pessoas na rede: Alice, Bob, Charlie, David e Ellen.
Alice e Bob abriram um canal de pagamento entre eles. Alice tem 5 dólares e Bob 30 dólares. Esses 35 dólares agora estão em um cofre. O cofre é criado quando o canal é aberto.
Quando Bob deseja enviar 5 dólares para Alice, em vez de transferir diretamente o dinheiro, a propriedade do dinheiro muda. O dinheiro fica apenas no cofre. Quando o canal de pagamento é fechado, o cofre é aberto. E Bob receberá 25, pois fez uma transferência de 5 dólares. Alice receberá 10 dólares.
Mas, como pode Alice enviar dinheiro para David ou Ellen?
Existem duas maneiras.
- Alice abre um novo canal de pagamento com David e Ellen.
- Caso contrário, digamos que David e Ellen já tenham um canal aberto com Charlie. Além disso, Charlie e Bob têm um canal de pagamento aberto entre eles. Aqui, os canais de pagamentos conversam entre si. Agora, a transação de Alice para David e Ellen, primeiro, chega a Bob, depois Bob a encaminha para Charlie. Finalmente, Charlie enviará o dinheiro para David e Ellen.
Quanto mais canais de pagamento disponíveis, mais rápida se torna a rede de pagamento. E observar transações no blockchain torna-se menos frequente. Portanto, menos número de transações no blockchain. Assim, tornando o processamento da transação extremamente rápido.
No caso do Bitcoin, este sistema é denominado Lightning Network. E para Ethereum, é o Rede Raiden. O conceito central é o mesmo em ambas as implementações.
2. Sharding para Escalabilidade Blockchain
Na fragmentação, os mineiros são divididos em vários grupos (fragmentos) e, em seguida, cada grupo receberá diferentes transações para processar. Cada grupo trabalha separadamente para publicar um bloco cada simultaneamente.
À medida que mais blocos são publicados com frequência, o processo de validação da transação acelera.
Além disso, esses fragmentos conversam entre si com frequência, de modo que nenhuma transação de gasto duplo receba um sinal verde.
Aqui está como uma transação de gasto duplo pode ocorrer.
Alice tem 10 dólares. E ela manda 10 dólares para Bob. Shard1 recebe uma mensagem para verificar esta transação.
Imediatamente, Alice envia novamente uma transação falsa de 10 dólares para Charlie, embora ela não tenha dinheiro. É possível porque o Shard1 ainda não validou a transação de Alice para Bob – ou seja, Bob não tem o dinheiro. E isso é ilegal, pois Alice está gastando mais do que ela, do nada.
Agora, o Shard2 recebe a transação de Alice para Charlie.
Se os mineiros de Shard1 e Shard2 não se falam com frequência, eles podem aprovar as duas transações. E viola as regras do sistema monetário. Portanto, os fragmentos devem se manter comunicando com frequência para evitar transações incorretas.
No entanto, este problema é melhor abordado quando contratos inteligentes – programas autoexecutáveis - estão em vigor.
Um contrato inteligente saberá quanto equilíbrio Alice tem. Quando ela está enviando uma transação, o contrato inteligente impedirá automaticamente que Alice envie a segunda transação forjada. E nunca chegará ao Shard2.
Outra solução para dimensionar dApps baseados em Ethereum é o Plasma, você pode ler mais detalhes em nosso guia recente: O que é Ethereum Plasma? Como pode aumentar Ethereum?.
Conclusão
Canais de pagamento e fragmentação são as soluções promissoras para lidar com a escalabilidade do blockchain. E estes estão sob ativa pesquisa e desenvolvimento. E isso é apenas a ponta do iceberg. Mas a maioria das soluções que existem ainda não estão maduras. Uma vez que uma solução é trazida para o blockchain, então só podemos avaliar o quanto eles estão ajudando a escalar.
Mantenha seus dedos cruzados. Felizmente, o blockchain terá dias mais rápidos pela frente.