Vulnerabilidade de ataque de distorção temporal no protocolo Bitcoin
Os desenvolvedores de Bitcoin, Antoine Poinsot, propuseram uma nova proposta de melhoria em 26 de março de 2025, com o objetivo de corrigir várias falhas e fraquezas de longa data no protocolo Bitcoin através de um soft fork. Esta proposta, conhecida como "Limpeza do Grande Consenso", não só resolve o problema de transações duplicadas que foi discutido anteriormente, mas também apresenta uma solução para uma falha mais séria - o "Ataque de Distorção Temporal".
Mecanismo de proteção de timestamp do Bitcoin
Antes de discutir o ataque de distorção temporal, vamos revisar as regras atuais de proteção contra manipulação temporal do Bitcoin:
Regra do tempo mediano passado (MPT): o carimbo de data/hora do bloco deve ser posterior ao tempo mediano dos 11 blocos anteriores.
Regras de tempo de bloco no futuro: o timestamp do bloco não pode exceder o tempo médio dos pares de nós em mais de 2 horas. Além disso, a diferença máxima permitida entre o tempo do nó e o relógio do sistema local é de 90 minutos.
Estas regras têm como objetivo prevenir que os timestamps dos blocos se desviem demasiado do tempo real, seja para o passado ou para o futuro. No entanto, o ataque de distorção temporal é realizado através da falsificação de timestamps que estão muito à frente do tempo real.
O erro "um a menos" de Satoshi Nakamoto
O período de ajuste de dificuldade do Bitcoin inclui 2016 blocos, o que teoricamente equivale a cerca de duas semanas. Ao calcular o ajuste da dificuldade de mineração, o protocolo calcula a diferença de timestamps entre o primeiro e o último bloco desses 2016 blocos. No entanto, esses 2016 blocos na verdade contêm apenas 2015 intervalos de blocos. O tempo alvo correto deveria ser 60 segundos × 10 minutos × 2015 = 1,209,000 segundos, mas o protocolo do Bitcoin usa o número 2016, resultando em um tempo calculado de 1,209,600 segundos. Esse pequeno erro faz com que o tempo alvo seja 0,05% mais longo do que deveria ser.
Embora esse erro pareça insignificante, ele levanta uma questão mais séria. O cálculo de 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 de tempo.
Princípio do ataque de distorção temporal
O ataque de distorção do tempo foi descoberto pela primeira vez em 2011. Neste tipo de ataque, assume-se que a mineração é completamente centralizada, e os mineradores podem definir os timestamps à vontade, dentro dos limites permitidos pelo protocolo. O atacante ajusta os timestamps da maioria dos blocos para serem apenas um segundo à frente do bloco anterior, ou avança um segundo apenas a cada seis blocos, de modo a avançar o tempo o mais lentamente possível.
Esta operação fará com que o tempo da blockchain fique progressivamente atrás do tempo real, enquanto a dificuldade continua a aumentar. Para reforçar o efeito do ataque, no último bloco de cada período de ajuste de dificuldade, o atacante ajustará o carimbo de data/hora para o tempo do mundo real. O primeiro bloco do próximo período será então definido para um momento no passado, um segundo antes do penúltimo bloco do período anterior.
Desta forma, o atacante pode reduzir significativamente a dificuldade de mineração após o segundo ciclo de ajuste, permitindo criar blocos a uma velocidade muito rápida e obter uma grande quantidade de Bitcoin.
Viabilidade e Desafios do Ataque
Embora teoricamente esse tipo de ataque possa ter graves consequências, a sua implementação real enfrenta múltiplos desafios:
É necessário controlar a maior parte da potência de cálculo.
A existência de mineradores honestos aumentará a dificuldade de ataque.
As regras MTP e o carimbo de tempo honesto 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á.
O processo de ataque é visível para todos e pode desencadear uma correção de soft fork de emergência.
Solução
Existem várias maneiras de corrigir esta vulnerabilidade:
Alterar o algoritmo de ajuste de dificuldade, calcular o intervalo de tempo entre os blocos de diferentes janelas de 2016 e corrigir o erro de "um a menos".
Cancelar a regra MTP, exigindo que o tempo de cada bloco deve avançar.
Definir novas regras de limite, exigindo que o tempo do primeiro bloco do novo ciclo de dificuldade não seja anterior a um número específico de minutos do último bloco do ciclo anterior.
A proposta de "limpeza do grande consenso" de Poinsot adotou um terceiro método, sugerindo um limite de tempo de 2 horas. Esta solução pode efetivamente mitigar ataques de distorção de tempo e, ao mesmo tempo, minimizar o risco de geração acidental de blocos inválidos.
De um modo geral, a comunidade Bitcoin está a responder ativamente a esta ameaça potencial, aprimorando continuamente o protocolo através de soft forks, para garantir a segurança e a estabilidade a longo prazo da rede.
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.
14 gostos
Recompensa
14
5
Partilhar
Comentar
0/400
SatoshiSherpa
· 07-14 18:42
Consertar bugs realmente é como consertar bugs.
Ver originalResponder0
FUD_Whisperer
· 07-14 18:38
Já corrigiu o bug? Já era tempo de o fazer.
Ver originalResponder0
OldLeekConfession
· 07-14 18:38
Este bug já foi corrigido há 4 anos?
Ver originalResponder0
GweiWatcher
· 07-14 18:35
Este bug já devia ter sido corrigido há muito tempo, não consigo mais assistir a isso.
Ver originalResponder0
PumpingCroissant
· 07-14 18:34
Só em 2025 é que irá ser corrigido. Este bug vai demorar muito a ser resolvido.
Bitcoin pretende corrigir a vulnerabilidade de ataque de distorção de tempo, com um plano de Soft Fork à vista.
Vulnerabilidade de ataque de distorção temporal no protocolo Bitcoin
Os desenvolvedores de Bitcoin, Antoine Poinsot, propuseram uma nova proposta de melhoria em 26 de março de 2025, com o objetivo de corrigir várias falhas e fraquezas de longa data no protocolo Bitcoin através de um soft fork. Esta proposta, conhecida como "Limpeza do Grande Consenso", não só resolve o problema de transações duplicadas que foi discutido anteriormente, mas também apresenta uma solução para uma falha mais séria - o "Ataque de Distorção Temporal".
Mecanismo de proteção de timestamp do Bitcoin
Antes de discutir o ataque de distorção temporal, vamos revisar as regras atuais de proteção contra manipulação temporal do Bitcoin:
Regra do tempo mediano passado (MPT): o carimbo de data/hora do bloco deve ser posterior ao tempo mediano dos 11 blocos anteriores.
Regras de tempo de bloco no futuro: o timestamp do bloco não pode exceder o tempo médio dos pares de nós em mais de 2 horas. Além disso, a diferença máxima permitida entre o tempo do nó e o relógio do sistema local é de 90 minutos.
Estas regras têm como objetivo prevenir que os timestamps dos blocos se desviem demasiado do tempo real, seja para o passado ou para o futuro. No entanto, o ataque de distorção temporal é realizado através da falsificação de timestamps que estão muito à frente do tempo real.
O erro "um a menos" de Satoshi Nakamoto
O período de ajuste de dificuldade do Bitcoin inclui 2016 blocos, o que teoricamente equivale a cerca de duas semanas. Ao calcular o ajuste da dificuldade de mineração, o protocolo calcula a diferença de timestamps entre o primeiro e o último bloco desses 2016 blocos. No entanto, esses 2016 blocos na verdade contêm apenas 2015 intervalos de blocos. O tempo alvo correto deveria ser 60 segundos × 10 minutos × 2015 = 1,209,000 segundos, mas o protocolo do Bitcoin usa o número 2016, resultando em um tempo calculado de 1,209,600 segundos. Esse pequeno erro faz com que o tempo alvo seja 0,05% mais longo do que deveria ser.
Embora esse erro pareça insignificante, ele levanta uma questão mais séria. O cálculo de 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 de tempo.
Princípio do ataque de distorção temporal
O ataque de distorção do tempo foi descoberto pela primeira vez em 2011. Neste tipo de ataque, assume-se que a mineração é completamente centralizada, e os mineradores podem definir os timestamps à vontade, dentro dos limites permitidos pelo protocolo. O atacante ajusta os timestamps da maioria dos blocos para serem apenas um segundo à frente do bloco anterior, ou avança um segundo apenas a cada seis blocos, de modo a avançar o tempo o mais lentamente possível.
Esta operação fará com que o tempo da blockchain fique progressivamente atrás do tempo real, enquanto a dificuldade continua a aumentar. Para reforçar o efeito do ataque, no último bloco de cada período de ajuste de dificuldade, o atacante ajustará o carimbo de data/hora para o tempo do mundo real. O primeiro bloco do próximo período será então definido para um momento no passado, um segundo antes do penúltimo bloco do período anterior.
Desta forma, o atacante pode reduzir significativamente a dificuldade de mineração após o segundo ciclo de ajuste, permitindo criar blocos a uma velocidade muito rápida e obter uma grande quantidade de Bitcoin.
Viabilidade e Desafios do Ataque
Embora teoricamente esse tipo de ataque possa ter graves consequências, a sua implementação real enfrenta múltiplos desafios:
Solução
Existem várias maneiras de corrigir esta vulnerabilidade:
A proposta de "limpeza do grande consenso" de Poinsot adotou um terceiro método, sugerindo um limite de tempo de 2 horas. Esta solução pode efetivamente mitigar ataques de distorção de tempo e, ao mesmo tempo, minimizar o risco de geração acidental de blocos inválidos.
De um modo geral, a comunidade Bitcoin está a responder ativamente a esta ameaça potencial, aprimorando continuamente o protocolo através de soft forks, para garantir a segurança e a estabilidade a longo prazo da rede.