¿Cómo se soluciona el problema de la maleabilidad de la transacción?

Con el próximo lanzamiento de Bitcoin Core 0.9, me pregunto cómo se soluciona el problema de la maleabilidad de las transacciones y cuáles son las consecuencias de la solución.

Parece que la maleabilidad de las transacciones está causando algunos problemas a la red de Bitcoin:

  • La red es DDoSed por múltiples gastos dobles aparentes que se transmiten
  • Los remitentes de las transacciones deben evitar gastar 0 transacciones de confirmación en caso de que se invaliden por maleabilidad.
  • Al guardar los TxID de transacciones gastadas para el mantenimiento de registros, uno debe asegurarse de que el TxID no se haya cambiado más tarde.

¿Se abordarán todos esos problemas en la próxima actualización y, de ser así, cómo se abordarán?

Los elementos segundo y tercero están fuera del alcance del software básico de cliente y billetera de Bitcoin; serían problemas que el software personalizado de un intercambio debe abordar.
Las notas de la versión de Bitcoin Core 0.90 (el cliente de referencia) presentan varias correcciones para la maleabilidad de las transacciones: bitcointalk.org/index.php?topic=495683.0

Respuestas (1)

La maleabilidad de las transacciones es una consecuencia de las características de Bitcoin. Los datos de entrada (scriptSig) para reclamar productos son deliberadamente maleables para permitir escenarios útiles en los que uno querría reclamar productos de diferentes maneras.

La consecuencia de estas características es que el hash de la transacción cambia y no se debe considerar como una información útil que no sea la referencia a los resultados de las transacciones que han sido confirmadas.

Dicho esto, no estoy seguro de qué cambios podría implementar el cliente para evitar que cambie el hash. Tal vez pueda hacer cumplir reglas específicas, como hacer que los datos no canónicos no sean estándar , sin embargo, eso puede interferir con las extensiones posteriores de Bitcoin.

Si scriptSig es maleable a propósito, ¿no se puede excluir al calcular el txid?