Vulnerabilidade de ataque de distorção temporal no protocolo Bitcoin
O desenvolvedor de Bitcoin Antoine Poinsot apresentou 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 por meio de uma atualização de soft fork. Uma das falhas 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 o ataque de distorção do tempo, vamos revisar as regras atuais de proteção contra manipulação do tempo na rede Bitcoin:
Tempo mediano passado (MPT) regra: O carimbo de tempo do bloco deve ser posterior ao tempo mediano dos últimos 11 blocos.
Regras de tempo de bloco no futuro: o timestamp do bloco não deve exceder 2 horas acima do tempo médio dos pares de nós. Além disso, a diferença máxima permitida entre o tempo do nó e o relógio do sistema local é de 90 minutos, o que também é uma medida de segurança.
As regras MPT garantem que os carimbos de tempo dos blocos não sejam muito retroativos, enquanto as regras dos blocos futuros impedem que os carimbos de tempo sejam muito antecipados. É importante notar que não é possível implementar medidas semelhantes às regras dos blocos futuros para impedir o uso de carimbos de tempo passados, pois isso poderia afetar o processo de sincronização inicial da blockchain. O ataque de distorção de tempo explora precisamente a possibilidade de falsificar carimbos de tempo antigos.
O pequeno erro de Satoshi Nakamoto
O período de ajuste de dificuldade do Bitcoin consiste em 2016 blocos, calculado com um tempo de bloqueio alvo de 10 minutos, o que equivale a cerca de duas semanas. Para calcular o ajuste da dificuldade de mineração, o protocolo calcula a diferença dos carimbos de data/hora dos primeiros e últimos blocos na janela de 2016 blocos correspondente. Esta janela de 2016 blocos na verdade contém 2015 intervalos de blocos (ou seja, 2016 menos 1). Assim, teoricamente o tempo alvo utilizado deve ser 60 segundos × 10 minutos × 2015 intervalos, totalizando 1,209,000 segundos.
No entanto, o protocolo Bitcoin usou o número 2016 nos seus cálculos. 60 segundos × 10 minutos × 2016 = 1,209,600 segundos. Este é um pequeno erro, que pode ter surgido da confusão de Satoshi Nakamoto sobre o conceito de 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 é de 10 minutos, mas sim de 10 minutos e 0,3 segundos. Essa pequena discrepância não causa um impacto sério; de fato, desde o nascimento do Bitcoin, o intervalo médio entre blocos tem estado em torno de 9 minutos e 36 segundos, claramente menos de 10 minutos. Isso se deve principalmente ao fato de que, desde 2009, a potência média da rede tem crescido de forma constante.
Princípio do ataque de distorção temporal
O ataque de distorção temporal foi descoberto pela primeira vez por volta de 2011, e ele explorou este pequeno erro que Satoshi Nakamoto cometeu no cálculo da dificuldade. Supondo que a mineração seja completamente centralizada, o atacante pode manipular o timestamp do bloco da seguinte maneira:
Para a maioria dos blocos, defina o carimbo de data/hora para avançar apenas 1 segundo em relação ao bloco anterior.
Para cumprir as regras do MPT, mantenha o mesmo carimbo de data/hora por 6 blocos consecutivos e, em seguida, adicione 1 segundo ao próximo bloco.
No último bloco de cada ciclo de ajuste de dificuldade, defina o carimbo de data/hora para o horário do mundo real.
O primeiro bloco da próxima janela de ajuste de dificuldade, define novamente o timestamp para o passado, um segundo antes do penúltimo bloco do ciclo anterior.
Este método de ataque fará com que o tempo da blockchain fique cada vez mais atrasado em relação ao tempo real, enquanto a dificuldade continuará a aumentar, tornando a mineração cada vez mais difícil. No entanto, a partir do segundo ciclo de ajuste, a dificuldade começará a ser ajustada para baixo. Os atacantes poderão então criar blocos a uma velocidade extremamente rápida, gerando uma grande quantidade de Bitcoin e, assim, obtendo benefícios potenciais.
Viabilidade e Desafios do Ataque
Apesar de teoricamente este tipo de ataque ser destrutivo, a sua execução prática enfrenta vários desafios:
Pode ser necessário controlar a maior parte do poder de cálculo da rede.
A existência de mineradores honestos aumentará a dificuldade de ataque.
As regras MTP e os carimbos de tempo honestos podem limitar o grau de retrocesso dos carimbos de tempo maliciosos.
O processo de ataque é visível para todos e pode desencadear uma correção de soft fork de emergência.
Soluções potenciais
A correção dessa vulnerabilidade é relativamente simples, mas pode exigir alterações no protocolo de soft fork. Uma solução simples é exigir que o timestamp 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. Na proposta de Poinsot, esse limite de tempo foi definido como 2 horas, o que equivale a cerca de 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo efetivamente limitar a magnitude da manipulação da dificuldade.
As vantagens deste limite de 2 horas incluem:
Minimizar o risco de blocos inválidos inesperados
Manter a consistência com as regras de carimbo de data/hora do bloco futuro
Mudanças relativamente conservadoras, que em condições normais podem ser mais flexíveis do que as regras MTP.
No entanto, este método ainda permite que os atacantes manipulem a dificuldade para baixo em cerca de 0,6% a cada ciclo, mas isso será uma mudança única, não acumulável.
De modo geral, embora o ataque de distorção temporal represente uma ameaça teórica, sua execução prática é bastante difícil. Através de atualizações de protocolo adequadas, podemos aumentar 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.
25 gostos
Recompensa
25
5
Partilhar
Comentar
0/400
LiquidationKing
· 07-13 07:37
O tempo deve ser protegido por código
Ver originalResponder0
DegenWhisperer
· 07-10 09:13
Soft Fork realmente é confiável?
Ver originalResponder0
DarkPoolWatcher
· 07-10 09:09
É melhor corrigir as vulnerabilidades cedo.
Ver originalResponder0
TokenVelocityTrauma
· 07-10 09:06
As vulnerabilidades devem ser corrigidas o mais rápido possível.
A vulnerabilidade de ataque de distorção temporal existe no protocolo Bitcoin. Uma nova proposta pretende corrigir isso através de uma Soft Fork.
Vulnerabilidade de ataque de distorção temporal no protocolo Bitcoin
O desenvolvedor de Bitcoin Antoine Poinsot apresentou 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 por meio de uma atualização de soft fork. Uma das falhas 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 o ataque de distorção do tempo, vamos revisar as regras atuais de proteção contra manipulação do tempo na rede Bitcoin:
Tempo mediano passado (MPT) regra: O carimbo de tempo do bloco deve ser posterior ao tempo mediano dos últimos 11 blocos.
Regras de tempo de bloco no futuro: o timestamp do bloco não deve exceder 2 horas acima do tempo médio dos pares de nós. Além disso, a diferença máxima permitida entre o tempo do nó e o relógio do sistema local é de 90 minutos, o que também é uma medida de segurança.
As regras MPT garantem que os carimbos de tempo dos blocos não sejam muito retroativos, enquanto as regras dos blocos futuros impedem que os carimbos de tempo sejam muito antecipados. É importante notar que não é possível implementar medidas semelhantes às regras dos blocos futuros para impedir o uso de carimbos de tempo passados, pois isso poderia afetar o processo de sincronização inicial da blockchain. O ataque de distorção de tempo explora precisamente a possibilidade de falsificar carimbos de tempo antigos.
O pequeno erro de Satoshi Nakamoto
O período de ajuste de dificuldade do Bitcoin consiste em 2016 blocos, calculado com um tempo de bloqueio alvo de 10 minutos, o que equivale a cerca de duas semanas. Para calcular o ajuste da dificuldade de mineração, o protocolo calcula a diferença dos carimbos de data/hora dos primeiros e últimos blocos na janela de 2016 blocos correspondente. Esta janela de 2016 blocos na verdade contém 2015 intervalos de blocos (ou seja, 2016 menos 1). Assim, teoricamente o tempo alvo utilizado deve ser 60 segundos × 10 minutos × 2015 intervalos, totalizando 1,209,000 segundos.
No entanto, o protocolo Bitcoin usou o número 2016 nos seus cálculos. 60 segundos × 10 minutos × 2016 = 1,209,600 segundos. Este é um pequeno erro, que pode ter surgido da confusão de Satoshi Nakamoto sobre o conceito de 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 é de 10 minutos, mas sim de 10 minutos e 0,3 segundos. Essa pequena discrepância não causa um impacto sério; de fato, desde o nascimento do Bitcoin, o intervalo médio entre blocos tem estado em torno de 9 minutos e 36 segundos, claramente menos de 10 minutos. Isso se deve principalmente ao fato de que, desde 2009, a potência média da rede tem crescido de forma constante.
Princípio do ataque de distorção temporal
O ataque de distorção temporal foi descoberto pela primeira vez por volta de 2011, e ele explorou este pequeno erro que Satoshi Nakamoto cometeu no cálculo da dificuldade. Supondo que a mineração seja completamente centralizada, o atacante pode manipular o timestamp do bloco da seguinte maneira:
Este método de ataque fará com que o tempo da blockchain fique cada vez mais atrasado em relação ao tempo real, enquanto a dificuldade continuará a aumentar, tornando a mineração cada vez mais difícil. No entanto, a partir do segundo ciclo de ajuste, a dificuldade começará a ser ajustada para baixo. Os atacantes poderão então criar blocos a uma velocidade extremamente rápida, gerando uma grande quantidade de Bitcoin e, assim, obtendo benefícios potenciais.
Viabilidade e Desafios do Ataque
Apesar de teoricamente este tipo de ataque ser destrutivo, a sua execução prática enfrenta vários desafios:
Soluções potenciais
A correção dessa vulnerabilidade é relativamente simples, mas pode exigir alterações no protocolo de soft fork. Uma solução simples é exigir que o timestamp 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. Na proposta de Poinsot, esse limite de tempo foi definido como 2 horas, o que equivale a cerca de 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo efetivamente limitar a magnitude da manipulação da dificuldade.
As vantagens deste limite de 2 horas incluem:
No entanto, este método ainda permite que os atacantes manipulem a dificuldade para baixo em cerca de 0,6% a cada ciclo, mas isso será uma mudança única, não acumulável.
De modo geral, embora o ataque de distorção temporal represente uma ameaça teórica, sua execução prática é bastante difícil. Através de atualizações de protocolo adequadas, podemos aumentar ainda mais a segurança e a estabilidade da rede Bitcoin.