Bitcoin fenómeno de transacciones duplicadas: un defecto del sistema raro
Resumen
Las transacciones de Bitcoin generalmente utilizan salidas no gastadas haciendo referencia al ID de la transacción anterior. Estas salidas solo se pueden gastar una vez, de lo contrario, surgiría un problema de doble gasto. Sin embargo, en el sistema de Bitcoin existen de hecho dos conjuntos de transacciones completamente idénticas. Esta situación ocurre porque las transacciones coinbase no tienen entradas, sino que generan nuevas monedas directamente. Por lo tanto, dos transacciones coinbase diferentes pueden enviar la misma cantidad a la misma dirección, construidas de manera completamente idéntica, lo que genera el mismo ID de transacción. Aparte de esto, la única posibilidad de que el ID de la transacción se repita es una colisión de hash, pero esto es prácticamente imposible que ocurra con la tecnología criptográfica actual.
Estas dos series de transacciones duplicadas ocurrieron entre el 14 y 15 de noviembre de 2010, con un intervalo de aproximadamente 16 horas. La primera serie de transacciones duplicadas (d5d2....8599) está intercalada entre la segunda serie, a pesar de que apareció por primera vez en la cadena de bloques más tarde.
Detalles de transacciones repetidas
El explorador de bloques muestra que la primera transacción duplicada aparece en dos bloques diferentes. Existen algunas diferencias entre los distintos exploradores de bloques al mostrar estas transacciones duplicadas; algunos muestran por defecto el bloque más antiguo, mientras que otros muestran el bloque más reciente.
En los cuatro bloques involucrados, solo un bloque (91,812) contiene otras transacciones, combinando 1 BTC y 19 BTC en 20 BTC.
Manejo de la salida repetida
Debido a la existencia de dos conjuntos de IDs de transacción idénticos, estas transacciones duplicadas implican un total de 200 BTC, o se puede entender como 100 BTC. Hasta ahora, estos 200 BTC no han sido gastados. Teóricamente, la persona que posee la clave privada correspondiente puede gastar estos Bitcoins, pero una vez que se gaste, los 50 BTC duplicados no podrán ser utilizados y se perderán, por lo que en realidad solo 100 BTC pueden ser recuperados. En cuanto a de qué bloque se deducirán estas monedas después de ser gastadas, actualmente no se puede determinar.
El problema de las transacciones duplicadas
Las transacciones duplicadas pueden causar confusión en las billeteras y en los exploradores de bloques, y también pueden oscurecer el origen del Bitcoin. También puede ser utilizado para ataques, como pagar a alguien dos veces con dos transacciones duplicadas, cuando en realidad solo hay disponible la mitad de los fondos. Esto puede ser utilizado para atacar a los intercambios, intentando causar errores en sus fondos.
Solución
Para resolver el problema de las transacciones duplicadas, en marzo de 2012 se implementó la bifurcación suave BIP30, que prohíbe el uso de ID de transacción duplicados, a menos que la transacción anterior haya sido gastada. En septiembre del mismo año, esta regla fue modificada aún más y se aplicó a todos los bloques.
En marzo de 2013, la bifurcación suave BIP34 requería que las transacciones de coinbase incluyeran la altura del bloque, lo que básicamente resolvía el problema de las transacciones duplicadas. Después de esto, los nodos dejaron de realizar la verificación BIP30, ya que esta costosa verificación ya no era necesaria.
Problemas potenciales del futuro
A pesar de que BIP34 resolvió la mayor parte de los problemas, en algunos bloques antes de su activación, el primer byte del scriptSig de la transacción coinbase coincide exactamente con la altura de bloque válida en el futuro. Esto significa que aún es posible que ocurran transacciones duplicadas en ciertas alturas de bloque específicas en el futuro.
El siguiente bloque que podría generar transacciones duplicadas es 1,983,702, que se espera que se produzca alrededor de enero de 2046. Aprovechar esta vulnerabilidad requeriría que los mineros gastaran una gran cantidad de dinero, que según el precio actual de Bitcoin podría superar los 15 millones de dólares, y además, casi no habría beneficios reales.
El bloque de riesgo potencial posterior es 169985, que podría ser replicado en 2078. Del mismo modo, el costo de aprovechar esta vulnerabilidad también podría ser muy alto.
Conclusión
Teniendo en cuenta la dificultad de copiar transacciones, el costo y la escasez de oportunidades para hacerlo, esta vulnerabilidad no representa una amenaza principal para la seguridad de Bitcoin. Sin embargo, los desarrolladores aún están trabajando en soluciones, y es posible que se necesite un hard fork para solucionar este problema de manera definitiva. Un enfoque posible es hacer cumplir el compromiso de SegWit.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
15 me gusta
Recompensa
15
5
Compartir
Comentar
0/400
rugpull_survivor
· hace6h
¡Mira este bug, no está mal! Para nosotros los pobres, eso es lo único que tenemos de diversión.
Ver originalesResponder0
ZenChainWalker
· hace6h
Este bug de minería ya tiene 13 años. Recuerdo que en ese momento no dormí para ver esto.
Ver originalesResponder0
ImpermanentPhilosopher
· hace6h
¿Esta vulnerabilidad es un poco temprana?
Ver originalesResponder0
ser_we_are_ngmi
· hace6h
2010 del bug... realmente es una historia oscura del mundo Cripto
Análisis de la vulnerabilidad de transacciones repetidas de Bitcoin: causas históricas, riesgos potenciales y desafíos futuros
Bitcoin fenómeno de transacciones duplicadas: un defecto del sistema raro
Resumen
Las transacciones de Bitcoin generalmente utilizan salidas no gastadas haciendo referencia al ID de la transacción anterior. Estas salidas solo se pueden gastar una vez, de lo contrario, surgiría un problema de doble gasto. Sin embargo, en el sistema de Bitcoin existen de hecho dos conjuntos de transacciones completamente idénticas. Esta situación ocurre porque las transacciones coinbase no tienen entradas, sino que generan nuevas monedas directamente. Por lo tanto, dos transacciones coinbase diferentes pueden enviar la misma cantidad a la misma dirección, construidas de manera completamente idéntica, lo que genera el mismo ID de transacción. Aparte de esto, la única posibilidad de que el ID de la transacción se repita es una colisión de hash, pero esto es prácticamente imposible que ocurra con la tecnología criptográfica actual.
Estas dos series de transacciones duplicadas ocurrieron entre el 14 y 15 de noviembre de 2010, con un intervalo de aproximadamente 16 horas. La primera serie de transacciones duplicadas (d5d2....8599) está intercalada entre la segunda serie, a pesar de que apareció por primera vez en la cadena de bloques más tarde.
Detalles de transacciones repetidas
El explorador de bloques muestra que la primera transacción duplicada aparece en dos bloques diferentes. Existen algunas diferencias entre los distintos exploradores de bloques al mostrar estas transacciones duplicadas; algunos muestran por defecto el bloque más antiguo, mientras que otros muestran el bloque más reciente.
En los cuatro bloques involucrados, solo un bloque (91,812) contiene otras transacciones, combinando 1 BTC y 19 BTC en 20 BTC.
Manejo de la salida repetida
Debido a la existencia de dos conjuntos de IDs de transacción idénticos, estas transacciones duplicadas implican un total de 200 BTC, o se puede entender como 100 BTC. Hasta ahora, estos 200 BTC no han sido gastados. Teóricamente, la persona que posee la clave privada correspondiente puede gastar estos Bitcoins, pero una vez que se gaste, los 50 BTC duplicados no podrán ser utilizados y se perderán, por lo que en realidad solo 100 BTC pueden ser recuperados. En cuanto a de qué bloque se deducirán estas monedas después de ser gastadas, actualmente no se puede determinar.
El problema de las transacciones duplicadas
Las transacciones duplicadas pueden causar confusión en las billeteras y en los exploradores de bloques, y también pueden oscurecer el origen del Bitcoin. También puede ser utilizado para ataques, como pagar a alguien dos veces con dos transacciones duplicadas, cuando en realidad solo hay disponible la mitad de los fondos. Esto puede ser utilizado para atacar a los intercambios, intentando causar errores en sus fondos.
Solución
Para resolver el problema de las transacciones duplicadas, en marzo de 2012 se implementó la bifurcación suave BIP30, que prohíbe el uso de ID de transacción duplicados, a menos que la transacción anterior haya sido gastada. En septiembre del mismo año, esta regla fue modificada aún más y se aplicó a todos los bloques.
En marzo de 2013, la bifurcación suave BIP34 requería que las transacciones de coinbase incluyeran la altura del bloque, lo que básicamente resolvía el problema de las transacciones duplicadas. Después de esto, los nodos dejaron de realizar la verificación BIP30, ya que esta costosa verificación ya no era necesaria.
Problemas potenciales del futuro
A pesar de que BIP34 resolvió la mayor parte de los problemas, en algunos bloques antes de su activación, el primer byte del scriptSig de la transacción coinbase coincide exactamente con la altura de bloque válida en el futuro. Esto significa que aún es posible que ocurran transacciones duplicadas en ciertas alturas de bloque específicas en el futuro.
El siguiente bloque que podría generar transacciones duplicadas es 1,983,702, que se espera que se produzca alrededor de enero de 2046. Aprovechar esta vulnerabilidad requeriría que los mineros gastaran una gran cantidad de dinero, que según el precio actual de Bitcoin podría superar los 15 millones de dólares, y además, casi no habría beneficios reales.
El bloque de riesgo potencial posterior es 169985, que podría ser replicado en 2078. Del mismo modo, el costo de aprovechar esta vulnerabilidad también podría ser muy alto.
Conclusión
Teniendo en cuenta la dificultad de copiar transacciones, el costo y la escasez de oportunidades para hacerlo, esta vulnerabilidad no representa una amenaza principal para la seguridad de Bitcoin. Sin embargo, los desarrolladores aún están trabajando en soluciones, y es posible que se necesite un hard fork para solucionar este problema de manera definitiva. Un enfoque posible es hacer cumplir el compromiso de SegWit.