Análise da vulnerabilidade do ataque de distorção temporal do Bitcoin
Em 26 de março de 2025, os desenvolvedores do Bitcoin propuseram uma proposta de soft fork chamada "Grande Limpeza de Consenso". Esta proposta visa corrigir várias vulnerabilidades e fraquezas que existem no protocolo do Bitcoin há muito tempo, incluindo o problema de transações duplicadas que discutimos anteriormente, bem como a vulnerabilidade de "Ataque de Distorção Temporal" que este artigo abordará em maior detalhe.
Mecanismo de proteção de timestamp de bloco do Bitcoin
Antes de discutir o ataque de distorção temporal, precisamos entender as regras atuais de proteção contra manipulação de tempo:
Tempo mediano passado (MPT) regra: o carimbo de data/hora do bloco deve ser posterior ao tempo mediano dos últimos onze blocos.
Regras de tempo de bloco futuro: o timestamp do bloco não deve exceder 2 horas acima da mediana do tempo dos pares de nós. 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 timestamps dos blocos sejam excessivamente retroativos, enquanto as regras dos blocos futuros limitam os timestamps a não serem antecipados em demasia. É importante notar que não é possível implementar mecanismos semelhantes às regras dos blocos futuros para impedir timestamps passados, pois isso poderia afetar a sincronização inicial da blockchain. Os ataques de distorção de tempo exploram precisamente a possibilidade de forjar timestamps antigos.
O erro "quase" de Satoshi Nakamoto
O ciclo de ajuste de dificuldade do Bitcoin contém 2016 blocos, o que equivale a aproximadamente duas semanas, calculado com um objetivo de 10 minutos por bloco. Ao calcular o ajuste de dificuldade, o protocolo compara a diferença de timestamp entre o primeiro e o último bloco na janela de 2016 blocos relevante. Esta janela realmente contém 2015 intervalos de blocos (ou seja, 2016 menos 1). Portanto, teoricamente, deve-se usar 60 segundos * 10 minutos * 2015 intervalos = 1.209.000 segundos como tempo alvo. No entanto, o protocolo do Bitcoin utilizou o número 2016, resultando em 60 segundos * 10 minutos * 2016 = 1.209.600 segundos. Este é um típico erro de um a menos, que pode ter surgido da confusão de Satoshi Nakamoto entre o número de blocos e o número de intervalos de blocos.
Este erro faz com que o tempo alvo seja 0,05% maior do que deveria, na prática, aumentando ligeiramente o tempo alvo de bloqueio do Bitcoin para 10 minutos e 0,3 segundos. Embora este erro pareça insignificante, ele está relacionado a outro problema mais sério.
Princípio do ataque de distorção do tempo
O ataque de distorção do tempo foi descoberto pela primeira vez em 2011, explorando um erro de Satoshi Nakamoto no cálculo da dificuldade. Os atacantes podem manipular os carimbos de tempo dos blocos para reduzir artificialmente a dificuldade de mineração.
Os passos do ataque são os seguintes:
Para a maioria dos blocos, defina o carimbo de data/hora para avançar apenas 1 segundo em relação ao bloco anterior.
A cada seis blocos, mantenha o mesmo carimbo de tempo e, em seguida, aumente 1 segundo, para cumprir as regras do MPT.
No último bloco de cada período de ajuste de dificuldade, definir o carimbo de data/hora para o tempo do mundo real.
O timestamp do primeiro bloco do próximo ciclo retorna ao passado, 1 segundo antes do penúltimo bloco do ciclo anterior.
Esta operação fará com que o tempo da blockchain fique cada vez mais atrasado em relação ao tempo real, enquanto a dificuldade aumenta constantemente. No entanto, a partir do segundo ciclo de ajuste, a dificuldade começará a diminuir. Os atacantes podem aproveitar este mecanismo para criar rapidamente um grande número de blocos e obter recompensas em Bitcoin em excesso.
Viabilidade e Limitações do Ataque
Apesar de teoricamente este tipo de ataque ter um grande impacto, a sua implementação enfrenta alguns desafios:
É necessário controlar a maior parte da capacidade de cálculo da rede.
A presença de mineradores honestos aumentará a dificuldade de ataque.
As regras MTP e o timestamp honesto limitam o grau de retrocesso de timestamps maliciosos.
Se um minerador honesto gerar o primeiro bloco da janela de ajuste de dificuldade, o ataque desse período falhará.
O processo de ataque é visível para todos e pode desencadear uma correção de soft fork de emergência.
Potenciais soluções
Existem várias maneiras de corrigir esta vulnerabilidade:
Mudar o algoritmo de ajuste de dificuldade, calcular a diferença de tempo entre as janelas de 2016 e corrigir o erro de diferença de um. Mas isso pode exigir um fork duro.
Cancelar a regra MTP, exigindo que o tempo se mova para frente em cada bloco. Mas isso pode levar a um tempo preso em um futuro distante, ou causar problemas devido a diferenças no relógio do sistema.
Uma solução mais simples é exigir que o tempo do primeiro bloco do novo período de dificuldade não seja anterior a um número específico de minutos do último bloco do período anterior. O intervalo de tempo atualmente discutido varia de 10 minutos a 2 horas.
Na mais recente proposta de limpeza do grande consenso, os desenvolvedores sugerem a adoção de um limite de 2 horas. Este período de tempo é aproximadamente 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo limitar efetivamente o espaço para manipulação da dificuldade para baixo.
Independentemente da solução final adotada, corrigir esta vulnerabilidade irá reforçar ainda mais a segurança e a estabilidade da rede Bitcoin.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
24 gostos
Recompensa
24
8
Partilhar
Comentar
0/400
BlockTalk
· 07-27 22:15
Não é à toa que é o velho btc, tão forte.
Ver originalResponder0
defi_detective
· 07-27 08:59
Divertido! É uma viagem no tempo, certo?
Ver originalResponder0
DecentralizeMe
· 07-27 07:12
Quem vem por causa do BTC é que é o verdadeiro chefe, não é?
Ver originalResponder0
VibesOverCharts
· 07-24 22:46
Ficar a mexer o dia todo é apenas um desperdício de eletricidade.
Ver originalResponder0
CommunityJanitor
· 07-24 22:44
Quem me pode explicar o que é distorção do tempo?
Ver originalResponder0
MetaReckt
· 07-24 22:33
btc está firme como uma rocha!
Ver originalResponder0
UncleLiquidation
· 07-24 22:30
Puxar o tapete倒计时~
Ver originalResponder0
failed_dev_successful_ape
· 07-24 22:29
Mineiro pro 666 ah jogar tempo ainda pode jogar flores
Análise da vulnerabilidade do ataque de distorção temporal do Bitcoin: princípio, impacto e soluções de reparação
Análise da vulnerabilidade do ataque de distorção temporal do Bitcoin
Em 26 de março de 2025, os desenvolvedores do Bitcoin propuseram uma proposta de soft fork chamada "Grande Limpeza de Consenso". Esta proposta visa corrigir várias vulnerabilidades e fraquezas que existem no protocolo do Bitcoin há muito tempo, incluindo o problema de transações duplicadas que discutimos anteriormente, bem como a vulnerabilidade de "Ataque de Distorção Temporal" que este artigo abordará em maior detalhe.
Mecanismo de proteção de timestamp de bloco do Bitcoin
Antes de discutir o ataque de distorção temporal, precisamos entender as regras atuais de proteção contra manipulação de tempo:
Tempo mediano passado (MPT) regra: o carimbo de data/hora do bloco deve ser posterior ao tempo mediano dos últimos onze blocos.
Regras de tempo de bloco futuro: o timestamp do bloco não deve exceder 2 horas acima da mediana do tempo dos pares de nós. 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 timestamps dos blocos sejam excessivamente retroativos, enquanto as regras dos blocos futuros limitam os timestamps a não serem antecipados em demasia. É importante notar que não é possível implementar mecanismos semelhantes às regras dos blocos futuros para impedir timestamps passados, pois isso poderia afetar a sincronização inicial da blockchain. Os ataques de distorção de tempo exploram precisamente a possibilidade de forjar timestamps antigos.
O erro "quase" de Satoshi Nakamoto
O ciclo de ajuste de dificuldade do Bitcoin contém 2016 blocos, o que equivale a aproximadamente duas semanas, calculado com um objetivo de 10 minutos por bloco. Ao calcular o ajuste de dificuldade, o protocolo compara a diferença de timestamp entre o primeiro e o último bloco na janela de 2016 blocos relevante. Esta janela realmente contém 2015 intervalos de blocos (ou seja, 2016 menos 1). Portanto, teoricamente, deve-se usar 60 segundos * 10 minutos * 2015 intervalos = 1.209.000 segundos como tempo alvo. No entanto, o protocolo do Bitcoin utilizou o número 2016, resultando em 60 segundos * 10 minutos * 2016 = 1.209.600 segundos. Este é um típico erro de um a menos, que pode ter surgido da confusão de Satoshi Nakamoto entre o número de blocos e o número de intervalos de blocos.
Este erro faz com que o tempo alvo seja 0,05% maior do que deveria, na prática, aumentando ligeiramente o tempo alvo de bloqueio do Bitcoin para 10 minutos e 0,3 segundos. Embora este erro pareça insignificante, ele está relacionado a outro problema mais sério.
Princípio do ataque de distorção do tempo
O ataque de distorção do tempo foi descoberto pela primeira vez em 2011, explorando um erro de Satoshi Nakamoto no cálculo da dificuldade. Os atacantes podem manipular os carimbos de tempo dos blocos para reduzir artificialmente a dificuldade de mineração.
Os passos do ataque são os seguintes:
Esta operação fará com que o tempo da blockchain fique cada vez mais atrasado em relação ao tempo real, enquanto a dificuldade aumenta constantemente. No entanto, a partir do segundo ciclo de ajuste, a dificuldade começará a diminuir. Os atacantes podem aproveitar este mecanismo para criar rapidamente um grande número de blocos e obter recompensas em Bitcoin em excesso.
Viabilidade e Limitações do Ataque
Apesar de teoricamente este tipo de ataque ter um grande impacto, a sua implementação enfrenta alguns desafios:
Potenciais soluções
Existem várias maneiras de corrigir esta vulnerabilidade:
Mudar o algoritmo de ajuste de dificuldade, calcular a diferença de tempo entre as janelas de 2016 e corrigir o erro de diferença de um. Mas isso pode exigir um fork duro.
Cancelar a regra MTP, exigindo que o tempo se mova para frente em cada bloco. Mas isso pode levar a um tempo preso em um futuro distante, ou causar problemas devido a diferenças no relógio do sistema.
Uma solução mais simples é exigir que o tempo do primeiro bloco do novo período de dificuldade não seja anterior a um número específico de minutos do último bloco do período anterior. O intervalo de tempo atualmente discutido varia de 10 minutos a 2 horas.
Na mais recente proposta de limpeza do grande consenso, os desenvolvedores sugerem a adoção de um limite de 2 horas. Este período de tempo é aproximadamente 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo limitar efetivamente o espaço para manipulação da dificuldade para baixo.
Independentemente da solução final adotada, corrigir esta vulnerabilidade irá reforçar ainda mais a segurança e a estabilidade da rede Bitcoin.