O Bitcoin ganha usuários sem parar, mas até onde sua infraestrutura pode aguentar? Ele pode suportar milhões de usuários? Quão longe está o Escalabilidade Bitcoin?

Paradoxalmente, a chegada repentina de milhões de usuários encantados por suas vantagens ao Bitcoin não os beneficiaria, na verdade, poderia prejudicá-los muito, pois a experiência de todos os usuários seria seriamente afetada.

E não é algo desconhecido. Uma das perguntas frequentes sobre Bitcoin é: pode funcionar se milhões de pessoas decidirem fazer dele seu principal meio de pagamento?

Infelizmente, com a versão atual do Bitcoin, a resposta é não.

No entanto, esse problema está com os dias contados, pois tem sido a obsessão de muitos programadores que criaram várias propostas de escalabilidade incríveis. Agora só falta decidir, por consenso do nós, qual e quando será implementado.

No próximo capítulo, vamos ajudá-lo a entender, ainda mais, a essência do Bitcoin e por que ele atualmente não é escalável, enquanto o acompanharemos para aprender sobre algumas das propostas de escalabilidade mais notáveis.

Bitcoin e escalabilidade: Bitcoin atualmente não é escalável

Vamos primeiro enfatizar que por escalabilidade não queremos dizer que o Bitcoin não pode ser entendido pela maioria da população devido à mudança de paradigma como dinheiro. Nem porque, pelo preço que pode atingir, seja inacessível para algumas pessoas. Nem que não pudesse haver bitcoins suficientes para todos.

Tudo isso acima, além de ser falso, não é a que estamos nos referindo quando falamos em escalabilidade.

A partir de hoje, novembro de 2016, o Bitcoin não é perfeito:

  • Os pagamentos não são instantâneos (embora sejam refletidos instantaneamente, não são confirmados instantaneamente).
  • Os micropagamentos estão se tornando totalmente inviáveis. Uma das grandes características do Bitcoin.
  • Existe um risco constante de alta centralização da mineração.
  • Bitcoin não é escalável.

Como podemos ver, há muito a melhorar (ou como alguns vêem: oportunidades de criar grandes coisas), mas, de todos os problemas a serem resolvidos no Bitcoin, o último que mencionamos é uma das principais tarefas a alcançar: aquele Bitcoin ser escalonável. Corrigir isso tornará os outros problemas mencionados em cascata melhor.

O Bitcoin aspira ser um sistema financeiro global, e os dados mostram que as pessoas são a favor dele, por isso deve estar preparado para seu uso por milhões de usuários simultâneos, e tudo isto, sem perder nenhuma das suas principais características que o tornam verdadeiramente único e valioso.

E é que Bitcoin ainda é um experimento. Sim, uma experiência incrível e popular, mas que ainda está em um estágio inicial. Na verdade, apesar de ter revolucionado todo o setor financeiro desde seus pilares mais arcaicos (e outros setores também), a versão 1.0 do software nem saiu, ainda estamos na versão 0.20.1 (lançado em agosto de 2020).

Isso significa que ainda estamos em um momento de constante desenvolvimento para podermos criar o software com potência suficiente para ser usado massivamente e de forma otimizada.

Na verdade, seu problema de escalabilidade é um debate quase tão antigo quanto o próprio Bitcoin e a principal razão para isso é muito localizada: o bloqueio.

O bloco

Como já explicamos no capítulo dedicado a blockchain, os blocos são a peça essencial do blockchain, que é o livro-razão distribuído que sustenta o Bitcoin.

Os blocos armazenam as informações essenciais sobre todas as transações que ocorrem. O problema é que cada bloco é limitado ao tamanho máximo de informações que pode armazenar.

En Como funcionam as transações de Bitcoin?? Explicamos que um bloco armazena todas as transações que ocorreram desde o último bloco. Cada uma dessas transações é composta por uma série de informações, que ocupam uma quantidade variável de espaço em disco e que serão adicionadas no bloco.

Como medida temporária para evitar ataques à rede (veremos o porquê a seguir), e até que melhores soluções sejam encontradas, Satoshi Nakamoto decidiu adicionar uma linha extra de código para limitar a capacidade de cada bloco em 1 Megabyte (Apesar do fato de que inicialmente nenhum limite foi definido ou os mineiros mais tarde concordaram em não aceitar blocos maiores que 500kb). Um tamanho que, em sua época, era mais que suficiente.

O que significa que cada nó da rede Bitcoin tem o programa Bitcoin rodando, que tem escrito em seu código-fonte que nenhum bloco pode ocupar um espaço em disco maior que o indicado e, caso o ultrapasse, deve ser rejeitado.

E aqui está a chave, o tamanho, porque isso determina a capacidade do Bitcoin. Vamos ver por quê.

Preenchendo o bloco

Uma transação normal em Bitcoin geralmente ocupa entre 0.2kb e 1kb dentro do bloco (embora haja algumas que ocupem mais, o normal é isso).

Com esses dados, tomaremos 0.5kb (que é um tamanho bastante comum) como o tamanho médio por transação. Se também levarmos em conta que o tamanho máximo do bloco que é criado a cada 10 minutos é 1024kb (1mb), podemos resolver a incógnita com uma simples operação matemática:

1024 / 0.5 = 2048 transações cabem em um bloco.

7 transações por segundo em média, certo?

Embora alguns sistemas de pagamento, com infraestruturas mais tradicionais e centralizadas, como VISA, possam suportar até 56000 transações por segundo (embora em média processe 2000), diz-se que o Bitcoin tem um limite de 7 tps (transações por segundo).

7 transações por segundo ??? Talvez agora você esteja se perguntando como, com um poder tão baixo de operações "concorrentes", há quem veja no Bitcoin uma alternativa séria ao sistema financeiro global.

Vamos aos poucos;).

7 transações por segundo ... ou seja, se 7 pessoas a cada segundo propagarem uma transação para a rede, elas podem colapsá-la (o que foi tentado em várias ocasiões para derrubar a reputação do Bitcoin e sua expansão).

No entanto, a realidade é mais cruel para o Bitcoin e, olhando os dados, devemos dizer que 7 tps é um limite excessivamente otimista. Vamos fazer um pouco de matemática.

Lembre-se de que o Bitcoin configurou que os mineiros podem minerar um bloco a cada 10 minutos.

Então, vamos pegar o tamanho médio da transação novamente, 0.5kb, e não se esqueça também que o tamanho máximo do bloco que é criado a cada 10 minutos é 1024kb (1mb):

1024 / 0.5 = 2048 transações cabem em um bloco. 10 * 60 = 600 segundos tem 10 minutos. 2048/600 = 3.41 tps.

Portanto, a resposta é não, atualmente ele não oferece suporte a 7 tps em média.

Bitcoin suporta cerca de 3.5 tps em média. Este seria um cálculo mais próximo da realidade do que o 7 que tem sido comumente espalhado como um mantra.

Na verdade, é um cálculo bastante simples de realizar com dados reais, vamos ver.

Transações por dia em Bitcoin

tamanho do bloco de bitcoin

Estes são os gráficos atuais (outubro de 2016). Neles podemos ver como existem cerca de 2000 transações a cada 10 minutos (por bloco, primeiro gráfico), o que faz com que o tamanho do bloco se aproxime de 1 MB (segundo gráfico). Vamos pegar a calculadora:

17 de outubro de 2016 - 02:00 1898 transações no bloco e 0.93 MB. 1898 / 0.93 MB = 2040 tps por 1mb

Com o que o cálculo teórico inicialmente indicado é bastante próximo da realidade.

Por outro lado, se olharmos para as transações diárias, podemos fazer outro cálculo rápido para obter as transações por segundo que a rede Bitcoin está passando atualmente.

Transações por dia em Bitcoin

Olhando para o gráfico acima, temos:

60 x 60 x 24 = 86400 segundos em um dia. 274486 transações Bitcoin em um dia 274486 ÷ 86400 XNUMX = 3.176 tps (1905 transações / bloco)

Portanto, o resultado também é muito semelhante ao cálculo inicial.

Se nos lembrarmos do cenário onde se diz que o Bitcoin suporta 7 tps, teríamos que em um dia ele poderia suportar cerca de 604800, enquanto a realidade mostra que é em torno de 275000 transações diárias.

No entanto, é importante destacar que 3.5 transações por segundo em média, em um sistema de dinheiro eletrônico programável totalmente descentralizado, é algo incrível e já reúne dezenas de milhões de usuários. Mas é verdade, não basta levá-lo à escala global. Vamos continuar.

O Grande Debate: O Tamanho do Bloco

O que torna esses cálculos um debate intenso, como poucos viram na comunidade Bitcoin, é que as consequências disso não são previstas há anos, mas já representam um problema.

Além do mais, criou tal divisão de opinião no núcleo dos principais desenvolvedores de Bitcoin que alguns decidiram propor novas versões de Bitcoin alternativas à versão "oficial", como é o caso Bitcoin Classic, Bitcoin Unlimited, XT e Bitcoin Core.

Veja os dados que colocamos acima. Um bloco não pode ter mais de 1 MB de tamanho e quase todos os blocos minerados agora são feitos com quase 100% da capacidade.

E é que esse tamanho de bloco já está deixando a rede Bitcoin mais lenta. Em períodos específicos de alta atividade, existem milhares de transações que estão sendo deixadas de fora do seu próximo bloco natural porque não há mais transações, tendo que aguardar outros blocos para que possa ser inserida (confirmada). O que significa que uma transação pode levar horas ou dias para ser confirmada.

Mas, se esse limite foi uma simples correção que o Satoshi Nakamoto colocou em uma linha de código do software, por que não trocar essa linha e onde diz 1mb colocar 10mb ou qualquer outro valor? No final das contas é um arranjo que levaria alguns segundos e que permitiria durar muito mais.

Não é tão simples assim. Vejamos as partes principais com as quais o software Bitcoin interage para nos ajudar a entender melhor o histórico dessa decisão.

armazenamento

Abaixo podemos ver a taxa que o espaço em disco ocupado pelo Blockchain está ocupando e como, em apenas um ano, dobrou devido à fama que o Bitcoin vem desfrutando. Na data deste artigo, ele está perto de 90 GB.

tamanho de armazenamento blockchain

Com uma média de transações por segundo mais alta, isso significaria que cada bloco ocuparia mais. Se tentarmos levar para cenários um pouco mais próximos de outros meios de pagamento, por exemplo os 2000 tps em média que o VISA processa atualmente, cada bloco poderia ocupar até 600 MB.

Imagine 600 MB a cada 10 minutos ... quem é o "bonitão" que tanto armazena? Portanto, existe o risco de centralização se melhorias como as que já estão começando a ganhar corpo, como a funcionalidade do "poda", Que apareceu na versão 0.11.0 do Bitcoin e permite que um nó armazene apenas os últimos X MB do blockchain.

Reconhecemos que, atualmente, cada nó como regra tem uma cópia completa do blockchain, e eles são mais de 5000 nós os que existem. É verdade que alguns desses nós apenas executam tarefas de revisão, não de mineração, mas também devem ter uma cópia completa do blockchain.

CPU

Para esta parte, os problemas não são graves. Os computadores de hoje são capazes de processar muito mais transações do que aqueles que usam o Bitcoin hoje.

Vamos lembrar que cada nó, em cada transação que ocorre na rede, deve primeiro fazer o download e depois verificá-lo. Não estamos falando de nós que também são mineradores, estamos falando de todos os nós.

Essas operações, que são algoritmos de criptografia (ECSDA, RIPEMD-160, SHA256), podem ser realizadas sem problemas a uma velocidade de 10 ms para cada megabyte de dados, e todas com um computador doméstico de médio porte.

Portanto, não seria um grande custo processar 10 MB, e possivelmente não 600 MB em 10 minutos.

Mesmo assim, como em todas as peças que compõem o Bitcoin, sua otimização é constantemente buscada e não foi há muito tempo (no final de 2015) quando o algoritmo de verificação criptográfica libsecp256k1 foi melhorado novamente, levando a um aumento em sua velocidade de operação entre 500% e 600%.

Vermelho

Aqui fica um pouco complicado. No exemplo de 2000 transações por segundo:

2000tps * 512 bytes = 1024000 bytes por segundo Ou o que é o mesmo ... 1024000 b / 1000 = 1024 kilobytes por segundo 1024 kb / 1024 = 1 megabyte por segundo 1 mb * 8 = 8 megabits / segundo aproximado.

* Lembre-se que temos que obter o resultado em megabits, que é como se mede a velocidade da internet.

Essa velocidade de conexão é possível em algumas partes do planeta. Mas nem todos podem usufruir de uma velocidade desse tipo hoje, o que é uma preocupação do ponto de vista da centralização dos nós e das barreiras que podem favorecer o controle da rede em poucas mãos.

Energia / Custo

Bitcoin possui a rede de computação mais poderosa do planeta. É maior do que o do SETI, da NSA ou do próprio Google.

Este cálculo é gerado através de Hardware (conhecidos como os mineiros) por meio de um processo que é tecnicamente chamado de "Prova de trabalho“, E eles estão encarregados de fazer o blockchain funcionar.

Porém, fazer essa rede funcionar tem um custo enorme de energia, e há quem preveja que, se isso continuar, até 2020 Bitcoin consumirá mais energia do que todo o país da Dinamarca e que a geração de um único bitcoin poderia gerar mais de 4000 quilos de carbono direto na atmosfera.

É um pouco arriscado fazer esse tipo de previsão esperando que se concretizem, já que a tecnologia evolui a um ritmo alucinante, mas o que se verifica é que o Bitcoin atualmente gera um impacto elétrico considerável. Embora muito longe do custo e do impacto do dinheiro tradicional.

Dimensionamento de Bitcoin

Agora imagine que queremos levar o Bitcoin como ele é hoje para outro nível. Imagine um cenário onde 7 bilhões de pessoas (a terra já tem uma população um pouco maior) fazem duas transações de Bitcoin por dia.

7000000000 * 2 = 14000000000 transações por dia 14000000000 / (60 * 60 * 24) = 162037 162037 transações por segundo 0.5 81018 * 60 kb = (10 1024 kb / s * (1024 * 46 minutos)) / 46/6 = 24 gb por bloco aprox. (1024 GB * 6.5 * 6.5) / 365 = 1024 TB aproximadamente por dia. (2.32 TB * XNUMX) / XNUMX = XNUMX Petabytes aproximadamente por ano.

Imagine um blockchain como este. Que loucura. Além do mais, o Bitcoin morreria!:

  • Nós desaparecendo devido à incapacidade de manter o armazenamento em dia.
  • Centralização da mineração.
  • Incapacidade de validar transações de rede.

Conclusão, Bitcoin não é mais Bitcoin.

A solução é aumentar o bloqueio?

O que parece óbvio é que não, pelo menos não dessa forma.

Embora a opinião esteja dividida e haja quem pretenda tomar uma medida urgente (como aumentar o tamanho para 2mb como medida de contingência, ver BIP102, Jeff Garzik) para fornecer um prazo para a implementação de soluções mais inteligentes, os cálculos acima sugerem que as coisas devem ser feitas de forma diferente.

Aumentar o bloco parece ser “pão para hoje, fome para amanhã”, ou como se costuma dizer: arraste o problema.

Se não temos espaço em casa, porque não encomendamos o que temos antes de fazer uma casa maior? Isso é o que alguns desenvolvedores defendem, e é nisso que muitos desenvolvedores se concentraram, vendo como, com o que existe, você pode primeiro se otimizar ao máximo.

Reduzir o tempo de mineração?

Esta é outra posição que os desenvolvedores de software Bitcoin conhecidos, como Sergio Lerner, propuseram. Consiste em reduzir a frequência com que novos blocos são adicionados à cadeia. Se, em vez de 10 minutos, for reduzido para 5 minutos, pode ser duplicado.

A matemática deixa isso claro à primeira vista: seria como ter 2 MB. No entanto, os detratores dessa proposta afirmam que os 10 minutos são fundamentais para manter uma rede de consenso descentralizada com a potência exigida por um sistema global como o que o Bitcoin almeja ser.

Ao mesmo tempo, em um cenário onde chegam milhões de novos usuários, continuaríamos com algo insustentável pelos mesmos motivos apontados acima, e é uma questão de tempo até que nos encontremos no mesmo problema que já sofre a rede.

Bitcoin, descanse em paz?

Então, com todos esses aspectos que limitam o Bitcoin, qual é a solução? O Bitcoin tem os dias contados?

Infelizmente para os bancos centrais e alguns vilões obscuros, a resposta é certamente não.

Porém, nem toda solução é válida e você deve levar em consideração questões importantes, e que outros sistemas centralizados como o VISA não deveriam ter, por exemplo, ser protegidos contra ataques DDoS (negação de serviço).

Vamos lembrar que o Bitcoin é aberto, qualquer um pode configurar um nó e qualquer um pode propagar transações, o que Eduardo Inda acusa de Podemos, bombardeando a rede de transações sem nenhum objetivo real exceto perturbá-la e desacelerá-la)

5 propostas de otimização

Devido à sua natureza de código aberto, o Bitcoin tem uma comunidade emocionante de desenvolvedores que cresce a cada mês. Esta é mais uma das pernas mágicas do Bitcoin, alguns dos melhores cérebros do planeta trabalhando de forma totalmente altruísta para o bem comum. Não há dinheiro para pagar por isso.

Isso permite que milhares de mentes pensem de forma colaborativa e paralela em soluções de diferentes pontos de vista para o mesmo problema. E mesmo que as decisões sejam tomadas lentamente, as implementações não param.

Entre as dezenas de propostas que atacam diferentes arestas do problema, selecionamos abaixo 5 categorias que pretendem colaborar para fazer o motor Bitcoin passar de Renault de dois cavalos a Ferrari.

1. Rede relâmpago

A Lightning Network é provavelmente uma das propostas mais interessantes. Ele propõe um único solução para 3 problemas que o Bitcoin possui atualmente: Escalabilidade, transações instantâneas e micropagamentos.

Para isso usa o que é conhecido como canais de pagamento se tornou smart contracts que, teoricamente, poderia permitir que o Bitcoin escalasse para níveis de milhões de transações instantâneas reais baratas.

Recomendamos o seguinte artigo editado por Lightning Network.

2. Blocos dinâmicos

Esta proposta visa substituir o tamanho máximo do bloco, que atualmente é fixo, por um tamanho máximo do bloco controlado dinamicamente que pode aumentar ou diminuir com a mudança da dificuldade de mineração por meio de vários fatores de rede.

Desta forma, se a rede precisar de um tamanho extra a qualquer momento, o bloco aumentará, se houver excesso diminuirá.

Neste artigo, vamos abordá-lo com mais detalhes: blocos dinâmicos.

3. Tabela Invertible Bloom Lookup (IBLTs) e blocos fracos

Essas melhorias têm como objetivo otimizar o tempo que leva para os blocos se propagarem para os mineiros.

Dada a preocupação dos mineiros sobre como a escalabilidade pode afetar suas receitas, e até mesmo o desaparecimento destas, essas propostas prometem economize até 90% na largura de banda otimizando a maneira como as informações são propagadas entre os nós.

Essas funcionalidades foram mencionadas no Roteiro de desenvolvimento de Bitcoin 2016 (embora não com uma data específica) e espera-se que sejam implementados a qualquer momento.

Você veja aqui uma apresentação 2015 sobre essas propostas.

