O Mito da Imutabilidade da Blockchain

Nó Fonte: 1738527

Onde o pensamento flexível é preferível ao dogmatismo

“O bem mais elevado, do qual não há superior, é o blockchain e, conseqüentemente, é imutavelmente bom, portanto, verdadeiramente eterno e verdadeiramente imortal.”
- Santo Agostinho, De natura boni, i, 405 dC (com edições menores)

Se você perguntar a alguém bem informado sobre as características dos blockchains, a palavra “imutável” invariavelmente aparecerá na resposta. Em português simples, essa palavra é usada para denotar algo que nunca pode ser modificado ou mudado. Em uma blockchain, refere-se ao log global de transações, que é criado por consenso entre os participantes da cadeia. A noção básica é esta: uma vez que uma transação blockchain recebeu um nível suficiente de validação, alguma criptografia garante que ela nunca possa ser substituída ou revertida. Isso marca blockchains como diferente de arquivos ou bancos de dados regulares, nos quais as informações podem ser editadas e excluídas à vontade. Ou assim vai a teoria.

Na arena ruidosa do debate blockchain, a imutabilidade se tornou uma doutrina quase religiosa - uma crença central que não deve ser abalada ou questionada. E assim como as doutrinas nas religiões tradicionais, membros de campos opostos usam a imutabilidade como uma arma de escárnio e ridículo. O ano passado testemunhou dois exemplos proeminentes:

  • Os defensores da criptomoeda alegam que a imutabilidade só pode ser alcançada por meio de mecanismos econômicos descentralizados, como prova de trabalho. Dessa perspectiva, blockchains privados são ridículos porque dependem do bom comportamento coletivo de um grupo conhecido de validadores, em quem claramente não se pode confiar.
  • O desprezo foi derramado sobre a ideia de um blockchain editável (ou mutável), no qual modificações retroativas podem ser feitas no histórico de transações sob certas condições. Zombadores levantaram a questão: qual seria o objetivo de um blockchain se seu conteúdo pudesse ser facilmente alterado?

Para aqueles de nós que estão nos bastidores, é divertido assistir à confusão. Até porque ambas as críticas estão completamente erradas e derivam de um mal-entendido fundamental sobre a natureza da imutabilidade em blockchains (e de fato em qualquer sistema de computador). Para aqueles com pouco tempo, aqui está o resultado:

Em blockchains, não existe imutabilidade perfeita. A verdadeira questão é: quais são as condições sob as quais um blockchain específico pode e não pode ser alterado? E essas condições correspondem ao problema que estamos tentando resolver?

Colocando de outra forma, as transações de um blockchain não são gravadas na mente de Deus (com desculpas a Agostinho acima). Em vez disso, o comportamento da cadeia depende de uma rede de sistemas de computador corpóreos, que sempre estarão vulneráveis ​​à destruição ou corrupção. Mas antes de entrarmos nos detalhes de como, vamos recapitular alguns princípios básicos dos próprios blockchains.

Blockchains em breve

Um blockchain é executado em um conjunto de nós, cada um dos quais pode estar sob o controle de uma empresa ou organização separada. Esses nós se conectam entre si em uma densa rede ponto a ponto, de forma que nenhum nó individual atue como um ponto central de controle ou falha. Cada nó pode gerar e assinar digitalmente transações que representam operações em algum tipo de livro-razão ou banco de dados, e essas transações se propagam rapidamente para outros nós na rede de forma semelhante a uma fofoca.

Cada nó verifica independentemente a validade de cada nova transação de entrada, em termos de: (a) sua conformidade com as regras do blockchain, (b) sua assinatura digital e (c) quaisquer conflitos com transações vistas anteriormente. Se uma transação passar nesses testes, ela entra na lista local de transações provisórias não confirmadas do nó (o “pool de memória”) e será encaminhada para seus pares. As transações que falham são rejeitadas imediatamente, enquanto outras, cuja avaliação depende de transações invisíveis, são colocadas em uma área de retenção temporária (o “pool órfão”).

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 denominado “hash”, que é determinado inteiramente pelo conteúdo do bloco. Cada bloco também inclui um carimbo de data / hora e um link para um bloco anterior por meio de seu hash, criando uma "cadeia de blocos" literal que remonta ao início.

