Independentemente do PoW de prova de carga de trabalho, PoS de prova de patrimônio ou DPoS de prova de patrimônio delegada, desde que haja uma questão de consenso, teoricamente falando, 51% dos ataques não podem ser evitados. O invasor controla a rede principal por meio de blocos reversíveis de 51% , resultando em flor dupla.

conhecimento prévio

Como um sistema descentralizado e distribuído de armazenamento público de dados, o blockchain não possui uma organização de gerenciamento central para gerenciamento. Em vez disso, ele é mantido conjuntamente por nós distribuídos usando protocolos criptográficos, e cada nó mantém todo o sistema. A consistência do livro-razão deve ser garantida por meio de o protocolo de consenso subjacente. Blockchains têm diferentes usos práticos em diferentes cenários da vida real, como cadeias públicas, cadeias privadas e cadeias de aliança. Diferentes cadeias usam diferentes algoritmos de consenso, como o consenso PoW usado pelo Bitcoin e o consenso PoW usado pelo Ethereum., o DPoS. consenso usado pelo EOS, e a segurança envolvida em diferentes algoritmos de consenso é diferente.

Este artigo irá detalhar os riscos de ataque presentes nos protocolos de consenso PoW usados ​​pelo Bitcoin e Ethereum.

Mecanismo de consenso PoW

Primeiro, vamos dar uma olhada no que é o protocolo de consenso PoW.

Do ponto de vista de um sistema de contabilidade descentralizado, cada nó que se junta ao sistema deve manter um livro-razão completo, mas cada nó não pode manter contas ao mesmo tempo porque os nós estão em ambientes diferentes e recebem informações diferentes. Portanto, é necessário chegar a um consenso. qual nó tem o direito de manter contas. Os blockchains Bitcoin e Ethereum resolvem o problema de consistência do sistema contábil descentralizado por meio da contabilidade competitiva, ou seja, um mecanismo que utiliza o poder computacional de cada nó, ou seja, “poder computacional” para competir pelos direitos contábeis O processo de direitos contábeis. é “mineração”.​

Contudo, num sistema descentralizado, quem tem o direito de determinar o resultado da concorrência? Os sistemas blockchain Bitcoin e Ethereum são realizados através de um mecanismo de consenso chamado Prova de Trabalho (PoW).

PoW (Prova de Trabalho), ou seja, “Prova de Trabalho”. Simplificando, PoW é um certificado que confirma que a extremidade trabalhadora realizou uma certa quantidade de trabalho. A extremidade de trabalho precisa realizar uma certa quantidade de trabalho difícil para obter um resultado, e o verificador usa os resultados para verificar se a extremidade de trabalho realizou o trabalho correspondente.

Na mineração por meio de consenso de prova de trabalho, três regras precisam ser seguidas:

  • Apenas uma pessoa pode registrar contas com sucesso dentro de um período de tempo

  • Competir para obter o direito contábil exclusivo resolvendo quebra-cabeças criptográficos (ou seja, prova de trabalho)

  • Outros nós verificam e copiam os resultados contábeis

Por exemplo, dada a string "blockchain", o requisito de carga de trabalho que fornecemos é que possamos concatenar uma string de valor inteiro chamada nonce após essa string e executar uma operação de hash SHA256 na string concatenada If O resultado do hash obtido (expresso em hexadecimal. form) começa com vários 0s, então a verificação é aprovada. Para atingir esse objetivo de prova de trabalho, precisamos incrementar continuamente o valor nonce e realizar uma operação hash SHA256 na nova string obtida.

Hash (o valor do Hash anterior, o conjunto de informações do registro da transação) = 29329385BNDH749 Hash (o valor do Hash anterior, o conjunto de informações do registro da transação, o número aleatório nonce) = 000029329385BNDH749

Por exemplo, o hash da altura do bloco 512884 no Bitcoin é:

0000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

A prova de trabalho necessária para gerar esse bloco por meio da contabilidade é de 16 ** 18 cálculos de hash, o que é uma quantidade de cálculo muito grande.

51% de ataque

Depois de apresentar brevemente os princípios simples de empacotamento de blocos por meio de contabilidade e PoW, vamos voltar à nossa pergunta: o que é um ataque de 51% e o que é um ataque de gasto duplo?

Um ataque de gasto duplo refere-se simplesmente a um ataque em que um token é usado através de vários métodos de pagamento, o que significa que a mesma moeda é gasta várias vezes. Há muitas maneiras de lançar um ataque de gasto duplo, incluindo as seguintes formas:

  • 51% de ataque

  • Ataque racial

  • Ataque do vetor 76

  • ataque de história alternativa

Ou seja, se o invasor controlar mais de 50% do poder computacional de toda a rede, ele poderá implementar um gasto duplo por meio de um ataque de 51%.

Aqui analisamos apenas o processo de ataque de 51%.

Ataque de 51%, também conhecido como ataque majoritário. Este ataque consegue o dobro dos gastos ao controlar o poder computacional da rede. Se um invasor controlar mais de 50% do poder computacional da rede, durante o período em que controlar o poder computacional, ele poderá reverter o bloqueio, realizar transações reversas e obter gastos duplos.

No protocolo de consenso PoW, o sistema blockchain permite a existência de múltiplas cadeias bifurcadas ao mesmo tempo, e cada cadeia pode declarar ao mundo exterior que está correta. No entanto, existe um princípio eficaz mais longo no conceito de design do blockchain: “Não importa. Em que ponto a cadeia mais longa é considerada a cadeia principal com mais trabalho?”

Vamos simular brevemente o processo de ataque de 51%:

Se houver tal invasor, ele transmite deliberadamente a primeira transação para metade da rede e transmite a segunda transação para a outra metade da rede, e então há exatamente dois mineradores em ambos os lados para obter direitos de contabilidade quase ao mesmo tempo momento, e seus respectivos direitos contábeis são O bloco é transmitido para todos. Você pode escolher qualquer razão neste momento, o razão unificado original foi bifurcado.

Em seguida, se o próximo minerador optar por continuar a contabilização com base em A, a filial A será mais longa que a filial B. De acordo com as regras do blockchain, a filial mais longa será reconhecida, a filial curta será abandonada e o razão ainda será be retornará para um, e apenas uma transação é válida.

Neste momento, a filial A é reconhecida e a transação correspondente é confirmada. Se o invasor obtiver o produto, ele imediatamente se transforma em minerador e ganha dois direitos contábeis consecutivos, e então adiciona dois blocos à filial B.

Então a filial B torna-se uma agência reconhecida. Neste momento, a agência A é abandonada. A transação na agência A não está mais estabelecida. o ataque de gastos foi concluído com sucesso. O problema é que quando o ramo B está atrasado, é muito difícil forçá-lo a ultrapassar o ramo A na realidade, e a probabilidade de sucesso é muito baixa se o invasor controlar mais de 50% do poder computacional do ramo. toda a rede, mesmo que fique para trás, muito, e é apenas uma questão de tempo até que ele o alcance. Este é o “ataque de 51%” mencionado acima.

Análise de caso de ataque Bitcoin Gold 51%

No mundo real do blockchain, houve muitos gastos duplos causados ​​por ataques de 51%.

Por exemplo, o problema de gasto duplo no Bitcoin Gold (moeda BTG) é um ataque de 51%. O processo de ataque é o seguinte:

  1. O invasor controla mais de 51% do poder computacional da rede Bitcoin Gold. Durante o período de controle do poder computacional, ele enviou uma certa quantidade de BTG para sua carteira na bolsa.

  2. Ao mesmo tempo, ele enviou esses BTG para outra carteira que ele controlava. Chamamos essa agência de filial B.

  3. Após a confirmação da transação na agência A, o invasor vende imediatamente o BTG e recebe dinheiro. Neste momento, o ramo A torna-se a cadeia principal.

  4. Em seguida, o invasor explora o ramal B. Como controla mais de 51% do poder computacional, o invasor tem uma alta probabilidade de obter direitos contábeis, logo o comprimento do ramal B excede a cadeia principal (ou seja, o comprimento do ramal A), então a filial B se tornará a cadeia principal e as transações na filial A serão revertidas, restaurando os dados para o último estado correto.

  5. Em outras palavras, a agência A é restaurada ao estado anterior ao invasor iniciar a primeira transação, e o BTG que o invasor havia convertido anteriormente em dinheiro está de volta em suas mãos.

  1. Por fim, o invasor envia esses BTG para outra carteira sua. Dessa forma, o invasor controlava mais de 51% do poder computacional para conseguir o “gasto duplo” do mesmo token.

De acordo com o relatório de dados de blockchain deste ataque, o invasor reverteu com sucesso 22 blocos. O endereço Bitcoin Gold envolvido neste ataque recebeu mais de 388.200 $BTG. Supondo que todas essas transações estejam relacionadas a gastos duplos, o invasor receberá até US$ 18,6 milhões. valor em fundos pode ter sido roubado da bolsa

Além do problema de gasto duplo que ocorreu no Bitcoin Gold, há muitos casos de ataques de gasto duplo causados ​​por ataques de 51%:

  • A moeda digital anônima Verge já explorou maliciosamente mais de 35 milhões de #xvg em apenas algumas horas, no valor de aproximadamente US$ 1,75 milhão.

  • A criptomoeda japonesa monacoin foi aparentemente atingida por um ataque de dedução de bloco depois que um minerador ganhou até 57% do poder de hash da rede.

  • Notícias oficiais do Litecoin Cash (LCC), LCC sofreu um ataque de 51%.

  • A moeda digital #zen também sofreu um ataque de 51%.

  • Recentemente, o Ethereum Classic #etc sofreu um ataque de 51%.