Discussão sobre a análise e a solução para a vulnerabilidade de distorção temporal do protocolo Bitcoin

robot
Geração do resumo em andamento

Bitcoin protocolo中的时间漏洞:深入解析时间扭曲攻击

Resumo

Recentemente, a comunidade de desenvolvimento do Bitcoin propôs uma nova proposta de soft fork, destinada a corrigir várias vulnerabilidades e fraquezas de longa data no protocolo do Bitcoin. Uma das vulnerabilidades mais sérias é conhecida como "ataque de distorção temporal", que é exatamente o tema que este artigo pretende explorar em profundidade.

Bitcoin falha de segurança: ataque de distorção temporal

Mecanismo de proteção de timestamp de bloco do Bitcoin

Antes de discutir o ataque de distorção temporal, precisamos entender os mecanismos de proteção contra manipulação temporal no atual protocolo Bitcoin:

  1. O tempo mediano passado (MPT) regra: O carimbo de data/hora do novo bloco deve ser posterior ao tempo mediano dos 11 blocos anteriores.

  2. Regras futuras do tempo de bloco: O carimbo de tempo do bloco não pode estar mais de 2 horas à frente do tempo mediano dos nós da rede. Além disso, a diferença máxima permitida entre o tempo do nó e o relógio do sistema local é de 90 minutos.

As regras MPT evitam que os carimbos de tempo dos blocos sejam demasiado retroativos, enquanto as regras dos blocos futuros limitam os carimbos de tempo a não serem excessivamente antecipados. É importante notar que não é possível implementar um mecanismo semelhante às regras dos blocos futuros para impedir completamente os carimbos de tempo passados, pois isso pode afetar o processo de sincronização da blockchain inicial.

Bitcoin segurança vulnerabilidades: ataque de distorção temporal

O erro "um a menos" de Satoshi Nakamoto

O período de ajuste de dificuldade do Bitcoin inclui 2016 blocos, calculando um tempo de bloco de 10 minutos, o que equivale a aproximadamente duas semanas. Ao calcular o ajuste de dificuldade da mineração, o protocolo calcula a diferença de timestamp entre o primeiro e o último bloco na janela de 2016 blocos relacionada.

No entanto, Satoshi Nakamoto cometeu um pequeno erro, mas notável, no código original. Ele usou 2016 em vez de 2015 para calcular o tempo alvo, resultando em um tempo alvo 0,05% mais longo do que deveria ser. Isso significa que o intervalo de blocos alvo real do Bitcoin é de 10 minutos e 0,3 segundos, em vez de 10 minutos exatos.

Embora esse erro de 0,3 segundos pareça insignificante, ele está associado a um problema mais sério. O cálculo da dificuldade é baseado no primeiro e no último bloco dentro de cada janela de 2016 blocos, e não na diferença entre o último bloco da janela anterior e o último bloco da janela atual. Essa forma de cálculo cria a possibilidade de ataques de distorção temporal.

Princípio do ataque de distorção temporal

O ataque de distorção do tempo aproveita o erro de Satoshi Nakamoto no cálculo da dificuldade. Neste tipo de ataque, mineradores maliciosos manipulam o timestamp do bloco para influenciar o ajuste de dificuldade. Os passos do ataque são os seguintes:

  1. Para a maioria dos blocos, os mineiros definem o carimbo de data/hora para apenas 1 segundo antes do bloco anterior.

  2. Para minimizar ao máximo a passagem do tempo, os mineradores podem manter o mesmo carimbo de data/hora em 6 blocos consecutivos e, em seguida, aumentar o tempo em 1 segundo no próximo bloco.

  3. No último bloco de cada período de ajuste de dificuldade, os mineradores definem o carimbo de data/hora para o tempo do mundo real.

  4. O timestamp do primeiro bloco da próxima janela de ajuste de dificuldade é definido para o passado, apenas 1 segundo antes do penúltimo bloco da janela anterior.

Este modo de ataque faz com que o tempo da blockchain fique cada vez mais atrasado em relação ao tempo real, enquanto a dificuldade continua a aumentar. No entanto, a partir do segundo ciclo de ajuste, a dificuldade começará a ajustar-se para baixo. Isso permite que os mineradores gerem uma grande quantidade de blocos em um curto espaço de tempo, potencialmente criando Bitcoin além da velocidade de emissão normal.

Bitcoin segurança vulnerabilidades: ataque de distorção temporal

Viabilidade e Desafios do Ataque

Embora essa ataque tenha um potencial destrutivo em teoria, a sua implementação real enfrenta alguns desafios:

  1. É necessário controlar a maior parte do poder de cálculo da rede.

  2. A presença de mineiros honestos aumentará a dificuldade de ataque.

  3. Se um minerador honesto gerar o primeiro bloco da janela de ajuste de dificuldade, o ataque desse ciclo falhará.

  4. O processo de ataque é visível publicamente e pode desencadear uma correção de soft fork de emergência.

Bitcoin segurança vulnerabilidade: ataque de distorção temporal

Solução

Há várias maneiras de corrigir esta vulnerabilidade:

  1. Mudar o algoritmo de ajuste de dificuldade, calculando a diferença de tempo entre diferentes janelas de 2016 blocos.

  2. Cancelar a regra MPT, exigindo que o carimbo de data/hora de cada bloco aumente estritamente.

  3. Definir novas regras de limite: O tempo do primeiro bloco do novo ciclo de dificuldade não pode ser anterior a um número específico de minutos do último bloco do ciclo anterior (, como 2 horas ).

Atualmente, os desenvolvedores tendem a adotar a terceira solução, estabelecendo o limite de tempo em 2 horas. Esta solução não apenas pode mitigar efetivamente o ataque de distorção temporal, mas também minimiza ao máximo o risco de gerar blocos inválidos por acidente.

Bitcoin segurança vulnerabilidade: ataque de distorção temporal

Conclusão

O ataque de distorção temporal revela uma potencial vulnerabilidade de segurança no protocolo Bitcoin. Embora a implementação deste ataque enfrente muitos desafios na realidade, ele nos lembra da necessidade de revisar e melhorar continuamente a infraestrutura da tecnologia blockchain. Através da proposta de uma solução de soft fork, a comunidade Bitcoin está ativamente enfrentando esta ameaça potencial, aumentando ainda mais a segurança e a estabilidade da rede.

BTC-0.32%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 4
  • Compartilhar
Comentário
0/400
SocialAnxietyStakervip
· 1h atrás
Vale a pena investigar a correção de vulnerabilidades
Ver originalResponder0
ser_we_are_ngmivip
· 6h atrás
BTC também pode ser atacado
Ver originalResponder0
GateUser-1a2ed0b9vip
· 6h atrás
A vulnerabilidade crítica é realmente complicada.
Ver originalResponder0
InscriptionGrillervip
· 6h atrás
Não adianta mudar.
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)