Bitcoin transações duplicadas: uma falha interessante mas com impacto limitado
Existe uma falha interessante na rede Bitcoin - transações duplicadas. Normalmente, as transações Bitcoin utilizam saídas não gastas referenciando o ID de uma transação anterior. Essas saídas só podem ser gastas uma vez, caso contrário, isso leva a um problema de pagamento duplo. No entanto, na história do Bitcoin, realmente houve dois conjuntos de transações idênticas.
Esta situação pode ocorrer porque a transação coinbase não tem entradas, mas gera moedas novas diretamente. Assim, duas transações coinbase diferentes podem enviar a mesma quantidade de Bitcoin para o mesmo endereço, resultando em transações idênticas. Como o conteúdo das transações é o mesmo, o seu ID de transação (TXID) também será o mesmo.
Estas duas séries de transações duplicadas ocorreram entre 14 e 15 de novembro de 2010, com um intervalo de tempo de cerca de 16 horas. A primeira série de transações duplicadas tem o ID d5d2....8599, e a segunda série é e3bf....b468. Curiosamente, embora d5d2....8599 tenha se tornado uma cópia primeiro, ele apareceu na blockchain depois de e3bf....b468.
Essas transações duplicadas têm um valor de 50 BTC cada, totalizando 200 BTC. De certa forma, na verdade, 100 BTC não existem. Até agora, esses 200 BTC não foram gastos. Teoricamente, a pessoa que possui a chave privada correspondente pode gastar esses Bitcoins, mas uma vez gastos, os 50 BTC duplicados serão perdidos, portanto, na prática, apenas 100 BTC podem ser recuperados.
Transações duplicadas podem claramente causar confusão nas carteiras e nos exploradores de blocos, e também podem ser usadas para realizar ataques. Por exemplo, um atacante pode depositar fundos em uma exchange com duas transações duplicadas e, em seguida, retirar imediatamente, tentando fazer a exchange falir.
Para resolver este problema, a comunidade Bitcoin tomou várias medidas:
Em março de 2012, o BIP30 soft fork proibiu o uso de TXID duplicados para transações, a menos que o TXID anterior já tivesse sido gasto.
Em setembro de 2012, Greg Maxwell alterou as regras para que a verificação BIP30 se aplicasse a todos os blocos, mas manteve as duas transações duplicadas mencionadas anteriormente.
Em março de 2013, o BIP34 exigiu que as transações coinbase incluíssem a altura do bloco, o que basicamente resolveu o problema das transações duplicadas.
Em novembro de 2015, o núcleo do Bitcoin parou de realizar a verificação BIP30, pois o BIP34 já havia corrigido esse problema.
No entanto, em alguns blocos antes da ativação do BIP34, o primeiro byte das scriptSigs da transação coinbase coincide exatamente com a altura do bloco que será válido no futuro. Isso significa que o problema das transações duplicadas não foi resolvido 100%. O próximo bloco onde uma transação duplicada pode ocorrer é 1,983,702, previsto para ser gerado por volta de janeiro de 2046.
No entanto, o custo de explorar essa vulnerabilidade é muito alto. Tomando como exemplo o bloco 1,983,702, os atacantes precisariam queimar cerca de 170 BTC em taxas, o que equivale a cerca de 15 milhões de dólares ao preço atual. Além disso, esses fundos provavelmente não seriam recuperáveis. Além disso, desde a atualização do SegWit em 2017, as transações coinbase também incluem um compromisso com todas as transações no bloco, aumentando ainda mais a dificuldade do ataque.
Considerando a dificuldade e o custo da cópia de transações, bem como a escassez de oportunidades, esta vulnerabilidade não constitui uma ameaça de segurança significativa para o Bitcoin. No entanto, os desenvolvedores continuam a trabalhar em soluções de correção, que podem precisar ser implementadas através de um soft fork. Uma possível abordagem é a imposição do compromisso SegWit.
Em geral, embora a vulnerabilidade de transações repetidas seja interessante, seu impacto real é muito limitado. Reflete mais a complexidade da rede Bitcoin e os esforços contínuos dos desenvolvedores para aprimorar o sistema.
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.
Bitcoin repetição de transação vulnerabilidade: curiosidades históricas e desafios futuros
Bitcoin transações duplicadas: uma falha interessante mas com impacto limitado
Existe uma falha interessante na rede Bitcoin - transações duplicadas. Normalmente, as transações Bitcoin utilizam saídas não gastas referenciando o ID de uma transação anterior. Essas saídas só podem ser gastas uma vez, caso contrário, isso leva a um problema de pagamento duplo. No entanto, na história do Bitcoin, realmente houve dois conjuntos de transações idênticas.
Esta situação pode ocorrer porque a transação coinbase não tem entradas, mas gera moedas novas diretamente. Assim, duas transações coinbase diferentes podem enviar a mesma quantidade de Bitcoin para o mesmo endereço, resultando em transações idênticas. Como o conteúdo das transações é o mesmo, o seu ID de transação (TXID) também será o mesmo.
Estas duas séries de transações duplicadas ocorreram entre 14 e 15 de novembro de 2010, com um intervalo de tempo de cerca de 16 horas. A primeira série de transações duplicadas tem o ID d5d2....8599, e a segunda série é e3bf....b468. Curiosamente, embora d5d2....8599 tenha se tornado uma cópia primeiro, ele apareceu na blockchain depois de e3bf....b468.
Essas transações duplicadas têm um valor de 50 BTC cada, totalizando 200 BTC. De certa forma, na verdade, 100 BTC não existem. Até agora, esses 200 BTC não foram gastos. Teoricamente, a pessoa que possui a chave privada correspondente pode gastar esses Bitcoins, mas uma vez gastos, os 50 BTC duplicados serão perdidos, portanto, na prática, apenas 100 BTC podem ser recuperados.
Transações duplicadas podem claramente causar confusão nas carteiras e nos exploradores de blocos, e também podem ser usadas para realizar ataques. Por exemplo, um atacante pode depositar fundos em uma exchange com duas transações duplicadas e, em seguida, retirar imediatamente, tentando fazer a exchange falir.
Para resolver este problema, a comunidade Bitcoin tomou várias medidas:
Em março de 2012, o BIP30 soft fork proibiu o uso de TXID duplicados para transações, a menos que o TXID anterior já tivesse sido gasto.
Em setembro de 2012, Greg Maxwell alterou as regras para que a verificação BIP30 se aplicasse a todos os blocos, mas manteve as duas transações duplicadas mencionadas anteriormente.
Em março de 2013, o BIP34 exigiu que as transações coinbase incluíssem a altura do bloco, o que basicamente resolveu o problema das transações duplicadas.
Em novembro de 2015, o núcleo do Bitcoin parou de realizar a verificação BIP30, pois o BIP34 já havia corrigido esse problema.
No entanto, em alguns blocos antes da ativação do BIP34, o primeiro byte das scriptSigs da transação coinbase coincide exatamente com a altura do bloco que será válido no futuro. Isso significa que o problema das transações duplicadas não foi resolvido 100%. O próximo bloco onde uma transação duplicada pode ocorrer é 1,983,702, previsto para ser gerado por volta de janeiro de 2046.
No entanto, o custo de explorar essa vulnerabilidade é muito alto. Tomando como exemplo o bloco 1,983,702, os atacantes precisariam queimar cerca de 170 BTC em taxas, o que equivale a cerca de 15 milhões de dólares ao preço atual. Além disso, esses fundos provavelmente não seriam recuperáveis. Além disso, desde a atualização do SegWit em 2017, as transações coinbase também incluem um compromisso com todas as transações no bloco, aumentando ainda mais a dificuldade do ataque.
Considerando a dificuldade e o custo da cópia de transações, bem como a escassez de oportunidades, esta vulnerabilidade não constitui uma ameaça de segurança significativa para o Bitcoin. No entanto, os desenvolvedores continuam a trabalhar em soluções de correção, que podem precisar ser implementadas através de um soft fork. Uma possível abordagem é a imposição do compromisso SegWit.
Em geral, embora a vulnerabilidade de transações repetidas seja interessante, seu impacto real é muito limitado. Reflete mais a complexidade da rede Bitcoin e os esforços contínuos dos desenvolvedores para aprimorar o sistema.