Bitcoin de transacciones duplicadas: una vulnerabilidad interesante pero de bajo riesgo
Resumen
Las transacciones de Bitcoin suelen utilizar salidas no gastadas haciendo referencia al ID de la transacción anterior. Estas salidas solo pueden gastarse una vez; de lo contrario, podría ocurrir un doble gasto. Sin embargo, en la historia de Bitcoin ha habido dos conjuntos de transacciones completamente idénticas. Esto se debe a que las transacciones coinbase no tienen entradas, sino que generan nuevas monedas. Por lo tanto, dos transacciones coinbase diferentes pueden enviar la misma cantidad de moneda a la misma dirección, y la forma en que se construyen es completamente idéntica, lo que resulta en la misma transacción.
Este par de transacciones duplicadas ocurrió entre el 14 y el 15 de noviembre de 2010, con una duración de aproximadamente 16 horas. El primer conjunto de transacciones duplicadas está intercalado entre el segundo conjunto. Clasificamos las transacciones cuyo ID comienza con d5d2 como la primera transacción duplicada, aunque aparezca por primera vez en la blockchain más tarde que la otra transacción duplicada.
Detalles de transacciones repetidas
Estas transacciones duplicadas tienen un valor de 50 BTC cada una, involucrando un total de 200 BTC, o sea, 100 BTC son contados dos veces. Hasta ahora, estos 200 BTC no han sido gastados. Teóricamente, la persona que posee las claves privadas correspondientes puede gastar estos Bitcoins. Pero una vez que se gasten, los 50 BTC duplicados no podrán ser utilizados nuevamente. En cuanto a qué bloque provendrán estos monedas cuando sean gastadas, puede ser indefinido.
El problema de las transacciones duplicadas
Las transacciones duplicadas pueden causar confusión en las billeteras y en los exploradores de bloques, así como generar incertidumbre sobre el origen de Bitcoin. También pueden ser utilizadas para ataques, como pagar a alguien dos veces, pero en realidad solo tener la mitad de los fondos disponibles.
Solución
Para aliviar este problema, en marzo de 2012 se implementó una bifurcación suave BIP30, que prohíbe el uso de TXID duplicados para transacciones. En septiembre de 2012, esta regla fue modificada aún más y se aplicó a todos los bloques.
La bifurcación suave BIP34 activada en marzo de 2013 requiere que las transacciones coinbase incluyan la altura del bloque, lo que resuelve fundamentalmente el problema de las transacciones duplicadas. Después de esto, los nodos detuvieron la costosa verificación BIP30.
Sin embargo, el primer byte del scriptSig de algunas transacciones coinbase anteriores a BIP34 coincide exactamente con la altura de bloque válida futura. Esto significa que todavía existe una posibilidad muy pequeña de repetición.
Riesgos potenciales futuros
El próximo bloque que podría presentar transacciones duplicadas es 1,983,702, que se espera que se genere alrededor de enero de 2046. Sin embargo, el costo de aprovechar esta vulnerabilidad superará los 15 millones de dólares y será casi inútil.
El siguiente bloque frágil se espera que aparezca en el año 2078. Pero para entonces, el costo de aprovechar esta vulnerabilidad podría ser mayor.
Conclusión
Teniendo en cuenta la dificultad, el costo y las escasas oportunidades de copiar transacciones, esta vulnerabilidad no constituye una amenaza principal para la seguridad de Bitcoin. Sin embargo, los desarrolladores han invertido una gran cantidad de esfuerzo en este problema a lo largo de los años, y 2046 podría ser el último plazo para solucionarlo por completo. La solución podría requerir un soft fork, como hacer cumplir el compromiso de SegWit.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
7 me gusta
Recompensa
7
4
Compartir
Comentar
0/400
MoonRocketman
· hace11h
Se sugiere establecer alertas RSI para monitorear la probabilidad de intrusión en bucles repetidos.
Ver originalesResponder0
MetaverseHermit
· 07-30 21:17
Ah, este problema de doble gasto ya había sido descubierto.
Ver originalesResponder0
MetaverseLandlord
· 07-30 19:27
Vaya, has descubierto un bug de la era primordial.
Ver originalesResponder0
DefiOldTrickster
· 07-30 19:16
¿Oh? Las cosas rotas de la minería de hace unos años realmente las han sacado los jóvenes... ¿Puedes adivinar cuánto beneficio se obtuvo de esta transacción repetida?
Análisis de riesgos potenciales futuros y de vulnerabilidades históricas en las transacciones repetidas de Bitcoin.
Bitcoin de transacciones duplicadas: una vulnerabilidad interesante pero de bajo riesgo
Resumen
Las transacciones de Bitcoin suelen utilizar salidas no gastadas haciendo referencia al ID de la transacción anterior. Estas salidas solo pueden gastarse una vez; de lo contrario, podría ocurrir un doble gasto. Sin embargo, en la historia de Bitcoin ha habido dos conjuntos de transacciones completamente idénticas. Esto se debe a que las transacciones coinbase no tienen entradas, sino que generan nuevas monedas. Por lo tanto, dos transacciones coinbase diferentes pueden enviar la misma cantidad de moneda a la misma dirección, y la forma en que se construyen es completamente idéntica, lo que resulta en la misma transacción.
Este par de transacciones duplicadas ocurrió entre el 14 y el 15 de noviembre de 2010, con una duración de aproximadamente 16 horas. El primer conjunto de transacciones duplicadas está intercalado entre el segundo conjunto. Clasificamos las transacciones cuyo ID comienza con d5d2 como la primera transacción duplicada, aunque aparezca por primera vez en la blockchain más tarde que la otra transacción duplicada.
Detalles de transacciones repetidas
Estas transacciones duplicadas tienen un valor de 50 BTC cada una, involucrando un total de 200 BTC, o sea, 100 BTC son contados dos veces. Hasta ahora, estos 200 BTC no han sido gastados. Teóricamente, la persona que posee las claves privadas correspondientes puede gastar estos Bitcoins. Pero una vez que se gasten, los 50 BTC duplicados no podrán ser utilizados nuevamente. En cuanto a qué bloque provendrán estos monedas cuando sean gastadas, puede ser indefinido.
El problema de las transacciones duplicadas
Las transacciones duplicadas pueden causar confusión en las billeteras y en los exploradores de bloques, así como generar incertidumbre sobre el origen de Bitcoin. También pueden ser utilizadas para ataques, como pagar a alguien dos veces, pero en realidad solo tener la mitad de los fondos disponibles.
Solución
Para aliviar este problema, en marzo de 2012 se implementó una bifurcación suave BIP30, que prohíbe el uso de TXID duplicados para transacciones. En septiembre de 2012, esta regla fue modificada aún más y se aplicó a todos los bloques.
La bifurcación suave BIP34 activada en marzo de 2013 requiere que las transacciones coinbase incluyan la altura del bloque, lo que resuelve fundamentalmente el problema de las transacciones duplicadas. Después de esto, los nodos detuvieron la costosa verificación BIP30.
Sin embargo, el primer byte del scriptSig de algunas transacciones coinbase anteriores a BIP34 coincide exactamente con la altura de bloque válida futura. Esto significa que todavía existe una posibilidad muy pequeña de repetición.
Riesgos potenciales futuros
El próximo bloque que podría presentar transacciones duplicadas es 1,983,702, que se espera que se genere alrededor de enero de 2046. Sin embargo, el costo de aprovechar esta vulnerabilidad superará los 15 millones de dólares y será casi inútil.
El siguiente bloque frágil se espera que aparezca en el año 2078. Pero para entonces, el costo de aprovechar esta vulnerabilidad podría ser mayor.
Conclusión
Teniendo en cuenta la dificultad, el costo y las escasas oportunidades de copiar transacciones, esta vulnerabilidad no constituye una amenaza principal para la seguridad de Bitcoin. Sin embargo, los desarrolladores han invertido una gran cantidad de esfuerzo en este problema a lo largo de los años, y 2046 podría ser el último plazo para solucionarlo por completo. La solución podría requerir un soft fork, como hacer cumplir el compromiso de SegWit.