Bitcoin transações duplicadas: uma falha interessante, mas com risco muito baixo
Existe um fenômeno interessante na rede Bitcoin: duas transações completamente idênticas. Essa situação é possível porque as transações coinbase não têm entradas, mas geram novas moedas diretamente. Assim, duas transações coinbase diferentes podem enviar a mesma quantidade de Bitcoin para o mesmo endereço e serem construídas de forma completamente idêntica, tornando-as totalmente iguais. Como essas transações são iguais, seus IDs de transação ( TXID ) também coincidem, uma vez que o TXID é o resumo hash dos dados da transação.
Esses dois conjuntos de transações repetidas ocorreram entre 14 e 15 de novembro de 2010, com uma duração de cerca de 16 horas. O primeiro conjunto de transações repetidas foi inserido entre o segundo conjunto. Classificamos d5d2....8599 como a primeira transação repetida, pois se tornou uma cópia primeiro, embora tenha aparecido na blockchain após outra transação repetida e3bf....b468.
O valor total de Bitcoin envolvido nessas transações repetidas é de 200 BTC, ou talvez 100 BTC, dependendo da forma como é interpretado. Até o momento, esses Bitcoins não foram utilizados. Teoricamente, a pessoa que possui a chave privada correspondente pode usar esses Bitcoins, mas uma vez utilizados, os 50 BTC duplicados não poderão ser usados novamente e serão perdidos, portanto, na prática, apenas 100 BTC estão disponíveis.
Transações duplicadas são claramente problemáticas. Elas causam confusão nas carteiras e nos exploradores de blocos, além de tornar incerta a origem do Bitcoin. Isso também pode levar a alguns ataques e vulnerabilidades, como pagar alguém duas vezes com duas transações duplicadas, mas na verdade apenas metade dos fundos está disponível.
Para resolver este problema, os desenvolvedores propuseram várias propostas de melhoria:
BIP30: um hard fork implementado em março de 2012, que proíbe o uso de TXID duplicados para transações, a menos que o TXID anterior já tenha sido utilizado.
BIP34: ativado em março de 2013, exige que as transações coinbase incluam a altura do bloco, tornando todas as transações únicas.
Em novembro de 2015, os desenvolvedores removeram a verificação BIP30, pois o BIP34 já tinha resolvido este problema.
No entanto, o BIP34 não é uma solução perfeita. Em alguns blocos antes da ativação do BIP34, houve casos em que o primeiro byte do scriptSig da transação coinbase correspondia exatamente à altura do bloco válido no futuro. O próximo bloco em que é possível que ocorram transações duplicadas é o 1,983,702, previsto para ser gerado por volta de janeiro de 2046.
Apesar disso, o custo e a dificuldade de explorar essa vulnerabilidade são muito altos. Tomando como exemplo o bloco 1.983.702, os mineradores precisariam gastar mais de 170 BTC(, o que equivale a cerca de 15 milhões de dólares) aos preços atuais, para realizar um ataque, e quase não haveria ganho real.
Considerando a dificuldade e o custo de replicar transações, bem como a escassez de oportunidades, esta vulnerabilidade não representa uma ameaça significativa à segurança do Bitcoin. No entanto, os desenvolvedores podem ainda procurar uma solução completa para este problema antes de 2046, podendo incluir a aplicação obrigatória do compromisso SegWit, entre outros.
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.
20 gostos
Recompensa
20
5
Partilhar
Comentar
0/400
SmartContractPlumber
· 15h atrás
Um 0day interessante, mas parece um caso de teste.
Ver originalResponder0
GateUser-a5fa8bd0
· 07-14 21:40
Velho bug. Como é que não o aproveitamos na altura?
Ver originalResponder0
consensus_whisperer
· 07-14 21:39
É outra vez a vulnerabilidade antiga do Satoshi Nakamoto.
Bitcoin vulnerabilidade de transações repetidas: problemas históricos e desafios futuros
Bitcoin transações duplicadas: uma falha interessante, mas com risco muito baixo
Existe um fenômeno interessante na rede Bitcoin: duas transações completamente idênticas. Essa situação é possível porque as transações coinbase não têm entradas, mas geram novas moedas diretamente. Assim, duas transações coinbase diferentes podem enviar a mesma quantidade de Bitcoin para o mesmo endereço e serem construídas de forma completamente idêntica, tornando-as totalmente iguais. Como essas transações são iguais, seus IDs de transação ( TXID ) também coincidem, uma vez que o TXID é o resumo hash dos dados da transação.
Esses dois conjuntos de transações repetidas ocorreram entre 14 e 15 de novembro de 2010, com uma duração de cerca de 16 horas. O primeiro conjunto de transações repetidas foi inserido entre o segundo conjunto. Classificamos d5d2....8599 como a primeira transação repetida, pois se tornou uma cópia primeiro, embora tenha aparecido na blockchain após outra transação repetida e3bf....b468.
O valor total de Bitcoin envolvido nessas transações repetidas é de 200 BTC, ou talvez 100 BTC, dependendo da forma como é interpretado. Até o momento, esses Bitcoins não foram utilizados. Teoricamente, a pessoa que possui a chave privada correspondente pode usar esses Bitcoins, mas uma vez utilizados, os 50 BTC duplicados não poderão ser usados novamente e serão perdidos, portanto, na prática, apenas 100 BTC estão disponíveis.
Transações duplicadas são claramente problemáticas. Elas causam confusão nas carteiras e nos exploradores de blocos, além de tornar incerta a origem do Bitcoin. Isso também pode levar a alguns ataques e vulnerabilidades, como pagar alguém duas vezes com duas transações duplicadas, mas na verdade apenas metade dos fundos está disponível.
Para resolver este problema, os desenvolvedores propuseram várias propostas de melhoria:
BIP30: um hard fork implementado em março de 2012, que proíbe o uso de TXID duplicados para transações, a menos que o TXID anterior já tenha sido utilizado.
BIP34: ativado em março de 2013, exige que as transações coinbase incluam a altura do bloco, tornando todas as transações únicas.
Em novembro de 2015, os desenvolvedores removeram a verificação BIP30, pois o BIP34 já tinha resolvido este problema.
No entanto, o BIP34 não é uma solução perfeita. Em alguns blocos antes da ativação do BIP34, houve casos em que o primeiro byte do scriptSig da transação coinbase correspondia exatamente à altura do bloco válido no futuro. O próximo bloco em que é possível que ocorram transações duplicadas é o 1,983,702, previsto para ser gerado por volta de janeiro de 2046.
Apesar disso, o custo e a dificuldade de explorar essa vulnerabilidade são muito altos. Tomando como exemplo o bloco 1.983.702, os mineradores precisariam gastar mais de 170 BTC(, o que equivale a cerca de 15 milhões de dólares) aos preços atuais, para realizar um ataque, e quase não haveria ganho real.
Considerando a dificuldade e o custo de replicar transações, bem como a escassez de oportunidades, esta vulnerabilidade não representa uma ameaça significativa à segurança do Bitcoin. No entanto, os desenvolvedores podem ainda procurar uma solução completa para este problema antes de 2046, podendo incluir a aplicação obrigatória do compromisso SegWit, entre outros.