Bitcoin vulnerabilidades de segurança: ataque de distorção temporal
Recentemente, um desenvolvedor de Bitcoin propôs uma nova proposta de soft fork, destinada a corrigir várias vulnerabilidades e fraquezas que existem há muito tempo no protocolo Bitcoin. Uma das vulnerabilidades mais graves é chamada de "ataque de distorção temporal", e este artigo irá explorar isso em detalhe.
Mecanismo de proteção de timestamp do bloco Bitcoin
Antes de discutir os ataques de distorção temporal, vamos rever as atuais regras de proteção contra manipulação temporal:
Regra do tempo médio passado (MPT): O carimbo de tempo do bloco deve ser mais recente do que o tempo médio dos últimos onze blocos.
Regras futuras de tempo de bloco: o carimbo de tempo do bloco não pode superar em mais de 2 horas o tempo mediano dos pares do nó. 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 retroativos, enquanto as regras para blocos futuros evitam que os timestamps sejam excessivamente antecipados. Vale ressaltar que não é possível implementar um mecanismo semelhante às regras de blocos futuros para prevenir que um bloco tenha um timestamp do passado, pois isso poderia afetar a sincronização inicial da blockchain. O ataque de distorção temporal utiliza precisamente timestamps falsificados, fazendo com que voltem muito ao passado.
Problemas de cálculo do período de ajuste de dificuldade
O período de ajuste de dificuldade do Bitcoin inclui 2016 blocos, calculados com um objetivo de bloco de 10 minutos, aproximadamente duas semanas. Ao calcular o ajuste de dificuldade de mineração, o protocolo calcula a diferença de timestamp entre o primeiro e o último bloco na janela de 2016 blocos relacionada. Essa janela de 2016 blocos realmente inclui 2015 intervalos de bloco, portanto, o tempo alvo utilizado teoricamente deve ser 60 segundos * 10 minutos * 2015 intervalos, o que equivale a 1.209.000 segundos.
No entanto, o protocolo Bitcoin usou o número 2016 para calcular o alvo. 60 segundos * 10 minutos * 2016 = 1,209,600 segundos. Este é um erro de "um a menos", que pode ter ocorrido devido à confusão entre o intervalo entre os blocos.
Este erro faz com que o tempo alvo seja 0,05% mais longo do que deveria. Assim, o intervalo de tempo alvo real do Bitcoin é de 10 minutos e 0,3 segundos, em vez de 10 minutos exatos. Embora esse erro pareça insignificante, ele está relacionado a outro problema mais grave.
Princípio do ataque de distorção temporal
O ataque de distorção temporal explora esse erro no cálculo de dificuldade. Em uma situação ideal, supondo que a mineração é completamente centralizada, os mineradores podem definir qualquer carimbo de data/hora permitido pelo protocolo. O atacante adotaria a seguinte estratégia:
Para a maioria dos blocos, defina o carimbo de data/hora para avançar um segundo em relação ao bloco anterior.
Para avançar o tempo o mais lentamente possível, os mineradores podem manter o mesmo carimbo de tempo por seis blocos consecutivos e, em seguida, aumentar o tempo em um segundo no próximo bloco.
No último bloco de cada período de ajuste de dificuldade, defina o carimbo de data/hora para o tempo do mundo real.
O carimbo de tempo do primeiro bloco do próximo período volta novamente ao passado, um segundo antes do penúltimo bloco do período anterior.
Esta operação está de acordo com as regras do MTP, uma vez que uma única anomalia não afeta a mediana de 11 blocos. Desta forma, a blockchain vai gradualmente ficar atrasada em relação ao tempo real, e a dificuldade continuará a aumentar. No entanto, a partir do segundo ciclo de ajuste, a dificuldade começará a diminuir, permitindo que os mineradores criem blocos a uma velocidade extremamente rápida, potencialmente gerando uma grande quantidade de Bitcoin.
Viabilidade e Desafios do Ataque
Apesar de essa ataque ter um potencial devastador em teoria, a sua implementação enfrenta alguns desafios:
Pode ser necessário controlar a maior parte da potência de cálculo.
A presença de mineradores honestos aumentará a dificuldade de ataque.
As regras MTP e os carimbos de tempo honestos podem limitar o grau de retrocesso de carimbos de tempo maliciosos.
Se um minerador honesto gerar o primeiro bloco da janela de ajuste de dificuldade, o ataque desse ciclo falhará.
O processo de ataque é visível publicamente, o que pode dar à comunidade tempo para implementar uma correção de emergência.
Soluções potenciais
Existem várias maneiras de corrigir essa vulnerabilidade:
Mudar o algoritmo de ajuste de dificuldade, calculando a duração do tempo entre os blocos em diferentes janelas de 2016.
Cancelar a regra MTP, exigindo que o tempo avance sempre em cada bloco.
Definir novas regras de limite: exigir 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.
Atualmente, a proposta de limpeza do grande consenso sugere a adoção de um terceiro método, estabelecendo um limite de tempo de 2 horas. Este período representa aproximadamente 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo limitar efetivamente a capacidade de manipular a dificuldade para baixo.
Sobre a duração específica do período de carência a ser utilizado, existem diferentes opiniões na indústria. A limitação de 10 minutos e a de 2 horas têm suas vantagens e desvantagens, e precisam ser ponderadas. Independentemente de qual solução final for adotada, corrigir essa vulnerabilidade aumentará consideravelmente 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.
11 gostos
Recompensa
11
6
Republicar
Partilhar
Comentar
0/400
liquidation_surfer
· 22h atrás
Mais uma vez terei de gastar dinheiro para corrigir falhas, tsk tsk.
Ver originalResponder0
MeaninglessApe
· 08-09 17:34
Outra vez um bug, sem palavras família
Ver originalResponder0
GhostAddressHunter
· 08-09 17:34
Descobri uma vulnerabilidade, há alguém? Vamos falar mal, então.
Ver originalResponder0
GasWaster
· 08-09 17:31
Ataque é ataque. De qualquer forma, eu não entendo, então está tudo bem.
Ver originalResponder0
MEVHunter
· 08-09 17:11
heh, encontrei outra exploração saborosa... o tempo é apenas outra variável a manipular, para ser honesto. tenho monitorizado esta vulnerabilidade desde os dias do testnet
Bitcoin enfrenta ataques de distorção temporal, vulnerabilidade do protocolo gera riscos de segurança
Bitcoin vulnerabilidades de segurança: ataque de distorção temporal
Recentemente, um desenvolvedor de Bitcoin propôs uma nova proposta de soft fork, destinada a corrigir várias vulnerabilidades e fraquezas que existem há muito tempo no protocolo Bitcoin. Uma das vulnerabilidades mais graves é chamada de "ataque de distorção temporal", e este artigo irá explorar isso em detalhe.
Mecanismo de proteção de timestamp do bloco Bitcoin
Antes de discutir os ataques de distorção temporal, vamos rever as atuais regras de proteção contra manipulação temporal:
Regra do tempo médio passado (MPT): O carimbo de tempo do bloco deve ser mais recente do que o tempo médio dos últimos onze blocos.
Regras futuras de tempo de bloco: o carimbo de tempo do bloco não pode superar em mais de 2 horas o tempo mediano dos pares do nó. 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 retroativos, enquanto as regras para blocos futuros evitam que os timestamps sejam excessivamente antecipados. Vale ressaltar que não é possível implementar um mecanismo semelhante às regras de blocos futuros para prevenir que um bloco tenha um timestamp do passado, pois isso poderia afetar a sincronização inicial da blockchain. O ataque de distorção temporal utiliza precisamente timestamps falsificados, fazendo com que voltem muito ao passado.
Problemas de cálculo do período de ajuste de dificuldade
O período de ajuste de dificuldade do Bitcoin inclui 2016 blocos, calculados com um objetivo de bloco de 10 minutos, aproximadamente duas semanas. Ao calcular o ajuste de dificuldade de mineração, o protocolo calcula a diferença de timestamp entre o primeiro e o último bloco na janela de 2016 blocos relacionada. Essa janela de 2016 blocos realmente inclui 2015 intervalos de bloco, portanto, o tempo alvo utilizado teoricamente deve ser 60 segundos * 10 minutos * 2015 intervalos, o que equivale a 1.209.000 segundos.
No entanto, o protocolo Bitcoin usou o número 2016 para calcular o alvo. 60 segundos * 10 minutos * 2016 = 1,209,600 segundos. Este é um erro de "um a menos", que pode ter ocorrido devido à confusão entre o intervalo entre os blocos.
Este erro faz com que o tempo alvo seja 0,05% mais longo do que deveria. Assim, o intervalo de tempo alvo real do Bitcoin é de 10 minutos e 0,3 segundos, em vez de 10 minutos exatos. Embora esse erro pareça insignificante, ele está relacionado a outro problema mais grave.
Princípio do ataque de distorção temporal
O ataque de distorção temporal explora esse erro no cálculo de dificuldade. Em uma situação ideal, supondo que a mineração é completamente centralizada, os mineradores podem definir qualquer carimbo de data/hora permitido pelo protocolo. O atacante adotaria a seguinte estratégia:
Esta operação está de acordo com as regras do MTP, uma vez que uma única anomalia não afeta a mediana de 11 blocos. Desta forma, a blockchain vai gradualmente ficar atrasada em relação ao tempo real, e a dificuldade continuará a aumentar. No entanto, a partir do segundo ciclo de ajuste, a dificuldade começará a diminuir, permitindo que os mineradores criem blocos a uma velocidade extremamente rápida, potencialmente gerando uma grande quantidade de Bitcoin.
Viabilidade e Desafios do Ataque
Apesar de essa ataque ter um potencial devastador em teoria, a sua implementação enfrenta alguns desafios:
Soluções potenciais
Existem várias maneiras de corrigir essa vulnerabilidade:
Atualmente, a proposta de limpeza do grande consenso sugere a adoção de um terceiro método, estabelecendo um limite de tempo de 2 horas. Este período representa aproximadamente 0,6% do tempo alvo do ciclo de ajuste de dificuldade, podendo limitar efetivamente a capacidade de manipular a dificuldade para baixo.
Sobre a duração específica do período de carência a ser utilizado, existem diferentes opiniões na indústria. A limitação de 10 minutos e a de 2 horas têm suas vantagens e desvantagens, e precisam ser ponderadas. Independentemente de qual solução final for adotada, corrigir essa vulnerabilidade aumentará consideravelmente a segurança e a estabilidade da rede Bitcoin.