Bitcoin corrige vulnerabilidade: o problema do ataque de distorção temporal será resolvido
No dia 26 de março de 2025, um desenvolvedor de Bitcoin propôs uma nova proposta de melhoria destinada a corrigir vários bugs e fraquezas que existem há muito no protocolo Bitcoin. Esta proposta de soft fork, conhecida como "Limpeza do Grande Consenso", além de resolver o problema das transações duplicadas, também corrigirá uma vulnerabilidade mais séria - "Ataque de Distorção Temporal".
Mecanismo de proteção de timestamp do bloco do Bitcoin
Antes de discutir os ataques de distorção temporal, vamos primeiro revisar as atuais regras de proteção contra manipulação temporal:
Tempo mediano passado (MPT) regra: o timestamp do bloco deve ser posterior ao tempo mediano dos últimos onze blocos.
Regras futuras de tempo de bloco: O timestamp do bloco não pode estar mais de 2 horas à frente do tempo médio 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 impedem que os timestamps dos blocos sejam demasiado retroativos, enquanto as regras dos blocos futuros evitam que os timestamps sejam demasiado antecipados. É importante notar que não é possível implementar regras semelhantes às dos blocos futuros para impedir timestamps do passado, pois isso poderia afetar a sincronização inicial da blockchain. O ataque de distorção do tempo é realizado precisamente através da falsificação de timestamps que retrocedem muito.
Erro de cálculo de Satoshi Nakamoto
O ciclo de ajuste de dificuldade do Bitcoin contém 2016 blocos, calculado com um objetivo de bloco de 10 minutos, aproximadamente duas semanas. Para 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. Esta janela contém na verdade 2015 intervalos de bloco (2016 menos 1). Portanto, o tempo alvo correto deve ser 60 segundos × 10 minutos × 2015 intervalos = 1,209,000 segundos.
No entanto, o protocolo Bitcoin usou o número 2016 para calcular a meta. 60 segundos × 10 minutos × 2016 = 1,209,600 segundos. Este é um erro de "um a menos", provavelmente causado pela confusão de Satoshi Nakamoto entre o conceito de bloco e o intervalo entre blocos.
Este erro faz com que o tempo alvo seja 0,05% mais longo do que deveria. Na verdade, o intervalo de tempo alvo do Bitcoin não é 10 minutos, mas sim 10 minutos e 0,3 segundos. Esse pequeno erro não é importante, de fato, desde o nascimento do Bitcoin, o intervalo médio entre blocos tem sido de 9 minutos e 36 segundos, claramente inferior a 10 minutos. Isso se deve ao fato de que, desde 2009, a potência de cálculo média tem aumentado.
Ataque de Distorção Temporal
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. Neste tipo de ataque, assume-se que a mineração é completamente centralizada, e os mineradores podem definir qualquer timestamp permitido pelo protocolo. O atacante configuraria o timestamp da maioria dos blocos para ser apenas um segundo antes do bloco anterior, fazendo com que a blockchain avance lentamente no tempo, enquanto cumpre as regras do MTP.
Para avançar o tempo o mais lentamente possível, os mineradores podem manter o mesmo carimbo de tempo em seis blocos consecutivos e, em seguida, aumentar o tempo em um segundo no próximo bloco, repetindo assim o ciclo. Isso significa que o carimbo de tempo do bloco avança apenas um segundo a cada seis blocos.
Este ataque fará com que a blockchain fique cada vez mais atrasada em relação ao tempo real, aumentando a dificuldade e tornando a mineração mais difícil. No entanto, para aumentar o efeito do ataque, no último bloco de cada período de ajuste de dificuldade, os mineradores definirão o carimbo de data/hora para o tempo do mundo real. O próximo bloco (, que é o primeiro bloco da nova janela de ajuste de dificuldade ), será então redefinido para o passado, um segundo antes do penúltimo bloco da janela de ajuste de dificuldade anterior. Isso ainda está de acordo com as regras MTP, uma vez que uma única anomalia não afetará a mediana dos 11 blocos.
Ao realizar esse tipo de ataque, a dificuldade após o primeiro ciclo não será afetada. No entanto, após o segundo ciclo de ajuste após o início do ataque, a dificuldade começará a ajustar-se para baixo. Em seguida, os mineradores poderão criar blocos a uma velocidade muito rápida, possivelmente gerando uma grande quantidade de Bitcoin, e depois vender para lucrar.
Viabilidade de Ataque e Soluções
Embora, em teoria, esse tipo de ataque possa ter consequências devastadoras, existem alguns desafios para sua implementação. A execução do ataque pode exigir o controle da maior parte do poder de computação. Se houver mineradores honestos inserindo carimbos de data/hora reais, a dificuldade do ataque aumentará significativamente. As regras MTP e os carimbos de data/hora dos mineradores honestos podem limitar o grau em que mineradores maliciosos podem manipular os carimbos de data/hora. Além disso, se um minerador honesto gerar o primeiro bloco de qualquer janela de ajuste de dificuldade, o ataque naquele ciclo não terá efeito.
Outro fator que pode tornar o ataque mais difícil de executar é que ele é visível para todos. Qualquer pessoa pode ver as anomalias nos timestamps, e antes que a dificuldade seja ajustada para baixo, é necessário manipular os timestamps ao redor, o que pode nos dar tempo para lançar uma correção de soft fork de emergência.
Para resolver essa vulnerabilidade, os desenvolvedores propuseram uma solução relativamente simples. A nova proposta exige que o tempo do primeiro bloco do novo ciclo de dificuldade não seja anterior a um número específico de minutos antes do último bloco do ciclo anterior. O intervalo de tempo atualmente discutido varia de 10 minutos a 2 horas. Na mais recente proposta de limpeza do grande consenso, esse tempo foi definido como 2 horas.
Esta limitação de 2 horas representa apenas cerca de 0,6% do tempo alvo do ciclo de ajuste de dificuldade, limitando assim significativamente a capacidade de manipular a dificuldade para baixo. Esta modificação previne eficazmente ataques de distorção temporal e minimiza o risco de gerar blocos inválidos acidentalmente, ao mesmo tempo que se mantém consistente com as regras atuais de carimbo de tempo dos blocos futuros.
Ao implementar esta melhoria, a rede Bitcoin será capaz de resistir melhor a potenciais ataques de distorção temporal, aumentando ainda mais a 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.
18 Curtidas
Recompensa
18
4
Compartilhar
Comentário
0/400
TokenGuru
· 9h atrás
bull, o projeto antigo btc ainda está corrigindo bugs a sério, ao contrário de alguns altcoins.
Ver originalResponder0
LootboxPhobia
· 07-30 16:54
Mais uma vulnerabilidade corrigida, quase me matei de susto.
Ver originalResponder0
DaoResearcher
· 07-30 16:38
Em suma, com base na teoria da governança 3.0, esta proposta apresenta falhas sistêmicas.
Ver originalResponder0
defi_detective
· 07-30 16:37
Espera, qual é o princípio disso? Não consigo entender. Irmão, pode explicar?
Bitcoin vai corrigir a vulnerabilidade do ataque de distorção temporal, melhorando a segurança da rede.
Bitcoin corrige vulnerabilidade: o problema do ataque de distorção temporal será resolvido
No dia 26 de março de 2025, um desenvolvedor de Bitcoin propôs uma nova proposta de melhoria destinada a corrigir vários bugs e fraquezas que existem há muito no protocolo Bitcoin. Esta proposta de soft fork, conhecida como "Limpeza do Grande Consenso", além de resolver o problema das transações duplicadas, também corrigirá uma vulnerabilidade mais séria - "Ataque de Distorção Temporal".
Mecanismo de proteção de timestamp do bloco do Bitcoin
Antes de discutir os ataques de distorção temporal, vamos primeiro revisar as atuais regras de proteção contra manipulação temporal:
Tempo mediano passado (MPT) regra: o timestamp do bloco deve ser posterior ao tempo mediano dos últimos onze blocos.
Regras futuras de tempo de bloco: O timestamp do bloco não pode estar mais de 2 horas à frente do tempo médio 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 impedem que os timestamps dos blocos sejam demasiado retroativos, enquanto as regras dos blocos futuros evitam que os timestamps sejam demasiado antecipados. É importante notar que não é possível implementar regras semelhantes às dos blocos futuros para impedir timestamps do passado, pois isso poderia afetar a sincronização inicial da blockchain. O ataque de distorção do tempo é realizado precisamente através da falsificação de timestamps que retrocedem muito.
Erro de cálculo de Satoshi Nakamoto
O ciclo de ajuste de dificuldade do Bitcoin contém 2016 blocos, calculado com um objetivo de bloco de 10 minutos, aproximadamente duas semanas. Para 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. Esta janela contém na verdade 2015 intervalos de bloco (2016 menos 1). Portanto, o tempo alvo correto deve ser 60 segundos × 10 minutos × 2015 intervalos = 1,209,000 segundos.
No entanto, o protocolo Bitcoin usou o número 2016 para calcular a meta. 60 segundos × 10 minutos × 2016 = 1,209,600 segundos. Este é um erro de "um a menos", provavelmente causado pela confusão de Satoshi Nakamoto entre o conceito de bloco e o intervalo entre blocos.
Este erro faz com que o tempo alvo seja 0,05% mais longo do que deveria. Na verdade, o intervalo de tempo alvo do Bitcoin não é 10 minutos, mas sim 10 minutos e 0,3 segundos. Esse pequeno erro não é importante, de fato, desde o nascimento do Bitcoin, o intervalo médio entre blocos tem sido de 9 minutos e 36 segundos, claramente inferior a 10 minutos. Isso se deve ao fato de que, desde 2009, a potência de cálculo média tem aumentado.
Ataque de Distorção Temporal
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. Neste tipo de ataque, assume-se que a mineração é completamente centralizada, e os mineradores podem definir qualquer timestamp permitido pelo protocolo. O atacante configuraria o timestamp da maioria dos blocos para ser apenas um segundo antes do bloco anterior, fazendo com que a blockchain avance lentamente no tempo, enquanto cumpre as regras do MTP.
Para avançar o tempo o mais lentamente possível, os mineradores podem manter o mesmo carimbo de tempo em seis blocos consecutivos e, em seguida, aumentar o tempo em um segundo no próximo bloco, repetindo assim o ciclo. Isso significa que o carimbo de tempo do bloco avança apenas um segundo a cada seis blocos.
Este ataque fará com que a blockchain fique cada vez mais atrasada em relação ao tempo real, aumentando a dificuldade e tornando a mineração mais difícil. No entanto, para aumentar o efeito do ataque, no último bloco de cada período de ajuste de dificuldade, os mineradores definirão o carimbo de data/hora para o tempo do mundo real. O próximo bloco (, que é o primeiro bloco da nova janela de ajuste de dificuldade ), será então redefinido para o passado, um segundo antes do penúltimo bloco da janela de ajuste de dificuldade anterior. Isso ainda está de acordo com as regras MTP, uma vez que uma única anomalia não afetará a mediana dos 11 blocos.
Ao realizar esse tipo de ataque, a dificuldade após o primeiro ciclo não será afetada. No entanto, após o segundo ciclo de ajuste após o início do ataque, a dificuldade começará a ajustar-se para baixo. Em seguida, os mineradores poderão criar blocos a uma velocidade muito rápida, possivelmente gerando uma grande quantidade de Bitcoin, e depois vender para lucrar.
Viabilidade de Ataque e Soluções
Embora, em teoria, esse tipo de ataque possa ter consequências devastadoras, existem alguns desafios para sua implementação. A execução do ataque pode exigir o controle da maior parte do poder de computação. Se houver mineradores honestos inserindo carimbos de data/hora reais, a dificuldade do ataque aumentará significativamente. As regras MTP e os carimbos de data/hora dos mineradores honestos podem limitar o grau em que mineradores maliciosos podem manipular os carimbos de data/hora. Além disso, se um minerador honesto gerar o primeiro bloco de qualquer janela de ajuste de dificuldade, o ataque naquele ciclo não terá efeito.
Outro fator que pode tornar o ataque mais difícil de executar é que ele é visível para todos. Qualquer pessoa pode ver as anomalias nos timestamps, e antes que a dificuldade seja ajustada para baixo, é necessário manipular os timestamps ao redor, o que pode nos dar tempo para lançar uma correção de soft fork de emergência.
Para resolver essa vulnerabilidade, os desenvolvedores propuseram uma solução relativamente simples. A nova proposta exige que o tempo do primeiro bloco do novo ciclo de dificuldade não seja anterior a um número específico de minutos antes do último bloco do ciclo anterior. O intervalo de tempo atualmente discutido varia de 10 minutos a 2 horas. Na mais recente proposta de limpeza do grande consenso, esse tempo foi definido como 2 horas.
Esta limitação de 2 horas representa apenas cerca de 0,6% do tempo alvo do ciclo de ajuste de dificuldade, limitando assim significativamente a capacidade de manipular a dificuldade para baixo. Esta modificação previne eficazmente ataques de distorção temporal e minimiza o risco de gerar blocos inválidos acidentalmente, ao mesmo tempo que se mantém consistente com as regras atuais de carimbo de tempo dos blocos futuros.
Ao implementar esta melhoria, a rede Bitcoin será capaz de resistir melhor a potenciais ataques de distorção temporal, aumentando ainda mais a sua segurança e estabilidade.