Assim como as transações, os blocos se propagam pela rede de forma ponto a ponto e são verificados independentemente por cada nó. Para ser aceito por um nó, um bloco deve conter um conjunto de transações válidas que não conflitem entre si ou com aquelas dos blocos anteriores vinculados. Se um bloco passar neste e em outros testes, ele é adicionado à cópia local do nó do blockchain e as transações internas são “confirmadas”. Quaisquer transações no pool de memória ou pool órfão do nó que entrem em conflito com aquelas no novo bloco são imediatamente descartadas.

Cada cadeia emprega algum tipo de estratégia para garantir que os blocos sejam gerados por uma pluralidade de seus participantes. Isso garante que nenhum indivíduo ou pequeno grupo de nós possa assumir o controle do conteúdo do blockchain. A maioria dos blockchains públicos, como o bitcoin, usa “prova de trabalho”, o que permite que os blocos sejam criados por qualquer pessoa na Internet que possa resolver um quebra-cabeça matemático sem sentido e terrivelmente difícil. Em contraste, em blockchains privados, os blocos tendem a ser assinados por um ou mais validadores permitidos, usando um esquema apropriado para evitar o controle minoritário. Nosso produto MultiChain usa uma técnica chamada “diversidade de mineração” que requer uma proporção mínima dos validadores permitidos para participar a fim de criar uma cadeia válida.

Dependendo do mecanismo de consenso utilizado, dois nós validadores diferentes podem gerar blocos conflitantes simultaneamente, ambos apontando para o mesmo anterior. Quando tal “bifurcação” acontece, diferentes nós da rede verão blocos diferentes primeiro, levando-os a ter opiniões diferentes sobre a história recente da cadeia. Essas bifurcações são resolvidas automaticamente pelo software blockchain, com consenso recuperado assim que um novo bloco chega em uma das ramificações. Os nós que estavam no ramo mais curto retrocedem automaticamente seu último bloco e reproduzem os dois blocos no maior. Se tivermos muito azar e os dois ramos forem estendidos simultaneamente, o conflito será resolvido após o terceiro bloco em um ramo, ou o seguinte, e assim por diante. Na prática, a probabilidade de persistência de um garfo cai exponencialmente à medida que seu comprimento aumenta. Em cadeias privadas com um conjunto limitado de validadores, a probabilidade pode ser reduzida a zero após um pequeno número de blocos.

No entanto, é importante lembrar que cada nó está sendo executado em um sistema de computador de propriedade e controlado por uma pessoa ou organização específica, portanto, o blockchain não pode força para fazer qualquer coisa. O objetivo da cadeia é ajudar nós honestos a permanecer em sincronia, mas se um número suficiente de seus participantes decidir mudar as regras, nenhum poder terreno poderá detê-los. É por isso que precisamos parar de perguntar se uma blockchain em particular é verdadeira e absolutamente imutável, porque a resposta sempre será não. Em vez disso, devemos considerar o condições sob o qual um blockchain específico pode ser modificado e, em seguida, verifique se estamos confortáveis ​​com essas condições para o caso de uso que temos em mente.

Mutabilidade em redes públicas

Voltemos aos dois exemplos citados na introdução, nos quais a doutrina da imutabilidade tem sido usada como base para o ridículo. Começaremos com a afirmação de que os procedimentos de validação consensual usados ​​em blockchains permitidos não podem trazer a “verdadeira imutabilidade” prometida pelas redes públicas.

Essa crítica é mais facilmente respondida apontando para a vulnerabilidade dos próprios blockchains públicos. Tome, por exemplo, o blockchain Ethereum, que sofreu um façanha devastadora em junho de 2016. Alguém encontrou uma lacuna de codificação em um contrato inteligente chamado “O DAO”, no qual quase $ 250 milhões foram investidos, e começou a drenar seus fundos rapidamente. Embora isso viole claramente as intenções dos criadores e investidores do contrato, é termos e condições baseava-se no mantra de que “código é lei”. Lei ou não, menos de um mês depois, o software Ethereum foi atualizado para evitar que o hacker retirasse a criptomoeda “ganha”.

