- Voltar ao menu
- Voltar ao menuPreços
- Voltar ao menuPesquisar
- Voltar ao menuConsenso
- Voltar ao menu
- Voltar ao menu
- Voltar ao menu
- Voltar ao menuWebinars e Eventos
O Mito da Imutabilidade do Blockchain
Gideon Greenspan, da MultiChain, oferece seus insights mais recentes sobre design de blockchain, desta vez atacando a ideia de que blockchains podem ser realmente imutáveis.
O Dr. Gideon Greenspan é o fundador e CEO da Coin Sciences, a empresa por trás doMulticadeiaplataforma para blockchains privadas.
Neste artigo de Opinião , Greenspan ataca a ideia de que a verdadeira imutabilidade pode ser alcançada em sistemas de blockchain, argumentando que uma definição mais relativa desse recurso encapsula melhor o que a Tecnologia pode alcançar.
— Santo Agostinho, De natura boni, i, 405 d.C. (com pequenas edições)
Se você perguntar a alguém bem informado sobre as características dos blockchains, a palavra "imutável" invariavelmente aparecerá na resposta.
Em inglês simples, esta palavra é usada para denotar algo que nunca pode ser modificado ou alterado. Em um blockchain, refere-se alog global de transações, que é criado por um consenso entre os participantes da cadeia. A noção básica é esta: uma vez que uma transação de blockchain tenha recebido um nível suficiente de validação, alguma criptografia garante que ela nunca possa ser substituída ou revertida.
Isso marca os blockchains como diferentes de arquivos ou bancos de dados comuns, nos quais as informações podem ser editadas e excluídas à vontade. Ou assim diz a teoria.
Na arena estridente do debate sobre blockchain, a imutabilidade se tornou uma doutrina quase religiosa – uma crença CORE 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:
Por um ONE, os defensores das Criptomoeda afirmam que a imutabilidade só pode ser alcançada através de mecanismos económicos descentralizados como prova de trabalho. Dessa perspectiva, blockchains privadas são risíveis porque dependem do bom comportamento coletivo de um grupo conhecido de validadores, nos quais claramente não se pode confiar.
Desprezotambém foi dirigidona 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. Os zombadores levantaram a questão: "Qual poderia ser o objetivo de um blockchain se seu conteúdo pode ser facilmente alterado?"
Para nós que estamos à margem, é divertido assistir à difamação. Até porque ambas as críticas são completamente erradas. Ambas decorrem 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 final:
Em blockchains, não existe algo como 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?
Para colocar de outra forma, as transações de um blockchain não são escritas na mente de Deus (com desculpas a Agostinho acima). Em vez disso, o comportamento da cadeia depende de uma rede de sistemas de computadores corpóreos, que sempre serão vulneráveis à destruição ou corrupção. Mas, antes de entrarmos nos detalhes de como, vamos prosseguir recapitulando alguns princípios básicos dos próprios blockchains.
Blockchains em resumo
Um blockchain roda em um conjunto de nós, cada um dos quais pode estar sob o controle de uma empresa, indivíduo ou organização separada. Esses nós se conectam uns aos outros em uma densa rede peer-to-peer, de modo que ONE nó atua 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 cada nova transação de entrada para validade, 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 daquele 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 não vistas são colocadas em uma área de espera temporária (o "pool de órfãos").
Em intervalos periódicos, um novo bloco é gerado por um dos nós 'validadores' na rede, contendo um conjunto de transações ainda não confirmadas. Cada bloco tem um identificador exclusivo de 32 bytes chamado 'hash', que é determinado inteiramente pelo conteúdo do bloco. Cada bloco também inclui um timestamp e um LINK para um bloco anterior por meio de seu hash, criando uma 'blockchain' literal que remonta ao início.
Assim como as transações, os blocos se propagam pela rede de forma peer-to-peer 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 entrem em conflito entre si ou com aquelas nos blocos anteriores vinculados. Se um bloco passar neste e em outros testes, ele é adicionado à cópia local do blockchain daquele nó, e as transações dentro dele 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 tomar o controle do conteúdo do blockchain.
A maioria dos blockchains públicos como o Bitcoin usa 'prova de trabalho', que permite que blocos sejam criados por qualquer pessoa na internet que consiga resolver um quebra-cabeça matemático inútil e diabolicamente 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 usado, dois nós validadores diferentes podem gerar simultaneamente blocos conflitantes, ambos apontando para o mesmo ONE. Quando tal 'fork' acontece, diferentes nós na rede verão blocos diferentes primeiro, levando-os a ter opiniões diferentes sobre o histórico recente da cadeia.
Essas bifurcações são resolvidas automaticamente pelo software blockchain, com o consenso recuperado assim que um novo bloco chega em uma das ramificações. Os nós que estavam na ramificação mais curta retrocedem automaticamente seu último bloco e reproduzem os dois blocos na mais ONE. Se tivermos realmente azar e ambas as ramificações forem estendidas simultaneamente, o conflito será resolvido após o terceiro bloco em uma ramificação, ou a ONE , e assim por diante. Na prática, a probabilidade de uma bifurcação persistir 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, então o blockchain não pode forçá-lo a fazer nada. O propósito da cadeia é ajudar nós honestos a permanecerem sincronizados, 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 um blockchain em particular é verdadeira e absolutamente imutável, porque a resposta sempre será não. Em vez disso, devemos considerar as condições sob as quais um blockchain em particular pode ser modificado e, então, verificar se estamos confortáveis com essas condições para o caso de uso que temos em mente.
Mutabilidade em cadeias públicas
Voltemos aos dois exemplos citados na introdução, nos quais a doutrina da imutabilidade foi usada como base para o ridículo.
Começaremos com a afirmação de que os procedimentos de validação consensual usados em blockchains com permissão não podem trazer a "verdadeira imutabilidade" prometida pelas cadeias públicas.
Essa crítica é mais facilmente abordada apontando a vulnerabilidade dos próprios blockchains públicos. Tomemos, por exemplo, o blockchain Ethereum , que sofreu uma façanha devastadoraem junho de 2016. Alguém encontrou uma brecha de codificação em um contrato inteligente chamado The DAO, no qual quase US$ 250 milhões foram investidos, e começou a drenar seus fundos rapidamente. Embora isso claramente violasse as intenções dos criadores e investidores do contrato, seutermos e Condições confiou no mantra de que 'código é lei'. Lei ou não, menos de um mês depois, o software do Ethereum foi atualizado para impedir que o hacker retirasse a Criptomoeda 'ganha'.
Claro, essa atualização não pôde ser imposta, já que cada usuário do Ethereum controla seu próprio computador. No entanto, foi publicamente apoiada por Vitalik Buterin, criador do ethereum, assim como muitos outros líderes da comunidade. 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 com o blockchainde acordo com suas regras originais, ganhando o título de ' Ethereum Classic'. Uma escolha mais precisa de nomes poderia ser ' Ethereum comprometido' e ' Ethereum o puro'. De qualquer forma, democracia é democracia, e (o pragmático e popular) ' Ethereum' agora vale mais de 10x (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 para gerar um bloco e reivindicar sua recompensa. O valor dessa recompensa inevitavelmente transforma a mineração em uma corrida armamentista, com os mineradores competindo para resolver os problemas mais rápido. Para compensar, a rede ajusta periodicamente a dificuldade para manter uma taxa constante de criação de blocos, uma vez a cada 10 minutos em Bitcoin ou 15 segundos em Ethereum.
Nos últimos cinco anos,dificuldade do bitcoin aumentou por um fator de 350.000 vezes. Hoje, a grande maioria da mineração de Bitcoin acontece em hardware especializado caro, em locais onde o clima é frio e a eletricidade é barata.
Por exemplo, $ 1.089 lhe comprarão umAntminer S9, que minera blocos 10.000 vezes mais rápido do que qualquer computador de mesa e queima 10 vezes mais eletricidade. Tudo isso está muito longe dos ideais democráticos com os quais o Bitcoin foi criado, mesmo que torne o blockchain extremamente seguro.
Bem, meio seguro. Se alguém quisesse minar a imutabilidade do blockchain do Bitcoin , eis como fariam isso. Primeiro, instalariam mais capacidade de mineração do que o resto da rede reunida, criando o chamado "ataque de 51%". Segundo, em vez de participar abertamente do processo de mineração, eles minerariam seu próprio "ramo Secret ", contendo quaisquer transações que aprovassem e censurando o resto. Finalmente, quando o tempo desejado tivesse passado, eles transmitiriam anonimamente seu ramo Secret para a rede.
Como o invasor tem mais poder de mineração do que o resto da rede, sua ramificação conterá mais provas de trabalho do que a ONE. Cada nó de Bitcoin , portanto, mudará, já que as regras do Bitcoin afirmam que a ramificação mais difícil vence. Quaisquer transações previamente confirmadas que não estejam na ramificação Secret serão revertidas, e o Bitcoin que eles gastaram poderá ser enviado para outro lugar.
Agora, a maioria dos crentes em Bitcoin estará rindo, porque eu escrevi "instale mais capacidade de mineração do que o resto da rede junta" 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 muito equipamento de mineração e muita eletricidade para alimentá-lo, e ambos custam uma TON de dinheiro. Mas aqui está o fato inconveniente que a maioria dos bitcoiners ignora: para o governo de qualquer país de médio porte, o dinheiro necessário ainda é troco.
Vamos estimar o custo de um ataque de 51% que reverte um ano de transações de Bitcoin . Ao preço atual do Bitcoin de US$ 1.500 e recompensa de 15 bitcoins (incluindo taxas de transação) por bloco de 10 minutos, os mineradores ganham cerca de US$ 1,2 bilhão por ano (US$ 1.500 × 15 × 6 × 24 × 365). Supondo (razoavelmente) que eles não estejam 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, então estamos no estádio certo.)
Agora, pense sobre orelatórios que o 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ões por ano. O governo de um país não democrático gastaria 0,04% de seu orçamento para fechar um método popular para tirar dinheiro ilegalmente daquele país?
Eu T 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 pessoas para policiar o conteúdo da internet, o que totaliza US$ 10 bilhões/ano se assumirmos um salário baixo de US$ 5.000. Isso coloca o custo de US$ 1,2 bilhão de reverter um ano de transações de Bitcoin em perspectiva.
Mesmo esta análise subestima o problema, porque o governo chinês poderia minar a rede Bitcoin muito mais facilmente e de forma mais barata. Parece que a maioria da mineração de Bitcoin acontece na China, devido à energia hidrelétrica de baixo custo e outros fatores. Com alguns tanques e pelotões, o exército chinês poderia fisicamente apreender essas operações de mineração de Bitcoin e redirecioná-las para censurar ou reverter transações. Embora o mundo Bitcoin mais amplo sem dúvida notasse, 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 isso sobre dinheiro livre de censura?
Nada disso deve ser interpretado como uma crítica ao design do bitcoin, ou uma previsão de que uma catástrofe de rede realmente acontecerá. O blockchain do Bitcoin é uma peça notável de engenharia, talvez até mesmo perfeita para o propósito que seu(s) criador(es) tinham em mente. E se eu tivesse que apostar, eu apostaria que a China e outros governos provavelmente T atacariam o Bitcoin dessa forma, porque não é do interesse deles fazer isso. Mais provavelmente, eles concentrarão 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 devido lugar. O blockchain do Bitcoin e seus semelhantes não são imutáveis em nenhum sentido perfeito ou absoluto. Em vez disso, eles são imutáveis enquanto ninguém grande e rico o suficiente decidir destruí-los. Ainda assim, ao confiar no custo econômico de subverter a rede, a imutabilidade da Criptomoeda satisfaz as necessidades específicas de pessoas que T querem confiar em governos, empresas e bancos.
Pode não ser perfeito, mas é o melhor que eles podem fazer.
Cadeias privadas regraváveis
Agora vamos passar para blockchains privadas, projetadas para as necessidades de governos e grandes empresas.
Podemos começar notando que, da perspectiva dessas organizações, a imutabilidade baseada em proof-of-work é um não-iniciante comercial, legal e regulatório, porque permite que qualquer ator (suficientemente rico) ataque a rede anonimamente. Para 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 bônus, blockchains privadas são muito menos custosas de executar, já que os blocos só precisam de uma assinatura digital simples dos nós que os aprovam. Desde 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, a imutabilidade ainda é fácil de minar se todos os participantes de uma cadeia decidirem fazer isso juntos. Vamos imaginar um blockchain privado usado por seis hospitais para agregar dados sobre infecções. Um programa em um hospital grava um conjunto de dados grande e errôneo 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 "rebobinar" seus nós uma hora, excluir os dados problemáticos e, então, permitir que a cadeia continue como se nada tivesse acontecido.
Se todos os hospitais concordarem em fazer isso, quem vai impedi-los? De fato, além da equipe envolvida, quem saberá que isso aconteceu? (Deve-se notar que alguns algoritmos de consenso como PBFT T fornecem um mecanismo oficial para reversões, mas isso T ajuda na governança, já que os nós ainda são livres para ignorar as regras.)
Agora, considere um caso em que a maioria dos participantes de um blockchain privado concorda em retroceder e remover alguma transação, mas alguns retêm seu consentimento. Como o nó de cada organização está sob seu controle final, ninguém pode forçar a minoria a se juntar ao consenso. No entanto, ao se aterem aos seus princípios, esses usuários se encontrarão em uma bifurcação sendo ignorados por todos os outros.
Como os virtuosos proponentes do Ethereum Classic, seu lugar no céu pode muito bem estar garantido. Mas aqui na Terra, eles serão excluídos do processo de consenso para o qual a cadeia foi implantada, e podem muito bem desistir completamente. A única aplicação prática de transações fora do consenso é servir como evidência em um tribunal de justiça.
Com isso em mente, vamos falar sobre o segundo caso em que a doutrina da imutabilidade do blockchain foi usada para ridicularizar ideias.
Aqui, estamos nos referindo à ideia da Accenture de usar umcamaleão hashpara permitir que um bloco enterrado profundamente em uma cadeia seja facilmente substituído. A motivação primária, comodescrito por David Treat, é permitir que uma transação problemática antiga seja removida de forma rápida e eficiente. Sob o esquema, se uma substituição de bloco ocorrer, uma "cicatriz" é deixada para trás, que todos os participantes podem ver. (Deve-se notar que quaisquer transações posteriores que dependam da ONE também precisariam ser removidas.)
É difícil exagerar quantas pessoas atacaram essa ideia quando ela foi anunciada. O Twitter e o LinkedIn ficaram horrorizados e agitados. E não estou falando apenas da multidão Cripto , que tem prazer esportivo em zombar de qualquer coisa relacionada a blockchains empresariais. A ideia foi amplamente criticada também por defensores do blockchain privado.
E ainda assim, sob as condições certas, a ideia de permitir que blockchains sejam modificados retroativamente via hashes camaleão pode fazer todo o sentido. Para entender o porquê, começamos com uma pergunta simples: nesse tipo de blockchain, quem realmente teria o poder de substituir blocos antigos? Claramente, T pode ser nenhum 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 Secret . A chave é necessária para habilitar uma nova versão de um bloco, com transações diferentes, para receber o mesmo hash camaleão de antes. Claro, provavelmente T queremos controle centralizado em um blockchain, então podemos tornar o esquema mais forte tendo vários hashes camaleão por bloco, cada uma das quais é mantida por uma parte diferente. Ou podemos usar compartilhamento Secrettécnicas para dividir uma única chave de hash camaleão entre várias partes. De qualquer forma, a cadeia pode ser configurada para que uma substituição de bloco retroativa só possa ocorrer se a maioria dos detentores da chave a aprovar. Isso está começando a soar familiar?
Permita-me tornar o paralelo mais explícito. Digamos que compartilhamos o controle sobre hashes camaleão entre os mesmos nós de validação que são responsáveis pela criação de blocos. 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 assim, como discutimos anteriormente, qualquer blockchain já pode ser modificada retroativamente pela maioria dos nós de validação, por meio do mecanismo de rewind e replay. Então, em termos de governança,hashes camaleão 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 desempenho, porque os hashes camaleão permitem que blocos antigos sejam substituídos em uma cadeia muito mais eficientemente do que antes. Imagine que precisamos remover uma transação do início de um blockchain que está em execução há cinco anos. Talvez isso se deva à União Europeiadireito de ser esquecido legislação, que permite que indivíduos tenham seus dados pessoais removidos dos registros das empresas. Os nós T 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 escaneado ou compartilhado, tudo desmoronaria.
Para resolver esse problema sem hashes camaleão, os nós teriam que reescrever o bloco inicial sem a transação problemática, calcular o novo hash do bloco e, então, alterar o hash incorporado 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, ele pode levar horas ou dias para ser concluído em um blockchain com milhões de blocos e transações. Pior ainda, enquanto envolvido nesse processo, um nó pode ser incapaz de processar novas atividades de rede de entrada.
Então, os hashes camaleão fornecem uma maneira muito mais eficiente computacionalmente de atingir o mesmo objetivo. Se você imaginar uma transação ruim como uma pedra enterrada a muitos quilômetros de profundidade, os hashes camaleão podem teletransportar a pedra para a superfície, em vez de nos fazer cavar todo o caminho, recuperar a pedra e preencher o buraco.
A imutabilidade é matizada
Ao analisar os riscos dos blockchains de prova de trabalho e o valor técnico dos hashes camaleão, espero ter convencido você de que a imutabilidade do blockchain é muito mais sutil do que uma pergunta de sim ou não.
Para citarSimon Taylor citando Ian Grigg, a pergunta deve ser sempre: "Quem é você e o que você quer alcançar?"
Para os crentes em Criptomoeda que querem evitar dinheiro emitido pelo governo e o sistema bancário tradicional, faz todo o sentido acreditar em um blockchain público de prova de trabalho, cuja imutabilidade repousa na economia e não em partes confiáveis. Mesmo que eles tenham que viver com a possibilidade de um grande governo (ou outro ator rico) derrubar a rede, eles podem se consolar com o fato de que esta 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 querem compartilhar um banco de dados com segurança entre fronteiras organizacionais, a imutabilidade da prova de trabalho não faz sentido algum. Não só é incrivelmente cara, mas permite que qualquer participante suficientemente motivado tome anonimamente o controle da cadeia e censure ou reverta transações. O que esses usuários precisam é de imutabilidade fundamentada 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 permissionados, provavelmente T queremos que os nós validadores sejam capazes de substituir blocos antigos na cadeia de forma fácil e barata. Como Dave Birch disse na época"A maneira 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ão ajudam a tornar os blockchains uma escolha prática.
Este artigo foipublicado originalmenteno blog MultiChain e foi republicado aqui com a permissão do autor. Pequenas edições foram feitas.
Mitologiaimagem via Shutterstock
Nota: As opiniões expressas nesta coluna são do autor e não refletem necessariamente as da CoinDesk, Inc. ou de seus proprietários e afiliados.