Una firma podía validar un pago sin decir a dónde iba el dinero: el arreglo ya está fusionado, pero sin versión asignada

Bitcoin Core tapa el fallo de PSBT que permitía desviar pagos

Bitcoin Core tapa el fallo de PSBT que permitía desviar pagos

Los desarrolladores de Bitcoin Core han fusionado un cambio en la forma en que el programa trata las transacciones a medio firmar, después de documentarse un hueco que permitía alterar a dónde iba el dinero sin robar ninguna clave privada. El problema no está en la criptografía ni en la red, sino en cómo se pasa de mano en mano una transacción antes de quedar firmada del todo. Un firmante podía recibir una petición a la que le faltaba una salida y, en el modo de firma llamado SIGHASH_SINGLE, estampar su firma sobre una transacción en la que el destinatario quedaba sin atar. Quien montara el envío final tenía margen para poner otra dirección. La corrección ya está integrada en el repositorio del cliente, según publicó el domingo CryptoSlate, y afecta al manejo de los PSBT, el formato con el que monederos físicos, carteras multifirma y servicios de custodia se reparten la firma de un mismo pago.

Qué firma exactamente SIGHASH_SINGLE

Una firma de Bitcoin no autoriza «un pago». Autoriza una descripción concreta de un pago, y cada firmante elige cuánta parte de esa descripción queda cubierta. Lo habitual es SIGHASH_ALL: la firma abarca todas las entradas y todas las salidas, así que cambiar una coma invalida el envío. SIGHASH_SINGLE es más estrecho por diseño. Cubre las entradas y una sola salida, la que ocupa la misma posición que la entrada que se está firmando. Sirve para montar operaciones entre varias partes, donde cada una quiere comprometerse con su trozo y dejar el resto abierto.

El fallo aparece cuando esa salida no existe. Si la petición llega sin ella, la firma se produce igual y no se compromete con ningún destinatario. Las claves no se mueven de sitio, el aparato no se rinde, nadie descifra nada: el usuario autoriza un documento incompleto y el hueco lo rellena otro. Es el tipo de problema que no se ve en una pantalla de confirmación, porque lo que falta no se muestra.

El parche está fusionado, la versión no

Aquí viene el matiz importante para quien use el cliente de referencia. El cambio está aceptado en el código, pero no hay todavía un destino de publicación confirmado: no se sabe en qué número de versión va a salir. Hasta que aparezca en unas notas de publicación, quien corra la versión estable no lo tiene.

Conviene además entender qué clase de arreglo es. No se toca el consenso de la red, no hay bifurcación suave que votar ni nodos que haya que convencer. Es un endurecimiento del lado del programa: el software se vuelve desconfiado con las peticiones mal formadas. Eso tiene una consecuencia incómoda. Bitcoin Core no es el único que construye y firma PSBT, y el parche sólo protege a quien lo ejecuta. Cada fabricante de monederos, cada biblioteca y cada servicio de custodia tiene que mirar su propio código y decidir si rechaza esas peticiones. No hay un interruptor central que lo resuelva para todos a la vez.

Dónde vive el riesgo cuando se firma entre varios

Los PSBT son la fontanería invisible de la custodia seria. Un monedero físico los usa para firmar sin conectarse; una cartera de dos de tres firmas los usa para pasar la transacción entre dispositivos; una empresa los usa para que un pago salga sólo cuando han pasado por él dos personas distintas. En todos esos montajes hay un coordinador —un programa, un servicio, a veces un tercero— que arma la transacción y la reparte. Ese coordinador es quien se beneficia de una firma que no dice a dónde va el dinero.

De ahí que el reparto de culpas sea tan concreto: la protección no está en guardar mejor la clave, sino en que el programa que firma se niegue a firmar lo que no entiende. La idea de que una transacción no es definitiva hasta que un bloque la recoge —el mecanismo que explicamos en nuestra guía de blockchain— es justo lo que da margen a este tipo de manipulación: entre la firma y la confirmación hay un rato en el que el envío todavía se puede retocar.

Lo que hay que vigilar es muy preciso: el número de versión de Bitcoin Core en cuyas notas de publicación aparezca el cambio, y los avisos de firmware de los fabricantes de monederos que construyan PSBT. Mientras ninguno de los dos llegue, la recomendación técnica de siempre sigue siendo la única barrera: no firmar peticiones que vengan de donde no se sabe.

Fuentes

Este artículo no es una recomendación de inversión. Las criptomonedas son un activo volátil y sin cobertura de garantía de depósitos: puedes perder todo el dinero invertido.

¿Quieres ver antes nuestras noticias en Google? Añade Jukipto como fuente preferida.

Tags / Categorías : Tecnología

Este artículo lo publica la redacción de Jukipto siguiendo nuestra política editorial. Los datos de mercado proceden de CoinGecko. No es una recomendación de inversión: las criptomonedas son un activo volátil y puedes perder todo el dinero invertido — lee el aviso legal financiero. ¿Ves un error? Escríbenos a info@jukipto.com y lo corregimos.

Elige el tema
Elige el color de acento