Claro, esta atualização não pôde ser aplicada, uma vez que cada usuário Ethereum controla seu próprio computador. No entanto, foi publicamente apoiado por Vitalik Buterin, fundador da Ethereum, bem como por muitos outros líderes comunitários. Como resultado, a maioria dos usuários obedeceu, e o blockchain com as novas regras manteve o nome “Ethereum”. Uma minoria discordou da mudança e continuou o blockchain de acordo com suas regras originais, ganhando o título de “Ethereum Classic”. Uma escolha mais precisa de nomes pode ser “Ethereum comprometido” e “Ethereum o puro”. De qualquer forma, democracia é democracia, e (o pragmático e popular) “Ethereum” vale agora mais de dez vezes (o idealista, mas marginalizado) “Ethereum Classic”.

Agora vamos considerar uma maneira menos benevolente pela qual a imutabilidade do blockchain público pode ser prejudicada. Lembre-se de que a criação de blocos ou “mineração” em bitcoin e Ethereum usa um esquema de prova de trabalho, no qual um problema matemático deve ser resolvido a fim de gerar um bloco e reivindicar sua recompensa. O valor dessa recompensa inevitavelmente transforma a mineração em uma corrida armamentista, com os mineiros competindo para resolver os problemas mais rapidamente. Para compensar, a rede ajusta periodicamente a dificuldade para manter uma taxa constante de criação de bloco, uma vez a cada 10 minutos em bitcoin ou 15 segundos em Ethereum.

Nos últimos anos 5, dificuldade do bitcoin aumentou por um fator de 350,000 ×. Hoje, a grande maioria da mineração de bitcoin ocorre em hardware especializado caro, em locais onde o clima é frio e a eletricidade é barata. Por exemplo, $ 1,089 comprará para você um Antminer S9, que extrai blocos 10,000 vezes mais rápido do que qualquer computador desktop e queima 10 vezes mais eletricidade. Isso está muito longe dos ideais democráticos com os quais o bitcoin foi criado, mesmo que isso torne o blockchain extremamente seguro.

Bem, meio seguro. Se alguém quisesse minar a imutabilidade do blockchain de bitcoin, eis como fariam. Primeiro, eles instalariam mais capacidade de mineração do que o resto da rede junta, criando um chamado “ataque de 51%”. Em segundo lugar, em vez de participar abertamente do processo de mineração, eles minerariam seu próprio “ramo secreto”, contendo as transações que aprovassem e censurando o restante. Finalmente, quando o tempo desejado tivesse passado, eles transmitiam anonimamente sua ramificação secreta para a rede. Como o invasor tem mais poder de mineração do que o resto da rede, sua ramificação conterá mais prova de trabalho do que a pública. Cada nó de bitcoin irá, portanto, mudar, uma vez que as regras do bitcoin afirmam que o ramo mais difícil vence. Quaisquer transações confirmadas anteriormente que não estejam no branch secreto serão revertidas e o bitcoin gasto poderá ser enviado para outro lugar.

A esta altura, a maioria dos crentes em bitcoin vai estar rindo, porque eu escrevi “instalar mais capacidade de mineração do que o resto da rede junto” como se isso fosse trivial de se conseguir. E eles têm razão, porque é claro que não é fácil, caso contrário, muitas pessoas já teriam feito isso. Você precisa de muitos equipamentos de mineração e de muita eletricidade para alimentá-los, os quais custam muito dinheiro. Mas aqui está o fato inconveniente que a maioria dos bitcoiners passa por cima: Para o governo de qualquer país de médio porte, o dinheiro necessário ainda é um pequeno troco.

