O Bitcoin ganha usuários sem parar, mas até que ponto ele pode suportar sua infraestrutura? Pode suportar milhões de usuários? O que o Bitcoin tem a dizer sobre sua escalabilidade?

Paradoxalmente, se o Bitcoin atingisse de repente milhões de usuários, isso não o beneficiaria, na verdade, poderia prejudicá-los muito, porque a experiência de todos os usuários seria seriamente afetada.

E isso não é algo desconhecido. Uma das perguntas mais frequentes sobre o Bitcoin é: ele pode funcionar se milhões de pessoas decidirem torná-lo seu principal meio de pagamento?

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

No entanto, este problema já passou, porque tem sido a obsessão de muitos programadores que criaram várias propostas incríveis de escalabilidade. Agora só precisamos decidir, através do consenso dos nós, o que e quando será implementado.

No próximo capítulo, vamos ajudá-lo a entender, ainda mais, o Bitcoin em profundidade e por que ele não é escalonável no momento, enquanto vamos acompanhá-lo para conhecer algumas das mais notáveis propostas de escalabilidade.

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

Primeiro, vamos enfatizar que com a 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 que, devido ao preço que pode alcançar, é inacessível para algumas pessoas. Nem que não poderia haver bitcoins suficientes para todos.

Tudo isso antes, além de ser falso, não é o que estamos nos referindo quando falamos de 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, eles 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 na mineração.
  • Bitcoin não é escalável.

Como vemos, há muito a melhorar (ou como alguns o vêem: oportunidades para criar grandes coisas) mas, entre todas as questões para resolver Bitcoin, a última das quais mencionamos é uma das principais tarefas a serem alcançadas: que o Bitcoin seja escalável. Resolver isso fará com que os outros problemas mencionados melhorem rapidamente.

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

E é que o Bitcoin ainda é um experimento. Um experimento incrível e popular, sim, mas ainda está em um estágio inicial. De fato, apesar de ter revolucionado todo o setor financeiro de seus pilares mais arcaicos (e outros setores também), ainda não lançou a versão 1.0 do software, ainda estamos na versão 0.13.1 (lançada em outubro de 2016).

Isso significa que ainda estamos em um momento de constante desenvolvimento para criar o software com energia suficiente para ser usado de forma massiva e ideal.

De fato, 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 bloco.

O bloco

Como explicamos no capítulo sobre blockchain, os blocos são a parte essencial da cadeia de blocos, que é o livro de contas distribuído que suporta Bitcoin.

Nos blocos, as informações essenciais sobre todas as transações que ocorrem são armazenadas. O problema é que cada bloco limitou o tamanho máximo da informação que pode armazenar.

Em Como funcionam as transações Bitcoin, explicamos que um bloco armazena todas as transações que ocorreram desde o último bloco. Cada uma dessas transações é composta de uma série de informações e ocupa uma quantidade variável de espaço em disco e será adicionada ao bloco.

Como uma medida temporária para evitar ataques na rede (abaixo, veremos por que), e até encontrar soluções melhores, Satoshi Nakamoto decidiu adicionar uma linha extra de código para limitar a capacidade de cada bloco em 1 Megabyte (embora não tenha inicialmente definido No limite ou mais tarde, os mineiros concordaram em não aceitar blocos superiores a 500kb). Um tamanho, que em seu tempo, era mais que suficiente.

O que significa que cada nó da rede Bitcoin tem o programa Bitcoin em execução que escreve em seu código-fonte que nenhum bloco pode ocupar um espaço em disco maior do que o indicado, e se exceder, ele deve ser rejeitado.

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

Preenchendo o bloco

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

Com esses dados, teremos 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 é de 1024kb (1mb), podemos limpar o desconhecido com uma operação matemática simples:

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

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

Enquanto alguns sistemas de pagamento, com infraestruturas mais tradicionais e centralizadas como a VISA, podem suportar até 56.000 transações por segundo (embora em média em 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 baixo poder de operações “simultâneas”, há aqueles que vêem o Bitcoin como uma alternativa séria ao sistema financeiro global.

Vamos, pouco a pouco;).

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

No entanto, a realidade é mais cruel para o Bitcoin, e vendo os dados, devemos dizer que 7 tps é um limite muito otimista. Vamos fazer alguns pequenos cálculos.

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

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

1024 / 0.5 = 2048 transações se encaixam em um bloco.
10 * 60 = 600 segundos tem 10 minutos.
2048/600 = 3,41 tps.

Então a resposta é não, atualmente não suporta 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 comumente foi espalhado como um mantra.

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

Fonte: blockchain.info – transações em bloco

 

Estes são 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 torna o tamanho do bloco próximo a 1MB (segundo gráfico). Vamos remover a calculadora:

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

Com o que o cálculo teórico inicialmente indicado é próximo o suficiente 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.

bitcoin-transacciones-por-dia

Fonte: blockchain.info – Transações por dia

Olhando para o gráfico acima, temos que:

60 x 60 x 24 = 86400 segundos em um dia.
274486 transacções em Bitcoin num dia
274486 ÷ 86400 = 3,176 tps (1905 transações / bloco)

Então, o resultado também é muito parecido com o cálculo inicial.

Se nos lembrarmos do cenário em que 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 são cerca de 275.000 transações diárias.

No entanto, devemos ressaltar 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 é o suficiente para levá-lo em escala global. Vamos continuar.

O grande debate: o tamanho do bloco

O que transforma esses cálculos em um debate intenso, como poucos viram na comunidade Bitcoin, é que as conseqüências disso não são previstas por anos, se não que já é um problema.

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

Veja os dados que colocamos acima. Um bloco não pode ter mais que 1mb de tamanho e quase todos os blocos minerados estão quase 100% cheios.

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

Mas, se esse limite foi uma simples correção feita por Satoshi Nakamoto em uma linha de código de software, por que essa linha não muda e onde 1mb coloca 10mb ou qualquer outro valor? Afinal, é um arranjo que levaria alguns segundos que permitiria muito mais apoio.

Não é tão simples assim. Vamos ver as partes principais com as quais o software Bitcoin interage com o objetivo de nos ajudar a entender melhor o contexto dessa decisão.

Armazenamento

Em seguida, podemos ver o ritmo que está ocupando o espaço em disco ocupado pelo Blockchain e como, em apenas um ano, dobrou devido à fama que o Bitcoin está desfrutando. A partir deste artigo, está próximo de 90 GB.

Com uma média de transações por segundo maior, isso significaria que cada bloco ocuparia mais. Se tentarmos levá-lo a cenários um pouco mais próximos de outros meios de pagamento, por exemplo, a média de 2000 tps que o VISA processa atualmente, cada bloco pode ocupar até 600 MB.

Imagine 600 MB a cada 10 minutos … quem é o “bonito” que armazena tanto? Portanto, há um risco de centralização se não surgirem melhorias, como aquelas que já estão começando a tomar forma, como a funcionalidade “pruning“, que apareceu na versão 0.11.0 do Bitcoin e permite que um nó armazene apenas o último X MB da cadeia de blocos.

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

CPU

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

Lembre-se de que cada nó, em cada transação que ocorre na rede, deve primeiro baixá-lo e depois verificá-lo. Nós não falamos sobre nós que também são mineiros, falamos sobre todos os nós.

Estas operações, que são algoritmos de criptografia (ECSDA, RIPEMD-160, SHA256), podem ser realizadas sem problemas a uma velocidade de 10 ms por megabyte de dados, todos com um computador doméstico de gama média.

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 Bitcoin, sua otimização é constantemente procurada 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 na sua velocidade operacional entre 500 % e 600%.

Rede

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

(2000tps * 512 bytes) / 1000 bytes em um kilobyte / 1024 kilobytes em um megabyte = 1 megabytes por segundo * 8 = 8 megabits / segundo aprox.

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

Esta velocidade de conexão é possível tê-lo em algumas partes do planeta. Mas nem todos podem desfrutar de uma velocidade deste tipo agora, o que preocupa do ponto de vista da centralização dos nós e das barreiras que podem favorecer o controle da rede em poucas mãos.

Energía / Coste

Bitcoin tem a rede de cálculo mais poderosa do planeta. É maior que a do SETI, a NSA ou o próprio Google.

Este cálculo é gerado através do hardware (conhecido como os mineiros) através de um processo que é tecnicamente chamado de “Proof of woork“, e é responsável por fazer o blockchain funcionar.

