Vulnerabilidade de ataque de distorção temporal do protocolo Bitcoin e sua correção
No dia 26 de março de 2025, os desenvolvedores de Bitcoin propuseram uma proposta de soft fork chamada "Limpeza do Grande Consenso", com o objetivo de corrigir várias vulnerabilidades e fraquezas de longa data no protocolo Bitcoin. Uma das vulnerabilidades mais graves é conhecida como "Ataque de Distorção Temporal", e este artigo irá explorá-la em profundidade.
Mecanismo de proteção de timestamp de bloco do Bitcoin
Antes de discutir ataques de distorção temporal, precisamos entender as atuais regras de proteção contra manipulação do tempo:
Tempo mediano passado (MPT) regra: O timestamp do bloco deve ser posterior ao tempo mediano dos 11 blocos anteriores.
Regras de tempo de bloco futuro: o carimbo de data/hora do bloco não pode estar mais de 2 horas à frente do 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.
Estas regras visam garantir que o carimbo de tempo do bloco não fique demasiado atrasado nem demasiado adiantado. No entanto, o ataque de distorção temporal é precisamente alcançado através da falsificação de carimbos de tempo, fazendo com que retrocedam muito no passado.
O erro "falta um" de Satoshi Nakamoto
O período de ajuste da dificuldade do Bitcoin contém 2016 blocos, calculando-se com um objetivo de bloco de 10 minutos, o que equivale a cerca de duas semanas. Ao calcular o ajuste da dificuldade de mineração, o protocolo calcula a diferença de timestamp entre o primeiro e o último bloco na janela de 2016 blocos relevante. No entanto, Satoshi Nakamoto cometeu um pequeno erro ao calcular o tempo alvo: ele usou 2016 em vez de 2015 como multiplicador.
Este erro fez com que o tempo alvo fosse 0,05% mais longo do que o que deveria ser, resultando em um intervalo de tempo real para a Bitcoin de 10 minutos e 0,3 segundos. Embora esse erro pareça insignificante, ele semeou as bases para falhas mais sérias.
Princípio do ataque de distorção temporal
O ataque de distorção temporal aproveita o erro de Satoshi Nakamoto no cálculo da dificuldade. O atacante manipula os carimbos de tempo dos blocos, fazendo com que a blockchain avance lentamente no tempo, enquanto cumpre as regras do MTP. Especificamente, o atacante pode:
Para a maioria dos blocos, defina o carimbo de data/hora para um segundo antes do bloco anterior.
A cada seis blocos, o carimbo de tempo é avançado um segundo.
No último bloco de cada ciclo de ajuste de dificuldade, defina o carimbo de data/hora para o tempo do mundo real.
O timestamp do primeiro bloco do próximo ciclo de ajuste de dificuldade volta novamente ao passado.
Esta operação leva a que o tempo da blockchain fique cada vez mais atrasado em relação ao tempo real, enquanto a dificuldade continua a aumentar. No entanto, após o segundo ciclo de ajuste, a dificuldade começará a descer, permitindo que os atacantes criem blocos a uma velocidade muito rápida, potencialmente criando uma grande quantidade de Bitcoin.
Viabilidade e Limitações do Ataque
Embora essa ataque tenha um potencial destrutivo em teoria, na prática enfrenta muitos desafios:
É necessário controlar a maior parte do poder de cálculo.
A presença de mineradores honestos aumentará a dificuldade de ataque.
As regras MTP e o carimbo de data/hora dos mineradores honestos limitam o grau de retrocesso dos carimbos de data/hora maliciosos.
O processo de ataque pode ser observado publicamente, dando à comunidade tempo para realizar reparos de emergência.
Solução
Para prevenir ataques de distorção temporal, a proposta sugere adicionar uma regra simples no início de um novo ciclo de dificuldade: requerer que o tempo do primeiro bloco do novo ciclo não seja anterior a um período de tempo específico antes do último bloco do ciclo anterior. O período de tempo atualmente discutido varia entre 10 minutos e 2 horas.
Na mais recente proposta de limpeza do grande consenso, este período foi definido como 2 horas. Esta limitação representa apenas 0,6% do tempo alvo do ciclo de ajuste de dificuldade, limitando efetivamente a capacidade de manipular a dificuldade para baixo.
Este método é mais simples do que modificar diretamente o algoritmo de ajuste de dificuldade e não requer um hard fork. Ele pode efetivamente prevenir ataques de distorção do tempo, minimizando o risco de blocos inválidos inesperados, enquanto mantém a conformidade com as regras atuais de carimbo de tempo dos futuros blocos.
Ao implementar esta correção, a rede Bitcoin será capaz de resistir melhor a potenciais ataques de manipulação de tempo, aumentando ainda mais a sua segurança e estabilidade.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
13 gostos
Recompensa
13
4
Partilhar
Comentar
0/400
SchrodingerWallet
· 7h atrás
Vulnerabilidade corrigida, de forma simples e direta.
Ver originalResponder0
DefiEngineerJack
· 7h atrás
*na verdade* outro patch de segurança não trivial que prova a superioridade do pow... já vi exploits piores no pos, para ser honesto
Ver originalResponder0
ProbablyNothing
· 8h atrás
btc corrigiu a vulnerabilidade, agora está seguro, certo?
Ver originalResponder0
MemecoinResearcher
· 8h atrás
correção de protocolo baseado, mas podemos obter significância estatística?
Correção de vulnerabilidade de ataque de distorção de tempo do protocolo Bitcoin: Análise da proposta de limpeza do Consenso
Vulnerabilidade de ataque de distorção temporal do protocolo Bitcoin e sua correção
No dia 26 de março de 2025, os desenvolvedores de Bitcoin propuseram uma proposta de soft fork chamada "Limpeza do Grande Consenso", com o objetivo de corrigir várias vulnerabilidades e fraquezas de longa data no protocolo Bitcoin. Uma das vulnerabilidades mais graves é conhecida como "Ataque de Distorção Temporal", e este artigo irá explorá-la em profundidade.
Mecanismo de proteção de timestamp de bloco do Bitcoin
Antes de discutir ataques de distorção temporal, precisamos entender as atuais regras de proteção contra manipulação do tempo:
Tempo mediano passado (MPT) regra: O timestamp do bloco deve ser posterior ao tempo mediano dos 11 blocos anteriores.
Regras de tempo de bloco futuro: o carimbo de data/hora do bloco não pode estar mais de 2 horas à frente do 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.
Estas regras visam garantir que o carimbo de tempo do bloco não fique demasiado atrasado nem demasiado adiantado. No entanto, o ataque de distorção temporal é precisamente alcançado através da falsificação de carimbos de tempo, fazendo com que retrocedam muito no passado.
O erro "falta um" de Satoshi Nakamoto
O período de ajuste da dificuldade do Bitcoin contém 2016 blocos, calculando-se com um objetivo de bloco de 10 minutos, o que equivale a cerca de duas semanas. Ao calcular o ajuste da dificuldade de mineração, o protocolo calcula a diferença de timestamp entre o primeiro e o último bloco na janela de 2016 blocos relevante. No entanto, Satoshi Nakamoto cometeu um pequeno erro ao calcular o tempo alvo: ele usou 2016 em vez de 2015 como multiplicador.
Este erro fez com que o tempo alvo fosse 0,05% mais longo do que o que deveria ser, resultando em um intervalo de tempo real para a Bitcoin de 10 minutos e 0,3 segundos. Embora esse erro pareça insignificante, ele semeou as bases para falhas mais sérias.
Princípio do ataque de distorção temporal
O ataque de distorção temporal aproveita o erro de Satoshi Nakamoto no cálculo da dificuldade. O atacante manipula os carimbos de tempo dos blocos, fazendo com que a blockchain avance lentamente no tempo, enquanto cumpre as regras do MTP. Especificamente, o atacante pode:
Esta operação leva a que o tempo da blockchain fique cada vez mais atrasado em relação ao tempo real, enquanto a dificuldade continua a aumentar. No entanto, após o segundo ciclo de ajuste, a dificuldade começará a descer, permitindo que os atacantes criem blocos a uma velocidade muito rápida, potencialmente criando uma grande quantidade de Bitcoin.
Viabilidade e Limitações do Ataque
Embora essa ataque tenha um potencial destrutivo em teoria, na prática enfrenta muitos desafios:
Solução
Para prevenir ataques de distorção temporal, a proposta sugere adicionar uma regra simples no início de um novo ciclo de dificuldade: requerer que o tempo do primeiro bloco do novo ciclo não seja anterior a um período de tempo específico antes do último bloco do ciclo anterior. O período de tempo atualmente discutido varia entre 10 minutos e 2 horas.
Na mais recente proposta de limpeza do grande consenso, este período foi definido como 2 horas. Esta limitação representa apenas 0,6% do tempo alvo do ciclo de ajuste de dificuldade, limitando efetivamente a capacidade de manipular a dificuldade para baixo.
Este método é mais simples do que modificar diretamente o algoritmo de ajuste de dificuldade e não requer um hard fork. Ele pode efetivamente prevenir ataques de distorção do tempo, minimizando o risco de blocos inválidos inesperados, enquanto mantém a conformidade com as regras atuais de carimbo de tempo dos futuros blocos.
Ao implementar esta correção, a rede Bitcoin será capaz de resistir melhor a potenciais ataques de manipulação de tempo, aumentando ainda mais a sua segurança e estabilidade.