Duplicação de transações Bitcoin: uma lacuna de risco interessante, mas mínima
Resumo
As transações de Bitcoin geralmente utilizam saídas não gastas referenciando o ID da transação anterior. Essas saídas só podem ser gastas uma vez, caso contrário, isso levará a problemas de dupla despesa. No entanto, na história do Bitcoin, existem de fato dois conjuntos de transações exatamente iguais. Essa situação ocorre porque as transações coinbase não têm entradas, mas geram novas moedas. Assim, duas transações coinbase diferentes podem ser construídas de maneira exatamente igual, fazendo com que seus IDs de transação também sejam iguais. Além disso, apenas uma colisão de hash poderia resultar em IDs de transação duplicados, mas isso é quase impossível de ocorrer em funções de hash criptograficamente seguras.
Esses dois conjuntos de transações duplicadas ocorreram entre 14 e 15 de novembro de 2010, com um intervalo de cerca de 16 horas. Embora d5d2....8599 tenha aparecido na blockchain após e3bf....b468, ainda o classificamos como a primeira transação duplicada.
Detalhes da transação duplicada
O explorador de blocos mempool.space mostrou a primeira ocorrência de uma transação duplicada aparecendo em dois blocos diferentes. Curiosamente, diferentes exploradores de blocos podem ter comportamentos padrão diferentes ao exibir transações duplicadas.
Nos quatro blocos envolvidos, apenas um bloco contém outras transações, fundindo 1 BTC e 19 BTC em uma saída de 20 BTC.
Repetibilidade de Gasto
O valor de cada transação repetida é de 50 BTC, envolvendo um total de 200 BTC ou 100 BTC, dependendo da forma como é entendido. Até agora, esses Bitcoins não foram gastos. Teoricamente, quem possui a chave privada relacionada pode gastar esses Bitcoins, mas apenas 100 BTC podem ser recuperados na prática, pois os 50 BTC repetidos não poderão ser gastos. Quanto a partir de qual bloco essas moedas serão gastas, isso pode estar indefinido.
Problema de transações duplicadas
Transações duplicadas podem causar confusão nas carteiras e exploradores de blocos, além de potencialmente gerar riscos de ataque. Por exemplo, podem levar a pagamentos duplicados ou ataques às exchanges.
Medidas de resolução
Para resolver o problema de transações duplicadas, a comunidade Bitcoin tomou as seguintes medidas:
BIP30: Proposto e implementado em 2012, proíbe o uso de TXID duplicados para transações, a menos que o TXID anterior tenha sido gasto.
BIP34: Ativado em 2013, requer que a transação coinbase inclua a altura do bloco, garantindo que todas as transações sejam únicas.
Parar a verificação BIP30: Em 2015, devido à implementação do BIP34, os nós pararam a verificação cara do BIP30.
Riscos potenciais
Apesar de o BIP34 resolver a maior parte dos problemas, ainda existe um risco potencial de duplicação em alguns blocos antes da ativação do BIP34, onde os scriptSigs das transações coinbase podem corresponder à altura dos blocos futuros. O próximo bloco onde podem ocorrer transações duplicadas é o 1,983,702, que se espera ser gerado por volta de janeiro de 2046.
Conclusão
Considerando a dificuldade de copiar transações, os custos e a escassez de oportunidades, essa vulnerabilidade não representa uma ameaça significativa à segurança do Bitcoin. No entanto, devido à sua singularidade e impacto a longo prazo, continua a ser uma questão interessante que merece atenção. No futuro, pode ser necessário resolver este problema de forma definitiva através de métodos como bifurcações suaves.
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.
18 gostos
Recompensa
18
6
Partilhar
Comentar
0/400
SillyWhale
· 08-06 08:55
A vulnerabilidade é um pouco interessante.
Ver originalResponder0
FlashLoanPrince
· 08-06 08:54
O código inicial era muito aleatório.
Ver originalResponder0
retroactive_airdrop
· 08-06 08:52
Blockchain não é tão simples assim
Ver originalResponder0
WalletAnxietyPatient
· 08-06 08:49
O hash está quebrado, mas não se preocupe.
Ver originalResponder0
ForumLurker
· 08-06 08:43
Os detalhes daquele ano eram realmente assustadores.
O mistério das transações repetidas do Bitcoin: vulnerabilidades raras e desafios futuros
Duplicação de transações Bitcoin: uma lacuna de risco interessante, mas mínima
Resumo
As transações de Bitcoin geralmente utilizam saídas não gastas referenciando o ID da transação anterior. Essas saídas só podem ser gastas uma vez, caso contrário, isso levará a problemas de dupla despesa. No entanto, na história do Bitcoin, existem de fato dois conjuntos de transações exatamente iguais. Essa situação ocorre porque as transações coinbase não têm entradas, mas geram novas moedas. Assim, duas transações coinbase diferentes podem ser construídas de maneira exatamente igual, fazendo com que seus IDs de transação também sejam iguais. Além disso, apenas uma colisão de hash poderia resultar em IDs de transação duplicados, mas isso é quase impossível de ocorrer em funções de hash criptograficamente seguras.
Esses dois conjuntos de transações duplicadas ocorreram entre 14 e 15 de novembro de 2010, com um intervalo de cerca de 16 horas. Embora d5d2....8599 tenha aparecido na blockchain após e3bf....b468, ainda o classificamos como a primeira transação duplicada.
Detalhes da transação duplicada
O explorador de blocos mempool.space mostrou a primeira ocorrência de uma transação duplicada aparecendo em dois blocos diferentes. Curiosamente, diferentes exploradores de blocos podem ter comportamentos padrão diferentes ao exibir transações duplicadas.
Nos quatro blocos envolvidos, apenas um bloco contém outras transações, fundindo 1 BTC e 19 BTC em uma saída de 20 BTC.
Repetibilidade de Gasto
O valor de cada transação repetida é de 50 BTC, envolvendo um total de 200 BTC ou 100 BTC, dependendo da forma como é entendido. Até agora, esses Bitcoins não foram gastos. Teoricamente, quem possui a chave privada relacionada pode gastar esses Bitcoins, mas apenas 100 BTC podem ser recuperados na prática, pois os 50 BTC repetidos não poderão ser gastos. Quanto a partir de qual bloco essas moedas serão gastas, isso pode estar indefinido.
Problema de transações duplicadas
Transações duplicadas podem causar confusão nas carteiras e exploradores de blocos, além de potencialmente gerar riscos de ataque. Por exemplo, podem levar a pagamentos duplicados ou ataques às exchanges.
Medidas de resolução
Para resolver o problema de transações duplicadas, a comunidade Bitcoin tomou as seguintes medidas:
BIP30: Proposto e implementado em 2012, proíbe o uso de TXID duplicados para transações, a menos que o TXID anterior tenha sido gasto.
BIP34: Ativado em 2013, requer que a transação coinbase inclua a altura do bloco, garantindo que todas as transações sejam únicas.
Parar a verificação BIP30: Em 2015, devido à implementação do BIP34, os nós pararam a verificação cara do BIP30.
Riscos potenciais
Apesar de o BIP34 resolver a maior parte dos problemas, ainda existe um risco potencial de duplicação em alguns blocos antes da ativação do BIP34, onde os scriptSigs das transações coinbase podem corresponder à altura dos blocos futuros. O próximo bloco onde podem ocorrer transações duplicadas é o 1,983,702, que se espera ser gerado por volta de janeiro de 2046.
Conclusão
Considerando a dificuldade de copiar transações, os custos e a escassez de oportunidades, essa vulnerabilidade não representa uma ameaça significativa à segurança do Bitcoin. No entanto, devido à sua singularidade e impacto a longo prazo, continua a ser uma questão interessante que merece atenção. No futuro, pode ser necessário resolver este problema de forma definitiva através de métodos como bifurcações suaves.