No entanto, operar essa rede tem um enorme custo de energia, e há quem preveja que, se continuar, até 2020 Bitcoin consumirá mais energia do que todo o país da Dinamarca e que gerar um único bitcoin poderá gerar mais de 4000 quilos de carbono direto para a atmosfera.

É um pouco arriscado fazer esse tipo de previsão esperando que eles se tornem realidade, porque a tecnologia evolui em um ritmo louco, mas o que é verificável é que o Bitcoin atualmente gera um impacto elétrico considerável. Embora muito longe do custo e impacto do dinheiro tradicional.

Escalando Bitcoin

Agora imagine que queremos levar o Bitcoin como está 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), faça duas transações com Bitcoin por dia.

7000000000 * 2 = 14000000000 transacções por dia
14000000000 / (60 * 60 * 24) = 162037 transacções por segundo
162037 * 0,5 kb = (81018 kb / s * (60 * 10 minutos)) / 1024/1024 = 46 gb por bloco aprox.
(46 GB * 6 * 24) / 1024 = aprox. 6,5 TB por dia.(6,5 TB * 365) / 1024 = 2,32 Petabytes aproximadamente por ano.

Imagine uma cadeia de blocos assim. Que loucura.  Bitcoin iria morrer!

  • Desaparecimento de nós devido à incapacidade de acompanhar o armazenamento.
  • Centralização da mineração.
  • Incapacidade de validar transações de rede.

Conclusão, Bitcoin deixa de ser Bitcoin.

 A solução é aumentar o bloco?

O que parece óbvio é que não, pelo menos não desta maneira.

Embora a opinião seja dividida, e há aqueles que pretendem tomar uma medida urgente (como aumentar o tamanho para 2MB como uma medida de contingência, ver BIP102, Jeff Garzik) para fornecer um cronograma para implementar soluções mais inteligentes, os cálculos anteriores Eles nos convidam a pensar que temos que fazer as coisas de maneira diferente.

Aumentar o bloco parece ser “pão para hoje, fome de amanhã”, ou como é comumente dito: arrastrar o problema.

Se nos falta espaço em casa, por que não ordenamos o que temos antes de construir uma casa maior? Isso é o que alguns desenvolvedores defendem, e é nisso que muitos desenvolvedores se concentraram, vendo de que maneira, com o que há, você pode otimizar primeiro ao máximo.

Reduzir o tempo de mineração?

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

A matemática deixa claro à primeira vista: seria como ter 2mb. No entanto, os detratores desta proposta dizem que os 10 minutos são fundamentais para manter uma rede de consenso descentralizada com a energia requerida por um sistema global como aquele que aspira a ser Bitcoin.

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

Bitcoin, descanse em paz?

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

Para a infelicidade dos bancos centrais e alguns vilões nas sombras, certamente a resposta é não.

No entanto, qualquer solução não é válida e deve ter em mente questões importantes e que outros sistemas centralizados, como o VISA, não devem ter, por exemplo, proteção contra ataques DDoS (negação de serviço).

Lembre-se que o Bitcoin é aberto, qualquer um pode montar um nó e qualquer um poderia espalhar transações, como as acusações de Eduardo Inda (jornalista) sobre o Podemos (partido politico espanhol) , bombardeando a rede de transações (mentiras) sem um objetivo real, exceto irritá-lo e atrasá-lo)

5 propostas de otimização

Devido ao seu caracter de código aberto, o Bitcoin tem uma comunidade empolgante de desenvolvedores que cresce a cada mês. Esta é outra das pernas mágicas que Bitcoin tem, alguns dos melhores cérebros do planeta trabalhando de uma maneira totalmente altruísta para o bem comum. Não há dinheiro 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 embora as decisões sejam lentas, as implementações não param.

Entre as dezenas de propostas atacando por diferentes arestas do problema, em seguida, selecionamos 5 categorias que pretendem colaborar para fazer o motor Bitcoin passar de um Renault dois cavalos para um Ferrari.

1. Lightning Network

Provavelmente uma das propostas mais interessantes. Ele propõe uma solução única para 3 problemas que o Bitcoin tem atualmente: Escalabilidade, transações instantâneas e micropagamentos.

Para isso, utiliza os chamados canais de pagamento convertidos em contratos inteligentes que, teoricamente, poderiam permitir que o Bitcoin aumentasse para níveis de milhões de transações instantâneas de verdade e baratas.

Recomendamos o próximo capítulo do Guia Bitcoin dedicado à Lightning Network.

