What is bitcoin transaction malleability?

Maleabilidad en Bitcoin: Un Riesgo Explicado

27/10/2025

Valoración: 4.03 (1698 votos)

En el complejo universo de Bitcoin, existen conceptos técnicos que, aunque sutiles, tienen un impacto profundo en la seguridad y fiabilidad de la red. Uno de los más notorios históricamente ha sido la maleabilidad de transacción. Se trata de una debilidad o vulnerabilidad inherente al protocolo original de Bitcoin que permitía a un tercero malintencionado alterar el identificador único de una transacción (conocido como TXID) antes de que esta fuera confirmada e incluida en un bloque de la blockchain. Es crucial entender desde el principio que este ataque no modifica los elementos esenciales de la transacción: ni el monto enviado ni la dirección del destinatario se ven afectados. Sin embargo, al cambiar su "huella digital", se podía generar una enorme confusión, afectando especialmente a servicios automatizados que dependen de este identificador para funcionar correctamente.

What is bitcoin transaction malleability?
Transaction malleability is a weakness or vulnerability in the Bitcoin protocol that allows an attacker to change the unique ID of a Bitcoin transaction before it is confirmed on the blockchain. This change in the transaction ID doesn't alter the transaction amount or destination but modifies the ID itself. 30 nov 2023
Índice de contenido

¿Cómo Funciona Exactamente la Maleabilidad de Transacción?

Para comprender la maleabilidad, primero debemos saber cómo se identifica una transacción en Bitcoin. Cada transacción que se emite a la red tiene un identificador único, el TXID (Transaction ID). Este ID no es un número aleatorio; es el resultado de aplicar una función de hash criptográfica (específicamente, SHA256 aplicado dos veces) a todos los datos que componen la transacción, incluyendo las firmas digitales del emisor.

Una propiedad fundamental de las funciones de hash es que cualquier cambio, por mínimo que sea, en los datos de entrada, produce un resultado (un hash) completamente diferente e impredecible. La idea es que cada transacción solo pueda tener un único TXID posible.

Aquí es donde residía la vulnerabilidad. La firma digital que un usuario utiliza para autorizar el envío de sus bitcoins tiene un formato específico (codificación DER). Sin embargo, en las primeras versiones del protocolo de Bitcoin, la red no era lo suficientemente estricta al verificar este formato. Esto significaba que se podían introducir pequeños cambios en la firma (como añadir o quitar un relleno de bytes nulos) que no la invalidaban criptográficamente, pero que sí alteraban los datos de entrada para la función de hash. En consecuencia, un atacante podía tomar una transacción emitida a la red, modificar sutilmente la firma y retransmitirla. El resultado eran dos versiones de la misma transacción, con el mismo origen, destino y monto, pero con dos TXID diferentes compitiendo por ser confirmadas.

Una Analogía para Entenderlo Mejor

Imagina que realizas una transferencia bancaria y el banco te da un número de referencia: ABC-123. Con ese número, tanto tú como el receptor podéis rastrear el estado del envío. Ahora, imagina que un intermediario intercepta la orden y, sin cambiar el monto ni el destinatario, modifica el número de referencia a XYZ-789 antes de que el banco la procese. El dinero llegará a su destino, pero si tú intentas rastrear la transferencia con el código original (ABC-123), aparecerá como no existente o fallida, generando una gran confusión.

Maleabilidad vs. Doble Gasto: Aclarando la Confusión

Es muy común confundir la maleabilidad de transacción con un ataque de doble gasto, pero son fundamentalmente diferentes. Un ataque de doble gasto es el intento de gastar las mismas monedas en dos transacciones distintas y dirigidas a diferentes destinatarios. El objetivo del atacante es lograr que su transacción fraudulenta se confirme antes que la legítima, estafando así a uno de los receptores.

La maleabilidad, en cambio, no crea una segunda transacción con los mismos fondos. Simplemente crea un segundo identificador para la misma y única transacción. A continuación, una tabla comparativa para dejar claras las diferencias:

Característica Maleabilidad de Transacción Doble Gasto
Objetivo del Ataque Cambiar el ID de una transacción (TXID) antes de su confirmación. Gastar las mismas monedas dos veces en transacciones diferentes.
Resultado en la Blockchain Solo una transacción se confirma, pero puede ser con un ID diferente al original. Solo una de las dos transacciones puede ser confirmada. La otra es invalidada.
Impacto en los Fondos El monto y el destino no cambian. Los fondos llegan a donde debían. Un receptor recibe los fondos, mientras que el otro es estafado y no recibe nada.
Número de Transacciones Reales Una sola transacción con múltiples posibles IDs. Dos o más transacciones distintas compitiendo por los mismos fondos.

La Solución Definitiva: Segregated Witness (SegWit)

La comunidad de desarrolladores de Bitcoin trabajó durante años para encontrar una solución elegante y retrocompatible a este problema. La respuesta llegó con la actualización del protocolo conocida como SegWit (Testigo Segregado), implementada en 2017.

La genialidad de SegWit radica en cómo reestructura los datos de una transacción. Como su nombre indica, "segrega" o separa los datos de la firma digital (el "testigo" o "witness") de la parte principal de la transacción que se utiliza para calcular el TXID. Al mover la parte maleable (la firma) fuera del cálculo del identificador, el TXID se vuelve inmutable desde el momento de su creación. Ya no hay forma de que un tercero lo altere, porque los datos que lo generan ya no incluyen la firma modificable.

Además de solucionar la maleabilidad, SegWit trajo consigo otros beneficios importantes, como un aumento en la capacidad de transacciones por bloque y una reducción en las comisiones, lo que supuso una de las actualizaciones más importantes en la historia de Bitcoin.

¿Sigue Siendo un Problema Hoy en Día?

Gracias a la adopción generalizada de SegWit, la maleabilidad de transacción es en gran medida un problema del pasado para quienes utilizan wallets y servicios modernos. Sin embargo, el concepto sigue siendo fundamental para entender la evolución de la seguridad en Bitcoin y subraya una regla de oro: las transacciones de cero-confirmación no deben ser consideradas seguras. Confiar en una transacción antes de que sea confirmada en al menos un bloque es arriesgado, precisamente por vulnerabilidades como la maleabilidad y el riesgo de doble gasto.

Aunque hoy en día un ataque de este tipo es raro y su beneficio para el atacante es limitado (a menudo se realizaba por razones políticas o para demostrar la existencia de la vulnerabilidad), sus lecciones perduran. Si alguna vez una de tus transacciones se viera afectada, lo más probable es que simplemente se retrase o que los fondos vuelvan a tu monedero al invalidarse la transacción original, pero es un recordatorio de la robustez que la red ha ganado con el tiempo.

Preguntas Frecuentes (FAQ)

  • ¿Puede un ataque de maleabilidad robar mis bitcoins?

    No directamente. El ataque no puede cambiar el destinatario ni el monto de la transacción. Sin embargo, la confusión generada podría ser explotada por estafadores para engañar a sistemas automatizados (como los de un exchange) y hacerles creer que un depósito nunca llegó, intentando obtener un doble crédito.

  • ¿Todas las transacciones de Bitcoin son vulnerables a la maleabilidad?

    No. Las transacciones que se crean y envían utilizando el formato SegWit están protegidas contra este tipo de vulnerabilidad, ya que la firma digital se separa del cálculo del TXID.

  • Si mi transacción sufre maleabilidad, ¿pierdo mi dinero?

    Generalmente no. La transacción se confirmará eventualmente con un nuevo ID, o la transacción original será invalidada por la red, y los fondos permanecerán o volverán a tu monedero. El principal inconveniente suele ser la demora y la confusión.

  • ¿Por qué alguien realizaría un ataque de este tipo si no gana dinero directamente?

    Las motivaciones pueden variar. En el pasado, se ha utilizado para interrumpir servicios, para demostrar debilidades en el protocolo por razones ideológicas o "políticas" dentro de la comunidad, o en casos más sofisticados, para explotar la lógica de negocio de plataformas que no manejaban correctamente esta eventualidad, como fue el famoso caso del exchange Mt. Gox.

Si quieres conocer otros artículos parecidos a Maleabilidad en Bitcoin: Un Riesgo Explicado puedes visitar la categoría Seguridad.

Subir