Escalabilidade da Blockchain - Sidechains e Canais de Pagamento
P√°gina Inicial
Artigos
Escalabilidade da Blockchain - Sidechains e Canais de Pagamento

Escalabilidade da Blockchain - Sidechains e Canais de Pagamento

Avançado
Publicado em Feb 20, 2020Atualizado em Feb 9, 2023
9m

Conte√ļdo


Introdução

A escalabilidade refere-se, de modo geral, √† capacidade de um sistema crescer para acomodar uma demanda crescente. Na computa√ß√£o, voc√™ pode aumentar o desempenho da sua m√°quina melhorando seu hardware, para que a execu√ß√£o de determinadas tarefas sejam mais r√°pidas. Quando falamos de escalabilidade em¬†blockchains, nos referimos ao aumento da sua capacidade de lidar com mais transa√ß√Ķes.
Protocolos como o da Bitcoin têm muitos pontos fortes, mas a escalabilidade não é um deles. Se a Bitcoin fosse executada em um banco de dados de centralizado, seria relativamente fácil para um administrador aumentar a velocidade e a taxa de transferência. Mas a proposta da Bitcoin (como a resistência à censura) exige que muitos participantes da rede sincronizem uma cópia da blockchain.


O problema de escalabilidade da blockchain

A execu√ß√£o de um¬†n√≥ da Bitcoin √© relativamente barata e at√© dispositivos simples podem faz√™-lo. Mas como os milhares de n√≥s precisam permanecer atualizados entre si, existem certas limita√ß√Ķes em sua capacidade.¬†
Limites s√£o estabelecidos no n√ļmero de transa√ß√Ķes que podem ser processadas na cadeia (on-chain), para impedir que o banco de dados atinja propor√ß√Ķes muito grandes. Se ele se tornar muito grande rapidamente, os n√≥s n√£o conseguir√£o acompanhar essa expans√£o. Al√©m disso, se os¬†blocos forem muito grandes, eles n√£o poder√£o ser retransmitidos rapidamente atrav√©s da¬†rede.

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.

Uma poss√≠vel solu√ß√£o seria aumentar o tamanho dos vag√Ķes. O que resultaria em mais assentos, maior capacidade de transfer√™ncia e menores pre√ßos de passagens. Mas n√£o h√° garantia de que os assentos n√£o ser√£o todos preenchidos como antes. A capacidade dos vag√Ķes n√£o pode ser infinitamente ampliada, assim como blocos e o limite de¬†g√°s dos blocos n√£o podem ser dimensionados infinitamente. Este √ļltimo torna a perman√™ncia dos n√≥s na rede um processo mais caro, pois eles precisar√£o de hardwares mais caros para se manter sincronizados.

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.

Por esse motivo, muitos vêem a escalabilidade como algo a ser alcançado fora da cadeia (off-chain), enquanto a segurança e a descentralização devem ser maximizadas na própria blockchain.


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.

Existem v√°rias maneiras de garantir que os fundos possam ser transferidos. Em alguns casos, os ativos s√£o movidos da cadeia principal, sendo depositados em um¬†endere√ßo especial. Eles n√£o s√£o enviados de fato ‚Äď eles s√£o bloqueados no endere√ßo e um valor correspondente √© emitido na sidechain. Uma op√ß√£o mais direta (embora centralizada) √© o envio de fundos para um custodiante, que troca o dep√≥sito por fundos na sidechain.


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.¬†

Lembre-se de que a sidechain é uma blockchain separada. Então, ela terá diferentes blocos, nós e mecanismos de validação. Para obter suas sidecoins, Alice envia cinco Bitcoins a outro endereço. Esse endereço pode ser de alguém que irá enviar 5 sidecoins ao endereço sidechain de Alice, depois de receber as Bitcoins. Como alternativa, pode haver algum tipo de configuração que diminua a necessidade de confiança, na qual as sidecoins são creditadas automaticamente após a detecção do pagamento pelo software.



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?

A resposta √© que a¬†sidechain pode ser capaz de coisas que a Bitcoin n√£o pode fazer. Blockchains s√£o sistemas de trade-offs (trocas) cuidadosamente projetados. Embora a Bitcoin seja a criptomoeda mais segura e descentralizada, n√£o √© a melhor em termos de taxas de transfer√™ncia. Embora as transa√ß√Ķes com Bitcoin sejam mais r√°pidas que os m√©todos convencionais, ainda s√£o relativamente lentas quando comparado a outros sistemas blockchain. Os blocos s√£o¬†minerados a cada dez minutos e as taxas podem aumentar significativamente quando a rede est√° congestionada.

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.

Sidechains n√£o seguem as mesmas regras. Na verdade, elas nem precisam usar¬†Proof of Work para funcionar. Voc√™ poderia usar qualquer¬†mecanismo de consenso, confiar em um √ļnico validador ou ajustar quaisquer par√Ęmetros. Voc√™ poderia adicionar atualiza√ß√Ķes que n√£o existem na cadeia principal, produzir¬†blocos maiores e aumentar a velocidade do processo.

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.

O protocolo Plasma da Ethereum é similar, mas apresenta algumas diferenças importantes. Leia mais sobre o assunto: O que é o Ethereum Plasma?


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.

Um canal de pagamento usa um¬†contrato inteligente para permitir que os usu√°rios realizem transa√ß√Ķes sem publicar suas transa√ß√Ķes na blockchain. Isso √© feito usando um contrato imposto por software entre dois participantes.


Como funciona um canal de pagamento?

Em modelos como o popular¬†Lightning Network, duas partes depositavam moedas em um endere√ßo que possu√≠am de forma conjunta. Este tipo de endere√ßo¬†multisignature (de m√ļltiplas assinaturas), requer duas assinaturas para que os fundos sejam gastos. Ent√£o, se Alice e Bob criaram esse endere√ßo, os fundos s√≥ poderiam ser movidos com o consentimento de ambos.

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.

Obviamente, o exemplo discutido acima exige que ambas as partes cooperem, o que não é uma situação ideal para usuários que não se conhecem. No entanto, mecanismos especiais podem ser usados para punir qualquer tentativa de trapaça, para que as partes possam interagir com segurança umas com as outras sem a necessidade de confiança. 


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.