2. Blocos Dinâmicos

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

Dessa forma, se a rede precisar de tamanho extra em um determinado momento, o bloco aumentaria, se excedesse, diminuiria.

Neste capítulo do guia, lidamos com isso mais detalhadamente: blocos dinâmicos.

3. Invertible Bloom Lookup Table (IBLTs) e weak blocks

Essas melhorias visam otimizar o tempo necessário para propagar os blocos para os mineradores.

Dada a preocupação dos mineradores sobre como a escalabilidade pode afetar suas receitas, e até mesmo o desaparecimento dessas, essas propostas prometem economizar até 90% em largura de banda, otimizando a maneira como a informação é propagada entre os nós.

Esses recursos foram mencionados no roteiro de desenvolvimento de 2016 do Bitcoin (embora não com uma data específica) e espera-se que sejam implementados a qualquer momento.

Você pode ver aqui uma apresentação de 2015 sobre essas propostas (em inglês).

No entanto, é interessante ver como Kalle Rosenbaum (que fez parte da apresentação) tem sérias dúvidas sobre a proposta de blocos fracos 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, apesar de ter feito uma apresentação conjunta com Rusty Russell sobre essa proposta (bem, ele fez a parte de blocos fracos, falei sobre o IBLT, mas dividi o palco com alguém falando sobre blocos fraco)

Kalle RosenbaumVeja o post completo, publicado meses após a apresentação

4. Correntes laterais (Sidechains)

O Sidechain é outro dos conceitos mais falados e está ligado, de alguma forma, à escalabilidade do Bitcoin.

Com as sidechains, blockchains alternativos poderiam ser criados para casos de uso específicos, com regras específicas, mas completamente conectados à cadeia de blocos do Bitcoin, o que permitiria reduzir a carga.

Tecnicamente não é uma melhoria na escalabilidade, não ajuda Blockchain pode suportar qualquer kb extra, mas na prática eles oferecem a possibilidade de processar mais transações, uma vez que as cadeias laterais podem ser usadas para casos específicos reduzindo a carga da principal.

Recomendamos o capítulo do guia dedicado a explicar mais de perto isso: sidechains

5. Testemunhas segregadas (Segregated Witness)

Uma das soluções mais populares que se compromete a “ordenar a casa antes de construir uma casa maior”

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

Este sistema, que afirma ser capaz de duplicar (e até em alguns casos quadruplicar) o número de transações que entrariam em um único bloco sem alterar o tamanho dele já foi implementado na rede testnet do Bitcoin.

Foi finalmente adicionado à versão mais recente do software e nos próximos meses começará a ver os resultados da medida.

Recomendamos o capítulo da guia Bitcoin do Bit2Me que fala sobre o Bitcoin Classic, Unlimited ou o falecido XT, para 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 em escalabilidade, que também tem um infográfico sobre a Segregated Witness (Testemunha Segregada).

A União faz a força

Embora existam muitas propostas para melhorar a escalabilidade do Bitcoin (na verdade, há um evento que ocorre em diferentes partes do mundo, onde eles propõem dúzias de idéias e qualquer um que deseje pode apresentar propostas), com este capítulo do Guia Bitcoin do Bit2Me você foi capaz de entender qual é o problema de escalabilidade e como é uma questão de tempo que o Bitcoin não apenas o resolva, mas também atinja níveis nunca antes vistos em outros sistemas.

É claro que todas essas propostas poderiam ser implementadas, e a combinação de todas ou algumas delas pode levar o Bitcoin a níveis de transações por segundo superiores a 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 desta tecnologia não é apenas emocionante, mas, pela primeira vez, qualquer um pode participar do projeto do sistema financeiro global com mais impacto 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 em todos os aspectos que lhe permitem formar sua opinião.

Se você está querendo saber mais, nós recomendamos fortemente o website Scaling Bitcoin (o site do evento mencionado acima), que tem uma enorme coleção de informações sobre a escalabilidade proposta. Tem vídeos dos desenvolvedores da proposta, explicando-a em detalhes (com slides e transcrições), bem como papers acadêmicos e eventos futuros, entre outras coisas. Sem dúvida, o epicentro onde estar ciente da escalabilidade do Bitcoin.

 

Este articulo foi util?
Average Scoring: 0
➜ Share the knowledge and promote the decentralized revolution!