-
La vulnerabilidad afecta a transacciones SegWit y P2SH.
-
Este y otros beneficios hacen necesaria la masiva adopción de Taproot en el ecosistema de Bitcoin.
Desde el pasado 14 de noviembre, Bitcoin (BTC) cuenta con Taproot. Esta es una actualización que le otorga ventajas a la red, principalmente relacionadas con la privacidad. Pero también Taproot brinda otros beneficios no tan conocidos, como el que se presenta a continuación.
Existe en Bitcoin un potencial vector de ataque relacionado con el pago de tarifas (las comisiones que reciben los mineros por validar las transacciones).
En resumen, la forma en que las tarifas se pagan en transacciones SegWit (direcciones que comienzan con «bc1») y P2SH (direcciones que comienzan con 3), hace que no exista un tamaño de tarifa especificado explícitamente por un campo de metadatos. Por el contrario, se infiere la tarifa de los datos de la transacción.
Explica Trezor, firma especializada en fabricación de monederos hardware para Bitcoin, que esto añade una vulnerabilidad en la red. Un atacante podría engañar a un usuario para que gaste una cantidad de BTC anormalmente alta en tarifas durante una transacción. Lo peor de todo, esto pasaría sin que el usuario note lo que ocurre… hasta que sea demasiado tarde para cancelar la operación.
El ataque es imperceptible para el usuario de Bitcoin
Trezor da el siguiente ejemplo, con una víctima que tiene dos UTXO Segwit-P2SH. Uno de 15 BTC y otro de 20 BTC. Se define UTXO como las transacciones de salida no gastadas. Representa a los bitcoins que fueron devueltos como fondos no gastados en una dirección de Bitcoin. Dicho monto, reflejado en una UTXO es la diferencia de saldo entre una entrada y la salida gastada.
En el ejemplo, se plantea el hecho de que un malware le pida a un usuario que confirme una transacción con la «entrada 1» como 15 BTC y la «entrada 2» como 5,00000001 BTC, con las salidas que el usuario elija.
El usuario, al confirmar la transacción, gastará 20 BTC más una tarifa de 0.00000001 BTC. Ahí, el malware genera un error y se le indica al usuario que vuelva a confirmar la transacción.
Cuando lo haga, confirmará una transacción con la «entrada 1» como 0,00000001 BTC y la «entrada 2» como 20 BTC, con las mismas salidas que antes.
A la vista de la víctima, la transacción sería idéntica. Por lo tanto, confirmará que ha gastado 20 BTC más una tarifa de 0,00000001 BTC.
Pero, el malware usará la firma de la «entrada 1» de la primera transacción y la firma de la «entrada 2» de la segunda transacción, para crear una transacción que gasta 15 BTC de la «entrada 1» y 20 BTC de la «entrada 2».
Como consecuencia de todo este accionar, la víctima del ejemplo terminará pagando una tarifa de transacción de más de 15 BTC.
La solución de Taproot: tamaño de tarifa especificado
Con Taproot esto ya no sucede, porque se añade el campo de metadatos que hace que exista un tamaño de tarifa especificado de forma explícita.
Con Taproot, todas las cantidades de entrada se incluyen explícitamente en los datos firmados, lo que no es el caso [sin Taproot]. Así se protege a los usuarios que podrían usar un monedero con un algoritmo de tarifas poco confiable, ya que, si un atacante intenta mentirle al monedero sobre los montos de entrada, el monedero generará una firma que no será aceptada por la red.
Trezor, compañía especializada en fabricación de hardware wallets para Bitcoin.
Vale aclarar que esta vulnerabilidad —si no se utiliza Taproot— puede ser prevenida por el propio monedero. Algunos requieren que la transacción anterior verifique el saldo real de UTXO. Así se evita que un atacante afirme que ese saldo es más bajo de lo que realmente es.
«Como sabrá, la diferencia entre las cantidades de entrada y salida se considera como la tarifa de transacción en la red de Bitcoin», explica Trezor y reitera que eso podría significar (con monederos que no realizan esa verificación) que «el usuario pague una tarifa significativamente mayor sin saberlo».
La importancia de la adopción de Taproot
Para que este y otros beneficios de Taproot sean palpables para todos los usuarios de Bitcoin, es importante que todo el ecosistema se actualice para dar soporte a esta BIP. Esto incluye a monederos, exchanges, servicios de custodia, nodos, etcétera.
Debido a que Taproot se activó mediante un soft-fork, su implementación no es obligatoria. Quienes no actualizan su software pueden seguir siendo compatibles con la red Bitcoin, mas no gozan de los beneficios de Taproot.
Al momento de redacción de este artículo, importantes actores como Binance, Bitfinex, Coinbase, Gemini, Kraken, Strike, Blockchain.com, Exodus y Coinomi, todavía no brindan soporte para Taproot.
CriptoNoticias ha reportado que, según la opinión de algunos, podría demorar hasta cinco años para que las direcciones Taproot sean compatibles con la mayoría de los servicios de Bitcoin. Esto, teniendo en cuenta que la adopción de SegWit demoró cuatro años para superar el 80%.
Mientras tanto, quienes operan entre direcciones Taproot ya disfrutan de los beneficios con transacciones más privadas, en las que ya no se revela si, por ejemplo, se trata de una transacción de firma múltiple.