Bitcoin em transações duplicadas: um defeito interessante e de baixo risco
Visão Geral
As transações de Bitcoin normalmente utilizam saídas não gastas, referenciando o ID da transação anterior. Essas saídas só podem ser usadas uma vez, caso contrário, isso resultará em problemas de duplo gasto. No entanto, na história do Bitcoin, realmente ocorreram duas transações completamente idênticas. Essa situação pode acontecer porque as transações coinbase não têm entradas, mas geram moedas novas diretamente. Assim, duas transações coinbase diferentes podem enviar a mesma quantidade para o mesmo endereço, com a mesma construção, resultando na geração do mesmo ID de transação.
Esses dois conjuntos de transações duplicadas ocorreram entre 14 e 15 de novembro de 2010, com um intervalo de tempo de cerca de 16 horas. O ID do primeiro conjunto de transações duplicadas é d5d2....8599, embora tenha aparecido na blockchain mais tarde do que outra transação duplicada e3bf....b468.
Detalhes da Transação Repetida
Esses dois conjuntos de transações duplicadas aparecem em quatro blocos diferentes. Os exploradores de blocos podem ter comportamentos padrão diferentes ao exibir essas transações, alguns mostram blocos mais antigos, enquanto outros mostram blocos mais recentes.
Nos quatro blocos relacionados, apenas um bloco (91,812) contém outras transações, combinando 1 Bitcoin e 19 Bitcoin em uma saída de 20 Bitcoin.
Estas saídas podem ser utilizadas?
O valor de cada transação repetida é de 50 BTC, envolvendo um total de 200 BTC( ou 100 BTC, dependendo da forma como é compreendido). Até agora, esses 200 BTC não foram utilizados. Teoricamente, quem possui a chave privada relevante pode usar essas moedas, mas uma vez usadas, os 50 BTC repetidos não poderão ser utilizados novamente e serão perdidos, portanto, na prática, apenas 100 BTC podem ser recuperados.
Problema de transações repetidas
Transações duplicadas podem causar confusão nas carteiras e exploradores de blocos, além de levar a fontes de Bitcoin não claras. Isso também pode ser usado em alguns ataques e exploração de vulnerabilidades, como depósitos fraudulentos em exchanges.
Solução
Para resolver o problema de transações duplicadas, foi implementado o soft fork BIP30 em março de 2012, que proíbe o uso de IDs de transação duplicados, a menos que a transação anterior tenha sido usada. Em setembro do mesmo ano, essa regra foi ainda mais modificada, aplicando-se a todos os blocos.
Em março de 2013, a bifurcação suave BIP34 exigiu que as transações coinbase incluíssem a altura do bloco, o que na verdade resolveu o problema de transações duplicadas. Desde então, o software principal do Bitcoin parou de verificar o BIP30, pois já não era mais necessário.
Questões potenciais futuras
Embora o BIP34 tenha resolvido a maior parte dos problemas, em alguns blocos antes da ativação do BIP34, o primeiro byte do scriptSig da transação coinbase coincide exatamente com a futura altura de bloco válida. Isso significa que, em certas alturas de bloco específicas no futuro, ainda é possível que ocorram transações duplicadas.
O próximo bloco onde podem ocorrer transações duplicadas é 1,983,702, previsto para ser gerado por volta de janeiro de 2046. No entanto, o custo de explorar essa vulnerabilidade é muito alto, exigindo queima de uma grande quantidade de Bitcoin, e não oferece praticamente nenhum benefício real para o atacante.
Conclusão
Considerando a dificuldade de copiar transações, os custos e a escassez de oportunidades para tal, esta vulnerabilidade não representa uma ameaça significativa à segurança do Bitcoin. No entanto, devido à sua singularidade e à possibilidade de persistir a longo prazo, continua a ser uma questão técnica interessante. Os desenvolvedores podem procurar resolver este problema de forma abrangente antes de 2046, possivelmente através de uma soft fork. Uma solução potencial é a aplicação obrigatória do compromisso SegWit.
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.
13 Curtidas
Recompensa
13
2
Compartilhar
Comentário
0/400
SmartMoneyWallet
· 16h atrás
na cadeia os dados nunca mentem, 97% do risco foi bloqueado pelo BIP34.
Ver originalResponder0
AltcoinOracle
· 16h atrás
fascinante como o protocolo evolui... as minhas métricas proprietárias mostram 0,0021% de probabilidade de exploração real, para ser honesto
Vulnerabilidade de transações duplicadas na história do Bitcoin: causas, impactos e análise de riscos futuros
Bitcoin em transações duplicadas: um defeito interessante e de baixo risco
Visão Geral
As transações de Bitcoin normalmente utilizam saídas não gastas, referenciando o ID da transação anterior. Essas saídas só podem ser usadas uma vez, caso contrário, isso resultará em problemas de duplo gasto. No entanto, na história do Bitcoin, realmente ocorreram duas transações completamente idênticas. Essa situação pode acontecer porque as transações coinbase não têm entradas, mas geram moedas novas diretamente. Assim, duas transações coinbase diferentes podem enviar a mesma quantidade para o mesmo endereço, com a mesma construção, resultando na geração do mesmo ID de transação.
Esses dois conjuntos de transações duplicadas ocorreram entre 14 e 15 de novembro de 2010, com um intervalo de tempo de cerca de 16 horas. O ID do primeiro conjunto de transações duplicadas é d5d2....8599, embora tenha aparecido na blockchain mais tarde do que outra transação duplicada e3bf....b468.
Detalhes da Transação Repetida
Esses dois conjuntos de transações duplicadas aparecem em quatro blocos diferentes. Os exploradores de blocos podem ter comportamentos padrão diferentes ao exibir essas transações, alguns mostram blocos mais antigos, enquanto outros mostram blocos mais recentes.
Nos quatro blocos relacionados, apenas um bloco (91,812) contém outras transações, combinando 1 Bitcoin e 19 Bitcoin em uma saída de 20 Bitcoin.
Estas saídas podem ser utilizadas?
O valor de cada transação repetida é de 50 BTC, envolvendo um total de 200 BTC( ou 100 BTC, dependendo da forma como é compreendido). Até agora, esses 200 BTC não foram utilizados. Teoricamente, quem possui a chave privada relevante pode usar essas moedas, mas uma vez usadas, os 50 BTC repetidos não poderão ser utilizados novamente e serão perdidos, portanto, na prática, apenas 100 BTC podem ser recuperados.
Problema de transações repetidas
Transações duplicadas podem causar confusão nas carteiras e exploradores de blocos, além de levar a fontes de Bitcoin não claras. Isso também pode ser usado em alguns ataques e exploração de vulnerabilidades, como depósitos fraudulentos em exchanges.
Solução
Para resolver o problema de transações duplicadas, foi implementado o soft fork BIP30 em março de 2012, que proíbe o uso de IDs de transação duplicados, a menos que a transação anterior tenha sido usada. Em setembro do mesmo ano, essa regra foi ainda mais modificada, aplicando-se a todos os blocos.
Em março de 2013, a bifurcação suave BIP34 exigiu que as transações coinbase incluíssem a altura do bloco, o que na verdade resolveu o problema de transações duplicadas. Desde então, o software principal do Bitcoin parou de verificar o BIP30, pois já não era mais necessário.
Questões potenciais futuras
Embora o BIP34 tenha resolvido a maior parte dos problemas, em alguns blocos antes da ativação do BIP34, o primeiro byte do scriptSig da transação coinbase coincide exatamente com a futura altura de bloco válida. Isso significa que, em certas alturas de bloco específicas no futuro, ainda é possível que ocorram transações duplicadas.
O próximo bloco onde podem ocorrer transações duplicadas é 1,983,702, previsto para ser gerado por volta de janeiro de 2046. No entanto, o custo de explorar essa vulnerabilidade é muito alto, exigindo queima de uma grande quantidade de Bitcoin, e não oferece praticamente nenhum benefício real para o atacante.
Conclusão
Considerando a dificuldade de copiar transações, os custos e a escassez de oportunidades para tal, esta vulnerabilidade não representa uma ameaça significativa à segurança do Bitcoin. No entanto, devido à sua singularidade e à possibilidade de persistir a longo prazo, continua a ser uma questão técnica interessante. Os desenvolvedores podem procurar resolver este problema de forma abrangente antes de 2046, possivelmente através de uma soft fork. Uma solução potencial é a aplicação obrigatória do compromisso SegWit.