Bitcoin Segurança Vulnerabilidades: Ataques de Distorção Temporal
Resumo
No dia 26 de março de 2025, um desenvolvedor de Bitcoin propôs uma nova proposta de melhoria, conhecida como o plano de soft fork "Grande Limpeza de Consenso". Esta atualização visa corrigir várias falhas e fraquezas de longa data no protocolo Bitcoin. Uma das vulnerabilidades mais graves é chamada de "ataque de distorção temporal", que é o foco principal deste artigo.
Mecanismo de proteção de timestamp do bloco Bitcoin
Antes de discutir o ataque de distorção temporal, vamos revisar as atuais regras de proteção contra manipulação do tempo:
Regra do tempo mediano passado (MPT): o timestamp do bloco deve ser mais recente do que o tempo mediano dos últimos onze blocos.
Regras de tempo de bloco futuro: com base na constante MAX_FUTURE_BLOCK_TIME, o carimbo de tempo do bloco não pode exceder em mais de 2 horas o tempo médio dos pares do nó. A diferença máxima permitida entre o tempo fornecido pelo nó e o relógio do sistema local é de 90 minutos, como uma outra medida de segurança.
As regras MPT garantem que os blocos não voltem demasiado ao passado, enquanto as regras dos blocos futuros evitam que avancem em demasia para o futuro. É importante notar que não é possível implementar um mecanismo semelhante às regras dos blocos futuros para impedir que os blocos tenham um carimbo de data/hora do passado, pois isso poderia afetar a sincronização inicial da blockchain. O ataque de distorção temporal envolve a falsificação de carimbos de data/hora, fazendo-os voltar muito ao passado.
Erro de cálculo no código original
Existe um pequeno, mas notável erro de cálculo no protocolo Bitcoin. Ao calcular o ajuste da dificuldade de mineração, o protocolo utiliza 2016 blocos como base de cálculo, quando na verdade deveria usar um intervalo de 2015 blocos. Isso resulta em um tempo alvo que é 0,05% mais longo do que o necessário, fazendo com que o intervalo de tempo alvo real para a criação de blocos do Bitcoin seja de 10 minutos e 0,3 segundos, em vez de 10 minutos exatos.
Embora esse erro de 0,3 segundos não tenha um grande impacto no todo, ele está relacionado a outro problema mais sério. O cálculo da dificuldade é baseado no primeiro e no último bloco dentro de cada janela de 2016 blocos, e esse método apresenta falhas. Uma abordagem mais razoável deveria calcular a diferença de tempo entre o último bloco da janela anterior de 2016 blocos e o último bloco da janela atual.
Princípio do ataque de distorção temporal
O ataque de distorção temporal aproveita o erro de cálculo mencionado acima. Em um cenário ideal, supondo que a mineração seja completamente centralizada, o atacante pode manipular o carimbo de tempo do bloco da seguinte forma:
A maioria dos carimbos de tempo dos blocos é apenas um segundo anterior ao bloco anterior.
A cada seis blocos, o carimbo de data/hora é avançado em um segundo, para cumprir as regras MTP.
No último bloco de cada ciclo de ajuste de dificuldade, defina o carimbo de data/hora para o tempo real.
O timestamp do primeiro bloco do novo ciclo de dificuldade voltou novamente ao passado, um segundo antes do penúltimo bloco do ciclo anterior.
Esta operação fará com que o tempo da blockchain fique progressivamente atrás do tempo real, enquanto a dificuldade continua a aumentar. No entanto, no final de cada ciclo de ajuste de dificuldade, devido ao último bloco usar um carimbo de tempo real, a dificuldade será ajustada para baixo. À medida que o ataque continua, a dificuldade diminuirá drasticamente, permitindo que o atacante crie blocos a uma velocidade extremamente rápida, potencialmente obtendo uma grande quantidade de Bitcoin.
Viabilidade e Desafios do Ataque
Apesar de essa ataque ser teoricamente destrutivo, a sua implementação enfrenta vários desafios:
Pode ser necessário controlar a maior parte do poder de computação da rede.
A existência de mineradores honestos aumentará a dificuldade de ataque.
As regras MTP e os carimbos de tempo honestos limitarão o grau de retrocesso dos carimbos de tempo maliciosos.
Se um minerador honesto gerar o primeiro bloco de qualquer janela de ajuste de dificuldade, o ataque desse ciclo falhará.
Comportamentos de ataque são visíveis publicamente na blockchain e podem acionar uma correção de soft fork de emergência.
Soluções potenciais
Para corrigir esta falha, existem várias possíveis soluções:
Modificar o algoritmo de ajuste da dificuldade, calcular a diferença de tempo entre as janelas de 2016 blocos e corrigir erros de cálculo.
Cancelar a regra MTP, exigindo que o tempo de cada bloco deve avançar.
Definir novas regras de limitação: exigir que o tempo do primeiro bloco do novo ciclo de dificuldade não seja anterior a um tempo específico antes do último bloco do ciclo anterior (como 10 minutos ou 2 horas).
Na mais recente proposta de "limpeza do grande consenso", sugere-se a adoção de um limite de tempo de 2 horas. Este limite corresponde a aproximadamente 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo efetivamente limitar o grau de manipulação da dificuldade.
Ao implementar essas melhorias, a rede Bitcoin será capaz de resistir melhor a ataques de distorção temporal, aumentando ainda mais sua segurança e estabilidade.
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.
8 Curtidas
Recompensa
8
6
Compartilhar
Comentário
0/400
LuckyBearDrawer
· 9h atrás
Este bug, falando e falando, não é tão difícil quanto a Dificuldade de mineração.
Ver originalResponder0
MetaverseVagabond
· 9h atrás
Ai mimimi! Já deu problema novamente.
Ver originalResponder0
DataBartender
· 9h atrás
Parece que é mais um bug de nível divino. Vou buscar um banquinho.
Ver originalResponder0
EyeOfTheTokenStorm
· 9h atrás
Ai, alguém está brincando com a data/hora novamente. Curto ou Longo? Não se preocupem, pessoal.
Ver originalResponder0
airdrop_huntress
· 10h atrás
O que está a acontecer novamente? Por que é que se está a falar de máquinas do tempo??
Ver originalResponder0
just_another_wallet
· 10h atrás
Ai, depois de tantos anos de desenvolvimento, as vulnerabilidades aparecem uma após a outra.
Bitcoin enfrenta o risco de ataques de distorção temporal; uma nova proposta pode resolver as vulnerabilidades de segurança.
Bitcoin Segurança Vulnerabilidades: Ataques de Distorção Temporal
Resumo
No dia 26 de março de 2025, um desenvolvedor de Bitcoin propôs uma nova proposta de melhoria, conhecida como o plano de soft fork "Grande Limpeza de Consenso". Esta atualização visa corrigir várias falhas e fraquezas de longa data no protocolo Bitcoin. Uma das vulnerabilidades mais graves é chamada de "ataque de distorção temporal", que é o foco principal deste artigo.
Mecanismo de proteção de timestamp do bloco Bitcoin
Antes de discutir o ataque de distorção temporal, vamos revisar as atuais regras de proteção contra manipulação do tempo:
Regra do tempo mediano passado (MPT): o timestamp do bloco deve ser mais recente do que o tempo mediano dos últimos onze blocos.
Regras de tempo de bloco futuro: com base na constante MAX_FUTURE_BLOCK_TIME, o carimbo de tempo do bloco não pode exceder em mais de 2 horas o tempo médio dos pares do nó. A diferença máxima permitida entre o tempo fornecido pelo nó e o relógio do sistema local é de 90 minutos, como uma outra medida de segurança.
As regras MPT garantem que os blocos não voltem demasiado ao passado, enquanto as regras dos blocos futuros evitam que avancem em demasia para o futuro. É importante notar que não é possível implementar um mecanismo semelhante às regras dos blocos futuros para impedir que os blocos tenham um carimbo de data/hora do passado, pois isso poderia afetar a sincronização inicial da blockchain. O ataque de distorção temporal envolve a falsificação de carimbos de data/hora, fazendo-os voltar muito ao passado.
Erro de cálculo no código original
Existe um pequeno, mas notável erro de cálculo no protocolo Bitcoin. Ao calcular o ajuste da dificuldade de mineração, o protocolo utiliza 2016 blocos como base de cálculo, quando na verdade deveria usar um intervalo de 2015 blocos. Isso resulta em um tempo alvo que é 0,05% mais longo do que o necessário, fazendo com que o intervalo de tempo alvo real para a criação de blocos do Bitcoin seja de 10 minutos e 0,3 segundos, em vez de 10 minutos exatos.
Embora esse erro de 0,3 segundos não tenha um grande impacto no todo, ele está relacionado a outro problema mais sério. O cálculo da dificuldade é baseado no primeiro e no último bloco dentro de cada janela de 2016 blocos, e esse método apresenta falhas. Uma abordagem mais razoável deveria calcular a diferença de tempo entre o último bloco da janela anterior de 2016 blocos e o último bloco da janela atual.
Princípio do ataque de distorção temporal
O ataque de distorção temporal aproveita o erro de cálculo mencionado acima. Em um cenário ideal, supondo que a mineração seja completamente centralizada, o atacante pode manipular o carimbo de tempo do bloco da seguinte forma:
Esta operação fará com que o tempo da blockchain fique progressivamente atrás do tempo real, enquanto a dificuldade continua a aumentar. No entanto, no final de cada ciclo de ajuste de dificuldade, devido ao último bloco usar um carimbo de tempo real, a dificuldade será ajustada para baixo. À medida que o ataque continua, a dificuldade diminuirá drasticamente, permitindo que o atacante crie blocos a uma velocidade extremamente rápida, potencialmente obtendo uma grande quantidade de Bitcoin.
Viabilidade e Desafios do Ataque
Apesar de essa ataque ser teoricamente destrutivo, a sua implementação enfrenta vários desafios:
Soluções potenciais
Para corrigir esta falha, existem várias possíveis soluções:
Na mais recente proposta de "limpeza do grande consenso", sugere-se a adoção de um limite de tempo de 2 horas. Este limite corresponde a aproximadamente 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo efetivamente limitar o grau de manipulação da dificuldade.
Ao implementar essas melhorias, a rede Bitcoin será capaz de resistir melhor a ataques de distorção temporal, aumentando ainda mais sua segurança e estabilidade.