Vamos estimar o custo de um ataque de 51% que reverte um ano de transações de bitcoin. Com o preço atual do bitcoin de $ 1500 e recompensa de 15 bitcoins (incluindo taxas de transação) por bloco de 10 minutos, os mineiros ganham cerca de $ 1.2 bilhão por ano ($ 1500 × 15 × 6 × 24 × 365). Presumindo (razoavelmente) que eles não estão perdendo dinheiro no geral, ou pelo menos não perdendo muito, isso significa que as despesas totais do minerador também devem estar na mesma faixa. (Estou simplificando aqui, amortizando o custo único de compra de equipamento de mineração, mas US $ 400 milhões comprarão Antminer 9s suficientes para corresponder à capacidade de mineração da rede bitcoin atual, portanto, estamos no parque certo.)

Agora pense sobre o relatórios esse bitcoin está sendo usado por cidadãos chineses para contornar os controles de capital de seu país. E considere ainda que as receitas fiscais do governo chinês são de aproximadamente US $ 3 trilhão por ano. O governo de um país não democrático gastaria 0.04% de seu orçamento para encerrar um método popular de retirada ilegal de dinheiro daquele país? Eu não diria que a resposta é necessariamente sim. Mas se você acha que a resposta é definitivamente não, você está sendo mais do que um pouco ingênuo. Especialmente considerando que a China supostamente emprega 2 milhões de pessoas para policiar o conteúdo da Internet, que totaliza $ 10 bilhões / ano se assumirmos um baixo salário de $ 5,000. Isso coloca em perspectiva o custo de US $ 1.2 bilhão para reverter um ano de transações de bitcoin.

Mesmo essa análise atenua o problema, porque o governo chinês poderia minar a rede de bitcoins com muito mais facilidade e baixo custo. Parece que a maior parte da mineração de bitcoins ocorre na China, devido à energia hidrelétrica de baixo custo e outros fatores. Com alguns tanques e pelotões, o exército chinês poderia apreender fisicamente essas operações de mineração de bitcoin e reaproveitá-las para censurar ou reverter as transações. Enquanto o mundo bitcoin mais amplo sem dúvida notaria, não há nada que ele pudesse fazer sem alterar fundamentalmente a estrutura de governança (e, portanto, a natureza) do próprio bitcoin. O que foi aquilo sobre dinheiro grátis de censura?

Nada disso deve ser interpretado como uma crítica ao design do bitcoin ou uma previsão de que uma catástrofe na rede realmente acontecerá. O blockchain bitcoin é uma notável peça de engenharia, talvez até perfeita para o propósito que seu (s) criador (es) tinham em mente. E se eu tivesse que investir nisso, apostaria que a China e outros governos provavelmente não atacará o bitcoin dessa maneira, porque não é do interesse deles fazer isso. Mais provavelmente, eles vão concentrar sua ira em seus primos mais indetectáveis ​​como Dash, Zcash e Monero.

No entanto, a mera possibilidade dessa forma de interferência coloca a doutrina da imutabilidade da criptomoeda em seu lugar. O blockchain de bitcoin e seus semelhantes não são imutáveis ​​em nenhum sentido perfeito ou absoluto. Em vez disso, eles são imutáveis, desde que ninguém grande e rico o suficiente decida destruí-los. Ainda assim, confiando no econômico custo de subverter a rede, a imutabilidade da criptomoeda satisfaz as necessidades específicas das pessoas que não querem confiar em governos, empresas e bancos. Pode não ser perfeito, mas é o melhor que podem fazer.

Redes privadas regraváveis

Agora vamos passar para blockchains privados, projetados para as necessidades de governos e grandes empresas. Podemos começar observando que, da perspectiva dessas organizações, a imutabilidade com base na prova de trabalho é um comercial, legal e reguladores não inicial, porque permite que qualquer ator (suficientemente rico) ataque anonimamente a rede. Para as instituições, a imutabilidade só pode ser fundamentada no bom comportamento de outras instituições semelhantes, com as quais elas podem assinar um contrato e processar se necessário. Como um bônus, blockchains privados são muito mais baratos de serem executados, já que os blocos precisam apenas de uma assinatura digital simples dos nós que os aprovam. Contanto que a maioria dos nós validadores esteja seguindo as regras, o resultado final é uma imutabilidade mais forte e mais barata do que qualquer criptomoeda pública pode oferecer.

