¿Qué es la maleabilidad de una transacción?

La maleabilidad de las transacciones hace referencia a la capacidad de que un atacante pueda modificar o alterar el hash que identifica una transacción dentro de la cadena de bloques. Una situación que sin duda puede alterar y generar problemas graves dentro de un sistema de pago como el de las criptomonedas.

La maleabilidad de las transacciones de Bitcoin, es un tipo de ataque de Denegación de Servicio (DoS), que le permite a un atacante poder modificar o alterar el hash que identifica una transacción dentro de la cadena de bloques.

A simple vista, esto puede que no parezca un problema en sí, ya que la modificación del hash de una transacción, no la afectaría en nada, y la transacción se ejecutaría de igual forma. Sin embargo, el problema surge cuando el receptor de la transacción, alega que no ve reflejada dicha operación en su cuenta. Por lo que desconfía del usuario que realizó la operación y del sistema en general.

Es por esta razón, que la maleabilidad de una transacción es un grave problema para los sistemas de pago de criptomonedas. Un problema que muchas criptomonedas enfrentan y solucionan de diversas formas.

¿Cómo ocurre este ataque?

Las transacciones en Bitcoin están conformadas por una o varias entradas y por una o varias salidas. Las entradas están compuestas por una serie de referencias que hacen alusión a las salidas de una transacción anterior, y son conocidas como salidas no gastadas (UTXO). Por su parte, las salidas contienen la dirección a la cual fue realizada la transacción, y la cantidad de fondos que fueron transferidos.

Cada transacción realizada en la cadena de bloques de Bitcoin contiene su propio hash. Este hash es único e irrepetible, y se utiliza para identificar o ubicar una transacción en particular dentro de la cadena de bloques.

De esta forma, a través del hash, los mineros pueden rastrear y comprobar que una transacción ha sido agregada dentro de un bloque. Y por lo tanto, validar que forma parte de la cadena de bloques.

Ahora bien, hasta que no se realice la validación y confirmación de esa transacción, un atacante tiene la posibilidad de modificar y alterar el hash identificador de la transacción, sin alterar la firma digital. Con esta acción, el atacante logra ocultar las transacciones y así le hace creer al emisor que la operación no se realizó. Por lo que unas horas más tarde, hace una devolución al emisor para que éste vuelva a realizar la transferencia, alegando que no ha recibido los fondos. En este punto es donde se ejecuta el ataque o estafa. Ya que el atacante sí recibió los fondos transferidos, sólo que no se ven reflejados con el hash (txid) que se capturó en el servicio.

factibilidad de ejecutar este ataque
El objetivo principal de los ataques por maleabilidad de las transacciones son los intercambios o casas de intercambio de criptomonedas. Debido al gran volumen de operaciones y transacciones que manejan a diario, un atacante puede sacar provecho de la situación.

En el caso de un usuario que no realice tantas transacciones al día, es muy poco probable que sea víctima de este tipo de ataques. Ya que al consultar el saldo de su cuenta verá reflejado el débito de la transacción. Por lo que podrá darse cuenta de que si fue realizada la transacción y comprobará que la dirección de destino sí cuenta con los fondos transferidos.

Mt Gox y el problema de maleabilidad de las transacciones

Las numerosas pérdidas sufridas por el famoso y fallido exchange de criptomonedas, Mt Gox, fueron causadas según actualización el equipo técnico y su CEO, Mark Karpelès, debido a un problema de maleabilidad de las transacciones. Que permitieron que varios hackers y atacantes pudieran hacer reclamos por transacciones supuestamente fallidas. Las cuales sumaron un aproximado de 850.000 bitcoins robados. Un lamentable hecho que llevó al intercambio a su quiebra en 2014, y que dejó a miles de usuarios enojados y desconcertados.

Según Karpelès, esto fue debido a la maleabilidad de las transacciones. Karpeles argumentó que los usuarios pueden hacer múltiples retiros de sus fondos, alegando que estos no se han realizado, cuando en realidad sí se efectuaron.

No obstante, varias investigaciones realizadas determinaron que la quiebra de este exchange no se debió sólo a un acto de hackeo, sino también a la manipulación de datos por parte del equipo responsable de Mt Gox. En el informe publicado por ArXiv se calcula que la pérdida de bitcoins por maleabilidad de las transacciones no supera las 400 unidades.

Propuestas de soluciones al problema de maleabilidad

Desde que esta problemática en las transacciones fue detectada en Bitcoin y en otras criptomonedas, han sido varios los esfuerzos de los desarrolladores y especialistas por afrontarlo. Así, se dio lugar al desarrollo de dos soluciones con objetivo es abordar la maleabilidad.

Propuestas en Bitcoin

  • BIP 0062 es una solución presentada en 2014 por el desarrollador Pieter Wuille con la finalidad de tratar el problema de maleabilidad de las transacciones Bitcoin, que causaban que el remitente perdiera el rastro de sus transacciones una vez modificados los hash. Ocasionando que, bajo manipulaciones, volviera a enviar los fondos una y otra vez, experimentó grandes pérdidas. En esta propuesta, se exponen todas las formas posibles de encontrar maleabilidad en las transacciones, con lo que pueden ser abordadas y solucionadas.
  • SegWit es otra herramienta diseñada con la finalidad de atacar, entre otras cosas, el problema de maleabilidad de las transacciones de Bitcoin. Para evitarlo, SegWit separa los datos de las transacciones, incluidos en el árbol de Merkle, de las firmas. Así, las transacciones que utilizan y gastan las salidas segwit no son vulnerables a problemas de maleabilidad.

Propuestas en Ethereum

El Hard Fork de Ethereum “Homestead”, descrito en el EIP-2, solucionaba el problema de maleabilidad en Ethereum. Más específicamente la actualización hace que todas las firmas de transacciones cuyo valor s es mayor que secp256k1n / 2 ahora se considera inválidas. Con ello se soluciona el problema de la maleabilidad de transacciones en Ethereum.

Propuestas en Dash

Dash también ha realizado cambios en su software para evitar este problema. Debido a la proximidad del código de Dash y Bitcoin, Dash optó por aplicar un arreglo siguiendo las recomendaciones del BIP-66. Esto soluciona una parte de problemas de maleabilidad de transacciones en Dash. Adicionalmente también aplicó un parche extenso en las dadas recomendaciones en el BIP-0147. Pero pese a esto, Dash aún no está completamente protegido contra este tipo de ataques, y para su equipo de desarrollo esto no es una prioridad de primer nivel, como lo hacen ver en su blog.

CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum