Conteúdo
Introdução
O problema de escalabilidade da blockchain
Dessa forma, nos encontramos em meio a um gargalo. Uma blockchain pode ser vista como o serviço de transporte de um trem, que parte em intervalos definidos. Existe um número limitado de assentos em cada vagão e para obter uma passagem, os viajantes devem fazer lances para garantir um lugar. Se todo mundo estiver tentando pegar o trem ao mesmo tempo, o preço será mais alto. Da mesma forma, uma rede entupida de transações pendentes exigirá que os usuários paguem taxas mais altas para que suas transações sejam incluídas em tempo hábil.
O criador da Ethereum, Vitalik Buterin, criou o Scalability Trilemma para descrever o desafio enfrentado pelas blockchains. Ele afirma em sua teoria, que os protocolos devem fazer alcançar um equilíbrio entre escalabilidade, segurança e descentralização. Essas propriedades estão, de certa forma, em desequilíbrio – concentrando-se demais em duas delas, a terceira terá um desempenho ruim.
O que são as soluções de escalabilidade off-chain?
A escalabilidade off-chain se refere a abordagens que permitem que as transações sejam executadas sem sobrecarregar a blockchain. Os protocolos se conectam à cadeia e permitem que os usuários enviem e recebam fundos, sem que as transações apareçam na cadeia principal. Vamos nos aprofundar em dois dos avanços mais importantes: as sidechains (cadeias laterais) e os canais de pagamento.
Uma introdução às sidechains
O que é uma sidechain?
Uma sidechain é uma blockchain separada. No entanto, não é uma plataforma independente, pois está atrelada de alguma forma à cadeia principal. A cadeia principal e a sidechain são interoperáveis, o que significa que os ativos podem fluir livremente de uma para a outra.
Como funciona uma sidechain?
Suponha que nossa amiga Alice tenha cinco Bitcoins. Ela quer trocá-las por cinco unidades equivalentes em uma sidechain da Bitcoin – vamos chamá-las de sidecoins. A sidechain em questão usa uma atrelagem bidirecional, o que significa que os usuários podem transferir seus ativos da cadeia principal para a sidechain e vice-versa.
Alice agora converteu suas moedas em sidecoins, mas ela pode sempre reverter o processo para recuperar suas Bitcoins. Agora que ela entrou na sidechain, está livre para fazer transações nesta blockchain separada. Ela pode enviar sidecoins ou recebê-las dos outros, da mesma forma que na cadeia principal.
Ela poderia, por exemplo, pagar a Bob uma sidecoin por um moletom da Binance. Quando ela quiser retornar à Bitcoin, poderá enviar as quatro sidecoins restantes para um endereço especial. Após a transação ser confirmada, quatro bitcoins seriam desbloqueadas e entregues em um endereço de Alice na cadeia principal.
Por que se utilizam as sidechains?
Você deve estar se perguntando qual é o motivo disso. Por que Alice não usa simplesmente a blockchain da Bitcoin?
Provavelmente não há necessidade desse nível de segurança para pequenos pagamentos cotidianos. Se Alice estiver pagando por um café, ela não ficará esperando pela confirmação da transação. Ela faria fila e seu café estaria frio quando fosse entregue.
Curiosamente, as sidechains podem até apresentar erros críticos sem afetar a cadeia subjacente. Isso permite que sejam usadas como plataformas para experimentação e implantação de recursos que, de outra forma, exigiriam consenso da maioria da rede.
Desde que os usuários estejam satisfeitos com as vantagens e desvantagens (trade-offs), as sidechains podem representar um passo importante para um dimensionamento mais eficaz. Não existem requisitos para que os nós da cadeia principal armazenem todas as transações a partir da sidechain. Alice poderia entrar na sidechain com uma única transação de Bitcoin, realizar centenas de transações de sidecoins e depois sair da sidechain. Na perspectiva da blockchain da Bitcoin, ela teria realizado apenas duas transações – uma para entrar e outra para sair.
Uma introdução aos canais de pagamento
O que é um canal de pagamento?
Os canais de pagamento têm o mesmo objetivo que as sidechains em termos de escalabilidade, mas são fundamentalmente muito diferentes. Como as sidechains, eles deslocam as transações para fora da cadeia principal para impedir que a blockchain fique congestionada. Ao contrário das sidechains, no entanto, eles não precisam de uma blockchain separada para funcionar.
Como funciona um canal de pagamento?
Digamos que cada um deles depositou 10 BTC em um endereço que agora contém 20 BTC. Seria fácil manter uma planilha com o controle do saldo, mostrando que Alice e Bob têm 10 BTC cada. Se Alice quisesse dar uma moeda a Bob, eles poderiam atualizar a planilha para que ela mostrasse que Alice tem 9 BTC e Bob tem 11 BTC. Eles não precisariam publicar na blockchain, pois eles mantêm o controle dos saldos.
Em determinado momento, digamos que Alice tenha 5 BTC e Bob tenha 15 BTC. Eles poderiam criar uma transação que envia esses saldos aos endereços correspondentes de cada parte, assiná-la e transmiti-la.
Alice e Bob poderiam ter registrado dez, cem ou até mil transações na planilha de controle do saldo. Mas, no que diz respeito à blockchain, eles realizaram apenas duas operações na cadeia (on-chain): uma para a transação inicial e outra para consolidar os saldos atualizados. Além dessas duas, todas as outras transações são gratuitas e quase instantâneas porque ocorrem fora da cadeia (off-chain). Não existe taxa de mineração a ser paga e não há necessidade de aguardar por confirmações de bloco.
Rota de pagamentos
Evidentemente, os canais de pagamento são convenientes para duas partes que preveem um alto volume de transações. Mas não é só isso. Uma rede desses canais pode ser desenvolvida, o que significa que Alice pode pagar a uma parte que não está diretamente conectada a ela. Se Bob tiver um canal aberto com Carol, Alice poderá pagá-la, desde que haja capacidade suficiente. Ela irá transferir fundos para o canal de Bob, que, por sua vez, os mandará para o canal de Carol. Se Carol estiver conectada a outro participante, o mesmo processo pode ser feito.
Essa rede evolui para uma topologia distribuída na qual todos se conectam a vários peers (pares). Muitas vezes, haverá várias rotas para um mesmo destino e os usuários poderão escolher a rota mais eficaz.
Considerações finais
Discutimos duas abordagens de escalabilidade que permitem que transações sejam feitas sem sobrecarregar a blockchain correspondente. As sidechains e a tecnologia de canal de pagamento ainda não amadureceram, mas estão sendo cada vez mais utilizadas por usuários que desejam contornar os problemas das transações da camada de base.
À medida que o tempo passa e mais usuários passam a fazer parte da rede, é importante que a descentralização seja mantida. Isso só é possível aplicando limites ao crescimento da blockchain, para que novos nós possam ingressar facilmente. Os defensores de soluções off-chain para os problemas de escalabilidade acreditam que, com o tempo, a cadeia principal será usada apenas para liquidar transações de alto valor ou para acoplar/desacoplar sidechains e abrir/fechar canais.