O mito de imutabilidade do blockchain (parte 1): o que é “imutabilidade”?
Se você perguntar a alguém bem-informado sobre quais são as características de blockchains, a palavra “imutável” com certeza aparecerá na resposta. Essa palavra é usada para definir algo que nunca pode ser modificado ou alterado.
Em um blockchain, se refere ao registro global de transações, criado pelo consenso entre os participantes de um blockchain. A noção básica é a seguinte: quando uma transação em blockchain recebeu um nível suficiente de validação, a criptografia certifica que nunca pode ser substituído ou revertido.
Isso faz com que o blockchain seja diferente de arquivos normais ou bases de dados, em que as informações podem ser editadas e deletadas à vontade. É o que diz a teoria.
Na ruidosa arena do debate sobre blockchain, imutabilidade se tornou uma doutrina quase religiosa, uma crença principal que não deve ser abalada ou questionada.
Assim como doutrinas em muitas religiões comuns, membros de grupos opostos podem usar a imutabilidade como uma arma de escárnio e ridicularização. Aqui vão dois exemplos:
– defensores de criptoativos afirmam que a imutabilidade só pode ser atingida por meio de mecanismos econômicos descentralizados como proof-of-work (PoW). Dessa perspectiva, blockchains privados são cômicos porque dependem de um bom comportamento coletivo de um grupo conhecido de validadores, em quem claramente não se pode confiar.
– escárnio sobre a ideia de um blockchain editável (ou mutável), em que modificações retroativas podem ser feitas no histórico de transação sob certas condições. Zombadores perguntam: para que existir um blockchain se seu conteúdo pode ser facilmente alterado?
Para os que estão fora da briga, é engraçado assistir à difamação. Ambas essas críticas estão bem erradas e são fruto de um equívoco fundamental da natureza da imutabilidade em blockchains (e de qualquer sistema computacional).
Em blockchains, não existe uma imutabilidade perfeita. A verdadeira questão é: quais são as condições em que um blockchain específico pode e não pode ser alterado? Quais condições combinam com o problema que estamos tentando resolver?
Em outras palavras, transações de um blockchain não são escritas pela mente do Senhor. Em vez disso, o comportamento do blockchain depende de uma rede de sistemas computacionais corpóreos, que sempre estarão vulneráveis à destruição ou corrupção.
Porém, antes de darmos mais detalhes sobre isso, vamos recapitular alguns aspectos básicos do blockchain em si.
Fabrício Alexandre: não entende o que é bitcoin e blockchain?
Conheça a analogia das caixas de vidro
Recapitulando: como funciona um blockchain
Um blockchain executa um conjunto de nós, em que cada um pode estar sob controle de uma empresa ou organização distinta. Esses nós estão interligados em uma grande rede ponto a ponto, então nenhum nó individual age como um ponto central de controle ou falha.
Cada nó pode gerar e assinar digitalmente transações, que representam operações em uma forma de registro ou base de dados, e essas transações rapidamente se propagam para outros nós pela rede de uma forma “fofoqueira”.
Cada nó verifica independentemente cada nova e futura transação para validação, em termos de (a) seu cumprimento com as regras do blockchain, (b) sua assinatura digital e (c) quaisquer conflitos com transações anteriormente vistas.
Se uma transação passar por esses testes, entra para a lista local daquele nó de transações provisórias e não confirmadas (chamada de “memory pool”) e será repassada para seus colegas.
Transações que falham são rejeitadas imediatamente enquanto outras, cuja avaliação depende de transações não vistas, são colocadas em uma área temporária de espera (chamada de “orphan pool”).
Em intervalos periódicos, um novo bloco é gerado por um dos nós “validadores” da rede, contendo um conjunto de transações ainda não confirmadas. Cada bloco possui um identificador único de 32 bytes chamado “hash”, determinado completamente pelos conteúdos do bloco.
Cada bloco também inclui um registro data/hora e um link para o bloco anterior por meio de seu hash, criando literalmente uma “cadeia de blocos” que volta para o início.
Assim como transações, blocos propagam pela rede de forma ponto a ponto e são independentemente verificados por cada nó. Para ser aceito por um nó, um bloco deve conter um conjunto de transações válidas que não entram em conflito entre si ou com aquelas ligadas a blocos anteriores.
Se um bloco passar nesse e em outros testes, é acrescentado à cópia local do nó do blockchain e as transações nele são “confirmadas”. Quaisquer transações no memory pool ou no orphan pool de um nó que entram em conflito com aquelas do novo bloco são imediatamente descartadas.
Cada blockchain aplica um tipo de estratégia para certificar que blocos são gerados por uma pluralidade de seus participantes. Isso certifica que nenhuma pessoa ou grupo pequeno de nós possa obter controle dos conteúdos do blockchain.
Grande parte dos blockchains públicos como o Bitcoin usam proof-of-work, que permite que blocos sejam criados por qualquer um na internet que consiga solucionar um quebra-cabeças computacional bem difícil.
Bê-a-bá Cripto: existe um algoritmo
de consenso perfeito para blockchains?
Em contraste, em blockchains privados, blocos tendem a ser assinados por um ou mais validadores permitidos, usando um esquema adequado para evitar o controle da minoria.
Dependendo do mecanismo de consenso utilizado, dois nós validadores diferentes podem simultaneamente gerar blocos conflituosos, em que ambos apontam para o mesmo bloco anterior.
Quando uma bifurcação (“fork”) acontece, diferentes nós na rede verão blocos diferentes primeiro, fazendo com que tenham diferentes opiniões sobre o histórico recente do blockchain.
Essas bifurcações são automaticamente resolvidas pelo software de blockchain, em que o consenso é retomado quando um novo bloco chegar em uma das ramificações. Nós que não tinham ramificações automaticamente voltam para o último bloco e executam os dois blocos no mais longo.
Se tivermos o azar de ambas as ramificações serem estendidas simultaneamente, o conflito será solucionado após o terceiro bloco em uma ramificação ou na seguinte e assim por diante. Na prática, a probabilidade de uma bifurcação persistir cai exponencialmente conforme seu comprimento aumenta.
Em blockchains privados com um conjunto limitado de validadores, a probabilidade pode ser reduzida para zero após um pequeno número de blocos.
No entanto, é importante lembrar que cada nó está sendo executado em um sistema computacional pertencente e controlado por uma pessoa ou empresa específica, então o blockchain não pode forçá-la a nada.
O propósito do blockchain é ajudar nós honestos a se manterem sincronizados, mas se grande parte de seus participantes decidir mudar as regras, não há quem os impeça.
É por isso que precisamos parar de perguntar se um blockchain particular é realmente e completamente imutável porque a resposta sempre será não.
Em vez disso, deveremos considerar as condições sob as quais um blockchain específico pode ser modificado e verificar se estamos confortáveis com essas condições para o caso de uso que temos em mente.
Claudia Mancini: blockchain público, privado
e híbrido – cada um no seu quadrado
Mutabilidade em blockchains públicos
Vamos voltar aos dois exemplos citados nessa introdução, em que a doutrina da imutabilidade foi usada como base para uma zombaria.
Começaremos com a hipótese de que os procedimentos de validação de consenso usados em blockchains permissionados não podem apresentar a “verdadeira imutabilidade” prometida por blockchains públicos.
A crítica é sempre apresentada ao apontar para a vulnerabilidade dos próprios blockchains públicos. Usando o blockchain Ethereum, que sofreu uma invasão devastadora em junho de 2016.
Alguém descobriu uma brecha em um contrato autônomo chamado The DAO, em que quase US$ 250 milhões foram investidos, e começou a roubar seus fundos rapidamente.
Embora isso claramente violou as intenções dos criadores e investidores do contrato, seus termos e condições dependiam do mantra de que “o código é a lei”. Lei ou não, menos de um mês depois, o software Ethereum foi atualizado para impedir que o hacker sacasse os criptoativos “ganhos”.
Bê-a-bá Cripto: The DAO, Ethereum e Ethereum Classic
É claro, essa atualização não pôde ser forçada, já que cada usuário da Ethereum controla seu próprio computador. No entanto, foi publicamente apoiada por Vitalik Buterin, fundador da Ethereum, bem como por diversos outros líderes da comunidade.
Como resultado, grande parte dos usuários aceitaram e o blockchain com as novas regras manteve o nome “Ethereum”. Uma minoria discordou com a mudança e continuou o blockchain de acordo com suas regras originais, ganhando o nome de “Ethereum Classic” (ETC).
Uma escolha mais precisa de nomes poderia ser “Ethereum comprometida” e “Ethereum, a pura”. De qualquer forma, democracia é democracia e a (pragmática e popular) “Ethereum” agora vale dez vezes mais do que a (idealista, mas afastada) “Ethereum Classic”.
Agora, vamos considerar uma forma menos benevolente em que a imutabilidade de um blockchain público possa ser prejudicada.
Lembre-se que a criação de blocos ou mineração no Bitcoin e na Ethereum usa um esquema proof-of-work, em que um problema matemático deve ser solucionado para gerar um bloco e obter sua recompensa.
Privacidade 3.0: o modelo de privacidade do Bitcoin
O valor dessa recompensa inevitavelmente torna a mineração em uma corrida armamentista, em que mineradores competem para solucionar os problemas mais rapidamente.
Para compensar, a rede periodicamente ajusta a dificuldade para manter uma taxa constante de criação de blocos, uma vez a cada dez minutos no Bitcoin e 15 segundos na Ethereum.
Nos últimos anos, a dificuldade do Bitcoin aumentou drasticamente. Hoje, grande parte da mineração de bitcoin acontece em hardwares especiais e caros, em locações onde o clima é frio e a eletricidade é barata.
Por exemplo, por US$ 2,4 mil, você pode comprar um Antminer S19, que minera blocos bem mais rápido do que um computador comum e consome bem mais eletricidade.
Tudo isso é um caminho bem distante dos ideais democráticos em que o Bitcoin foi criado, mesmo se tornar o blockchain extremamente seguro.
Bom, um pouco seguro. Se alguém quiser prejudicar a imutabilidade do blockchain Bitcoin,existe uma forma de fazê-lo.
Primeiro, instalariam mais capacidade de mineração do que o restante da rede junta, criando um “ataque de 51%”.
Segundo, em vez de participar abertamente do processo de mineração, minerariam sua própria “ramificação secreta”, contendo qualquer transação aprovada e censurando o restante.
Por fim, quando a quantidade necessária de tempo passar, eles anonimamente transmitiriam sua ramificação secreta à rede.
Confira cinco fatos interessantes
sobre mineração de cripto
Já que o invasor possui mais poder de mineração do que o resto da rede junta, sua ramificação teria mais proof-of-work do que a ramificação pública. Assim, cada nó do Bitcoin seria interrompido, já que as regras do Bitcoin estabelecem que a ramificação mais difícil ganha.
Quaisquer transações anteriormente confirmadas que não estão na ramificação secreta serão revertidas e os bitcoins gastos seriam enviados para outro lugar.
Até agora, grande parte dos defentores do bitcoin estará rindo, porque “instalar mais mineração de capacidade do que o restante da rede junta” parece ser algo bem mais trivial do que parece.
Seu ponto é válido porque é claro que não é fácil, senão muitas pessoas já o teriam feito. É preciso muito equipamento de mineração e muita eletricidade para alimentá-lo e ambos custam muito dinheiro.
Mas aqui vai um fato inconveniente que grandes bitcoiners não consideram: para o governo de qualquer país médio, o dinheiro exigido ainda é uma pequena mudança.
Vamos estimar o custo de um ataque de 51% que reverte um ano de transações em bitcoin. No preço atual do bitcoin de US$ 11 mil e a recompensa de 6,25 BTC por bloco a cada dez minutos, mineradores ganham cerca de US$ 3,6 bilhões por ano.
Considerando que eles não estão perdendo dinheiro ou, pelo menos, não muito, isso significa que o total de despesas de mineração também deve estar na mesma faixa.
Agora, vamos pensar sobre a notícia de que bitcoin está sendo usado por cidadãos chineses para contornar os controles de capital do país. Vamos considerar também que a receita fiscal do governo chinês foi de aproximadamente US$ 1,5 bilhão apenas em junho.
O governo de um país não democrático iria gastar 0,04% de seu orçamento para interromper um método popular para ilegalmente mandar o dinheiro para fora do país?
Eu não diria que a resposta é necessariamente “sim”, mas se você acha que a resposta é definitivamente “não”, você está sendo um pouco ingênuo.
Principalmente se você considerar que a China empregou milhões de pessoas para policiar conteúdos na internet, o que totaliza US$ 10 bilhões por ano se considerarmos um salário mínimo de US$ 5 mil. Isso põe em perspectiva o custo de US$ 3 bilhões de reverter um ano de transações de bitcoin.
Até mesmo essa análise subestima o problema, já que o governo chinês poderia prejudicar a rede Bitcoin de uma maneira bem mais fácil e barata. Parece que grande parte da mineração de bitcoin acontece na China por conta da energia hidrelétrica de baixo custo e outros fatores.
Dados alguns pelotões de tanques, o exército da China poderia fisicamente confiscar essas operações de mineração de bitcoin e redirecionadas para censurar ou reverter transações.
Enquanto o amplo mundo bitcoin iria, sem dúvidas, perceber, não há nada que possa fazer para alterar a estrutura de governança (e a natureza) do próprio Bitcoin. Mas e a censura do “dinheiro livre”?
Nada disso pode ser construído como uma crítica ao design do bitcoin ou uma previsão de que uma catástrofe à rede pode acontecer.
O blockchain Bitcoin é uma peça incrível de engenharia, talvez até perfeita para o propósito que seu(s) criador(es) tinha(m) em mente. E se eu tivesse de apostar, eu apostaria que a China e outros governos provavelmente não vão atacar o bitcoin dessa forma porque não é de interesse deles.
Mais provavelmente, irão focar sua ira em suas primas irrastreáveis: dash (DASH), zcash (ZEC) e monero (XMR).
No entanto, a mera possibilidade dessa forma de interferência põe a doutrina de imutabilidade dos criptoativos em seu lugar. O blockchain Bitcoin e sua gangue não são imutáveis em nenhum sentido perfeito ou absoluto.
Em vez disso, são imutáveis contanto que ninguém grande e rico o suficiente decida destruí-los.
Ainda assim, ao depender do custo econômico de prejudicar a rede, a imutabilidade dos criptoativos satisfaz as necessidades específicas de pessoas que não querem confiar em governos, empresas e bancos. Pode não ser perfeito, mas é o melhor que podem fazer.