La maleabilidad de las transacciones hace referencia a la capacidad de que un atacante pueda alterar o bien trastocar el hash que identifica una transacción en la blockchain. Una situación que indudablemente puede trastocar y producir serios problemas en un sistema de pago como el de las criptomonedas.

 

La maleabilidad de las transacciones de Bitcoin, es un género de ataque de Denegación de Servicio (DoS), que le deja a un atacante poder alterar o bien trastocar el hash que identifica una transacción en la blockchain.

A simple vista, esto es posible que no parezca un inconveniente en sí, puesto 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. No obstante, el inconveniente brota cuando el receptor de la transacción, aduce que no ve reflejada dicha operación en su cuenta. Con lo que desconfía del usuario que efectuó la operación y del sistema por norma general.

Es por tal razón, que la maleabilidad de una transacción es un serio problema para los sistemas de pago de criptomonedas. Un inconvenientes que muchas criptomonedas encaran y resuelven de diferentes formas.

¿De qué forma ocurre este ataque?

Las transacciones en Bitcoin están formadas por una o bien múltiples entradas y por una o bien múltiples salidas. Las entradas están compuestas por una serie de referencias que hacen alusión a las salidas de una transacción precedente, y son conocidas como salidas no gastadas (UTXO). Por su lado, las salidas poseen la dirección a la que fue efectuada la transacción, y la cantidad de fondos que fueron transferidos.

Cada transacción efectuada en la blockchain de Bitcoin contiene su hash. Este hash es único y también inigualable, y se usa para identificar o bien situar una transacción particularmente en la blockchain.

De esta forma, a través del hash, los mineros pueden rastrear y revisar que una transacción ha sido agregada en un bloque. Y por consiguiente, validar que es parte de la blockchain.

Ahora bien, hasta que no se realice la validación y confirmación de esa transacción, un atacante tiene la posibilidad de alterar y trastocar el hash identificador de la transacción, sin trastocar la firma digital. Con esta acción, el atacante consigue esconder la transacción y de este modo le hace opinar al transmisor que la operación no se efectuó. Con lo que unas horas después, hace una reclamación al transmisor a fin de que este vuelva a efectuar la trasferencia, aduciendo que no ha recibido los fondos. Es en este punto donde se ejecuta el ataque o bien estafa. Puesto que el atacante sí recibió los fondos transferidos, solo que no se ven reflejados con el hash (txid) que se registró en el servicio.

Factibilidad de ejecutar este ataque

El principal objetivo de los ataques por maleabilidad de las transacciones son los exchanges o bien casas de intercambio de criptomonedas. Debido al gran volumen de operaciones y transacciones que manejan diariamente, un atacante puede sacar partido de la situación.

En el caso de un usuario que no realice tantas transacciones al día, es poquísimo probable que sea víctima de este género de ataques. Puesto que al preguntar el saldo de su cuenta va a ver reflejado el débito de la transacción. Con lo que va a poder percatarse de que si fue efectuada la transacción y verificará que la dirección de destino sí cuenta con los fondos transferidos.

Mt Gox y el inconveniente de maleabilidad de las transacciones

Las numerosas pérdidas sufridas por el conocido y errado exchange de criptomonedas, Mt Gox, fueron ocasionadas conforme notificó el equipo técnico y su CEO, Mark Karpelès, debido a un inconveniente de maleabilidad de las transacciones. Que dejaron que múltiples piratas informáticos y atacantes pudiesen hacer reclamos por transacciones aparentemente erradas. Las que sumaron un aproximado de ochocientos cincuenta bitcoins robados. Un lamentable hecho que llevó al exchange a su quiebra en dos mil catorce, y que dejó a miles y miles de usuarios enojados y desconcertados.

Según Karpelès, esto fue debido a la maleabilidad de las transacciones. Karpeles arguyó que los usuarios pudieron hacer múltiples retiros de sus fondos, aduciendo que estos no se habían efectuado, cuando realmente sí se realizaron.

No obstante, múltiples investigaciones efectuadas determinaron que la quiebra de este exchange no se debió solo a un acto de hackeo, sino más bien asimismo a la manipulación de datos por la parte del equipo responsable de Mt Gox. En el informe publicado por ArXiv se estima que la pérdida de bitcoins por maleabilidad de las transacciones no supera las cuatrocientos unidades.

¿Cuánto sabes, criptonauta?

¿La maleabilidad de las transacciones en un riesgo de seguridad?

Propuestas de soluciones al inconveniente de maleabilidad

Desde que esta problemática en las transacciones fue detectada en Bitcoin y en otras criptomonedas, han sido múltiples los sacrificios de los desarrolladores y especialistas por encararlo. De esta manera, se dio sitio al desarrollo de 2 soluciones con objetivo es abordar la maleabilidad.

Propuestas en Bitcoin

  • BIP 0062 es una solución presentada en dos mil catorce por el desarrollador Pieter Wuille con el propósito de tratar el inconveniente de maleabilidad de las transacciones Bitcoin, que ocasionaban que el expedidor perdiese el indicio de sus transacciones una vez cambiados los hash. Causando que, bajo manipulaciones, volviese a mandar los fondos una y otra vez, produciendo grandes pérdidas. En esta propuesta, se exponen todas y cada una de las formas posibles de hallar maleabilidad en las transacciones, con lo que pueden ser abordadas y solucionadas.
  • SegWit es otra herramienta desarrollada con la meta de agredir, entre otras muchas cosas, el inconveniente de maleabilidad de las transacciones de Bitcoin. Para evitarlo, SegWit aparta los datos de la transacción, incluídos en el árbol de Merkle, de las firmas. De esta manera, las transacciones que usan y gastan las salidas segwit no son frágiles a inconvenientes de maleabilidad.

Propuestas en Ethereum

El Hard Fork de Ethereum “Homestead”, descrito en el EIP-2, resolvía el inconveniente de maleabilidad en Ethereum. Más particularmente la actualización hace que todas y cada una de las firmas de transacciones cuyo valor s es mayor que secp256k1n / dos ahora se consideran inválidas. Con esto se solventa el inconveniente de la maleabilidad de transacciones en Ethereum.

Propuestas en Dash

Dash asimismo ha efectuado cambios en su software para eludir este inconveniente. Debido a la proximidad de código de Dash y Bitcoin, Dash opto por aplicar un fix siguiendo las recomendaciones del BIP-66. Esto solventa parte de inconvenientes de maleabilidad de transacciones en Dash. De manera adicional asimismo aplicó un parche basándose en las recomendaciones dadas en el BIP-0147. Mas a pesar de esto, Dash todavía no está protegido  absolutamente contra este género de ataques, y para su equipo de desarrollo esto no es una prioridad de primer nivel, como lo hacen ver en su blog.