É claro que a imutabilidade ainda é fácil de minar se todos os participantes de uma cadeia decidirem fazê-lo juntos. Vamos imaginar uma blockchain privada usada por seis hospitais para agregar dados sobre infecções. Um programa em um hospital grava um conjunto grande e errôneo de dados na cadeia, o que é uma fonte de inconveniência para os outros participantes. Alguns telefonemas depois, os departamentos de TI de todos os hospitais concordam em “retroceder” os seus nós uma hora, eliminar os dados problemáticos e depois permitir que a cadeia continue como se nada tivesse acontecido. Se todos os hospitais concordarem em fazer isso, quem irá impedi-los? Na verdade, além do pessoal envolvido, quem saberá que isso aconteceu? (Deve-se notar que alguns algoritmos de consenso como PBFT não fornecem um mecanismo oficial para reversões, mas isso não ajuda na governança, uma vez que os nós ainda estão livres para contornar as regras.)

Agora considere um caso em que a maioria dos participantes de uma blockchain privada concorda em retroceder e remover alguma transação, mas alguns negam seu consentimento. Visto que o nó de cada organização está sob seu controle final, ninguém pode forçar a minoria a aderir ao consenso. No entanto, ao seguir seus princípios, esses usuários se verão em uma bifurcação sendo ignorados por todos os outros. Como os virtuosos defensores do Ethereum Classic, seu lugar no céu pode muito bem estar assegurado. Mas, de volta à Terra, eles serão excluídos do processo de consenso para o qual a rede foi implantada e podem desistir completamente. A única aplicação prática de transações fora do consenso é servir como evidência em um tribunal.

Com isso em mente, vamos falar sobre o segundo caso em que a doutrina da imutabilidade do blockchain foi usada para ridicularizar as ideias. Aqui, estamos nos referindo à ideia da Accenture de usando um hash camaleão para permitir que um bloco enterrado profundamente em uma corrente seja facilmente substituído. A principal motivação, como descrito por David Treat, é permitir que uma transação problemática antiga seja removida de forma rápida e eficiente. De acordo com o esquema, se ocorrer uma substituição de bloco, uma “cicatriz” é deixada para trás, que todos os participantes podem ver. (Deve-se observar que quaisquer transações posteriores que dependam da excluída também precisariam ser removidas.)

É difícil exagerar quantas pessoas desprezaram essa ideia quando ela foi anunciada. Twitter e LinkedIn ficaram chocados e agitados. E não estou falando apenas sobre a multidão da criptografia, que tem prazer esportivo em zombar de qualquer coisa relacionada a blockchains corporativos. A ideia foi amplamente criticada por defensores do blockchain privado também.

E ainda, sob as condições certas, a ideia de permitir que blockchains sejam modificados retroativamente por meio de hashes camaleão pode fazer todo o sentido. Para entender por que, começamos com uma pergunta simples: nesse tipo de blockchain, quem realmente teria o poder de substituir os blocos antigos? Obviamente, não pode ser um participante não identificado da rede, porque isso tornaria a cadeia ingovernável.

A resposta é que um hash camaleão só pode ser usado por aqueles que possuem sua chave secreta. A chave é necessária para permitir que uma nova versão de um bloco, com transações diferentes, receba o mesmo hash camaleão de antes. Claro, provavelmente não queremos controle centralizado em um blockchain, então podemos tornar o esquema mais forte tendo vários hashes camaleões por bloco, cada uma das quais sendo a chave mantida por uma parte diferente. Ou podemos usar compartilhamento secreto técnicas para dividir uma única chave de hash camaleão entre várias partes. De qualquer maneira, a cadeia pode ser configurada de forma que uma substituição retroativa do bloco só possa ocorrer se a maioria dos detentores de chaves aprovar. Isso está começando a soar familiar?

Permita-me tornar o paralelo mais explícito. Digamos que compartilhamos o controle sobre os hashes camaleões entre os mesmos nós de validação que são responsáveis ​​pela criação do bloco. Isso significa que um bloco antigo só pode ser substituído se a maioria dos nós de validação concordar em fazê-lo. E ainda, como discutimos antes, qualquer blockchain pode ser modificado retroativamente por uma maioria de nós de validação, por meio do mecanismo de retrocesso e reprodução. Então, em termos de governança, os hashes camaleões sujeitos a uma maioria de validadores não fazem diferença alguma.

Se sim, por que se preocupar com eles? A resposta é: Otimização de performance, porque os hashes camaleões permitem que blocos antigos sejam substituídos em uma cadeia com muito mais eficiência do que antes. Imagine que precisamos remover uma transação do início de um blockchain que está em execução há 5 anos. Talvez isso se deva à União Europeia direito a ser esquecido legislação, que permite que os indivíduos tenham seus dados pessoais removidos dos registros das empresas. Os nós não podem simplesmente apagar a transação ofensiva de seus discos, porque isso mudaria o hash do bloco correspondente e quebraria um link na cadeia. Na próxima vez que o blockchain fosse verificado ou compartilhado, tudo desmoronaria.

Para resolver este problema sem camaleão hashes, os nós teriam que reescrever o bloco inicial sem a transação problemática, calcular o novo hash do bloco e, em seguida, alterar o hash embutido no próximo bloco para corresponder. Mas isso também afetaria o próprio hash do próximo bloco, que deve ser recalculado e atualizado no bloco subsequente, e assim por diante ao longo da cadeia. Embora esse mecanismo seja possível em princípio, pode levar horas ou dias para ser concluído em um blockchain com milhões de blocos e transações. Pior ainda, enquanto envolvido neste processo, um nó pode ser incapaz de processar uma nova atividade de rede de entrada. Portanto, os hashes camaleão fornecem uma maneira computacionalmente mais eficiente de atingir o mesmo objetivo. Se você imaginar uma transação ruim como uma rocha enterrada muitas milhas no subsolo, os hashes camaleões podem teletransportar a rocha para a superfície, em vez de nos fazer cavar até o fundo, recuperar a rocha e preencher o buraco.

A imutabilidade tem nuances

Ao revisar os riscos dos blockchains de prova de trabalho e o valor técnico dos hashes camaleões, espero ter convencido você de que a imutabilidade do blockchain é muito mais sutil do que uma questão de “sim ou não”. Citar Simon Taylor citando Ian Grigg, a pergunta deve ser sempre "quem é você e o que deseja alcançar?"

Para os criptomoedas que desejam evitar o dinheiro emitido pelo governo e o sistema bancário tradicional, faz todo o sentido acreditar em um blockchain de prova de trabalho pública, cuja imutabilidade se baseia na economia, e não em partes confiáveis. Mesmo que tenham de conviver com a possibilidade de um grande governo (ou outro ator rico) derrubar a rede, eles podem se consolar com o fato de que essa seria uma operação dolorosa e cara. E, sem dúvida, eles esperam que as criptomoedas fiquem cada vez mais seguras, à medida que seu valor e capacidade de mineração continuam a crescer.

Por outro lado, para empresas e outras instituições que desejam compartilhar com segurança um banco de dados além das fronteiras organizacionais, a imutabilidade da prova de trabalho não faz sentido algum. Não só é incrivelmente caro, mas permite que qualquer participante suficientemente motivado controle anonimamente da cadeia e censure ou reverta as transações. O que esses usuários precisam é de imutabilidade baseada no bom comportamento da maioria dos nós validadores identificados, respaldados por contratos e leis.

Finalmente, para a maioria dos casos de uso de blockchain com permissão, provavelmente não queremos que os nós de validação sejam capazes de substituir blocos antigos na cadeia de maneira fácil e barata. Como Dave Birch disse na época, “A forma de corrigir um débito errado é com um crédito correto”, em vez de fingir que o débito nunca ocorreu. No entanto, para os casos em que precisamos de flexibilidade extra, os hashes camaleões ajudam a tornar os blockchains uma escolha prática.

Por favor, poste comentários no LinkedIn.

Carimbo de hora:

Mais de Multichain