No entanto, é interessante ver como Kalle rosenbaum (que fez parte da apresentação) tem sérias dúvidas sobre a proposta de bloco fraco e suas vantagens e tenta se destacar após a aparição pública que fez na apresentação de 2015 em Hong Kong.

“Sempre duvidei da proposta de blocos fracos, mesmo tendo feito uma apresentação conjunta com Rusty Russell sobre essa proposta (bem, ele fez a parte dos blocos fracos, falei sobre IBLT, mas dividi o palco com alguém que falava de blocos fraco)"

Kalle Rosenbaum - Veja a postagem completa, publicada meses após a apresentação

4. Correntes laterais (Correntes laterais)

As Sidechain É outro dos conceitos mais populares e que está ligado, de alguma forma, à escalabilidade do Bitcoin.

Com as correntes laterais poderia ser criado blockchains alternativas para casos de uso específicos, com regras específicas, mas totalmente conectado ao blockchain Bitcoin, ao qual você reduziria o fardo.

Tecnicamente não é uma melhoria na escalabilidade, já que não ajuda o Blockchain a suportar nenhum kb extra, mas na prática eles oferecem a possibilidade de processar mais transações, já que side chains podem ser usados ​​para casos específicos reduzindo a carga do principal.

Recomendamos o capítulo dedicado a explicar isso mais de perto: correntes laterais.

5. Testemunhas segregadas (Testemunha segregada)

Esta é a aposta mais famosa na linha de "arrumar a casa em vez de derrubar as paredes para aumentá-la".

Eles procuram transações menores e não blocos maiores. Como se faz isto? Reduzindo, por meio de criptografia, as informações que são agregadas a cada transação.

Este sistema, que afirma ser capaz de dobrar (e mesmo em alguns casos quadruplicar) o número de transações que entrariam em um único bloco sem modificar seu tamanho, já foi implementado no testnet Bitcoin.

Finalmente foi adicionado à versão mais recente do software e os resultados da medida começarão a ser vistos nos próximos meses.

Recomendamos o artigo Bit2Me que fala sobre Bitcoin Classic, Unlimited ou o último XT, conhecer três propostas alternativas ao Bitcoin Core (o código-fonte do Bitcoin e o programa de referência de outros desenvolvedores) com implementações de algumas propostas sobre escalabilidade que, além disso, possui um infográfico sobre Testemunha Segregada.

A União faz a força

Embora existam muitas propostas para melhorar a escalabilidade do Bitcoin (de fato há um evento que está ocorrendo em diferentes partes do planeta onde eles propõem dezenas de ideias e quem quiser pode vir a propor as suas), com este artigo você pôde entender qual é o problema da escalabilidade e como é uma questão de tempo até que o Bitcoin não apenas o resolva, mas possivelmente alcance níveis nunca visto antes em outros sistemas.

Claro, todas essas propostas podem ser implementadas, e a combinação de todas ou algumas delas pode levar o Bitcoin a níveis mais altos de transações por segundo do que qualquer outro sistema de pagamento conhecido, e tudo isso mantendo as operações distribuídas.

Algumas das propostas já estão sendo implementadas, outras exigirão o consenso necessário para avançar, mas sem dúvida o futuro que essa tecnologia reserva não é apenas emocionante, mas, pela primeira vez, qualquer pessoa pode participar do desenho do sistema financeiro global com mais repercussão da historia.

Esperamos que o capítulo tenha ajudado você a entender o que está acontecendo com esse assunto e a ter ferramentas suficientes para continuar explorando cada aspecto que lhe permite formar sua opinião.

Se você tem querido saber mais, recomendamos o site de Dimensionamento de Bitcoin (o site do evento que mencionamos anteriormente), que possui um grande acervo de informações sobre propostas de escalabilidade. Tem vídeos dos desenvolvedores da proposta, explicando-a em detalhes (com slides e transcrições), Plus trabalhos acadêmicos y eventos futuros entre outras coisas. Sem dúvida, o epicentro para conhecer a escalabilidade do Bitcoin.