¿Qué es RBF (Replace-By-Fee) y para qué sirve?

El Replace-By-Fee es un método que sirve para reemplazar una transacción que todavía no se confirmó, por otra que tenga una comisión más alta. Se suele usar cuando una transacción queda trabada en la mempool y necesitamos que se confirme rápido. En este artículo vamos a ver en detalle cómo funciona el RBF y cómo se puede hacer. 

contenido 17

¿Por qué necesitamos el Replace-By-Fee?

Una vez que construimos una transacción y la envíamos a través de nuestra wallet, esta va a la mempool. Este espacio actúa como un clase de “sala de espera” que guarda las transacciones hasta que un minero las incluya en un bloque y sean agregadas a la blockchain. Como recompensa por su trabajo, el minero se va a quedar con todas las comisiones de las transacciones de su bloque. Entonces, para maximizar sus ganancias, primero incluirá las transacciones con las comisiones más altas. 

Si enviamos una transacción con una comisión muy baja, es posible que esta nunca sea agregada a un bloque ya que va a estar última en el orden de prioridad de los mineros. En este caso, nuestra transacción quedaría trabada en la mempool indefinidamente y nunca llegaría a destino. Desafortunadamente, no hay ningún botón de “Cancelar” en la mempool, pero podemos usar técnicas como el RBF para resolver este tipo de problemas.

¿Cómo funciona el Replace-By-Fee?

El RBF fue agregado de forma nativa a Bitcoin Core en la versión 0.12.0 a través del BIP125. Este protocolo indica que el autor de una transacción puede decidir, de manera opcional, si esta puede ser reemplazada por otra con una comisión más alta. 

Pongamos un ejemplo para que quede más claro. Supongamos que hacemos un envío de 0.01 BTC a un amigo con una comisión de 0.5 USD. Al pasar un tiempo, vemos que la transacción todavía no se realizó, entonces decidimos usar un block explorer para ver qué pasó. Al poner el ID en el explorador vemos que la transacción tiene 0 confirmaciones, es decir que sigue en la mempool. Lo que sucedió fue que, mientras hacíamos el envío, la red se congestionó y ahora se necesita una comisión de 1 USD para que la transacción se agregue a un bloque.

Si esperamos lo suficiente, es probable que la red se descongestione y nuestra transacción se confirme. Pero como sabemos que existe Replace-By-Fee, decidimos ponerlo a prueba. Entonces, usamos una wallet que lo soporte y mandamos otra transacción igual pero con una comisión de 1 USD. Esta vez, la transacción se va a confirmar y vamos a pagar 1 USD de comisión más 0,5 USD por la transacción original. 

¿Por qué tenemos que pagar la comisión de las 2 transacciones? Es importante que “cancelar” una transacción en la blockchain tenga un costo para evitar ataques de Denial-of-Service (DoS). Estos consistirán en inundar una red con transacciones falsas, haciéndola inutilizable, y luego cancelarlas. Al tener que pagar por cada una de esas transacciones, este tipo de ataques se vuelven extremadamente caros. 

¿Cómo puedo hacer Replace-By-Fee?

Para realizar un RBF vamos a tener que usar una wallet que tenga esta funcionalidad. La mayoría de las wallets que soportan RBF lo hacen de manera opcional. Es decir que nos dejan elegir si nuestras transacciones futuras podrán ser reemplazables o no. En el caso que tengamos RBF activado, el procedimiento es simple. 

Después de hacer una transacción, vamos a la solapa de “Actividad” o “Mis transacciones”. Ahí deberíamos ver un historial con nuestros movimientos. Es probable que la última transacción que hicimos, si todavía no está confirmada, tenga un cartel que lo indique. Al hacer click ahí, nos debería aparecer un botón que diga algo como “Acelerar transacción”. En ese punto vamos a indicar la comisión a pagar por la nueva transacción y la vamos a enviar. Si la comisión fue suficiente, se debería confirmar en los próximos bloques.

Este es un ejemplo del RBF en Blue Wallet:  

sNcYYL6OvJvs776G6gyxkhCvCaUy RjPBQ d6tEiMpA 9Qv8C8ZBr8c4HYY4XibLgwBBtMUAtfltH5Ra9OR1zLWsRuWD6kMoJ2yOueuWJ1Zjs2Ft6toR 3sN1 c qtfNfcDWS18Z3GUxo 82WKHNVQ0DGqeiPseM89ogJHwtp7Ud3wV9I 4mL02Mfg

Algunas wallets que permiten hacer RBF:

Bitcoin Core, Electrum, Blue Wallet, Samurai, Specter Wallet, Blixt Wallet 

¿Hay alternativas a RBF?

  • Child-Pays-For-Parent (CPFP)

CPFP es una técnica parecida a RBF ya que también implica hacer otra transacción en la blockchain. Sin embargo, en este caso no se reemplaza la transacción original sino que, a través de otra transacción, incentivamos su confirmación. 

La red de Bitcoin solo permite gastar BTC después de haberlo recibido. Entonces, si nosotros somos los destinatarios de una transacción atascada en la mempool, podemos generar otra transacción con comisiones altas gastando las monedas que todavía no recibimos. De esta manera, si un minero quiere ganar esas comisiones, va a tener que confirmar primero la transacción original (parent) y luego la segunda (child).

Usando Replace By Fee, podemos reemplazar una transacción que nosotros mismos enviamos. En cambio, con Child Pays For Parent podemos acelerar una transacción que nos mandaron a nosotros. 

  • Servicios de aceleración de transacciones

Debido a la alta demanda que tuvo Bitcoin en los últimos años, la red estuvo congestionada en muchos momentos. Esto significa que la mempool se llena porque no hay espacio suficiente en los bloques. Viendo esto, algunos mineros decidieron construir servicios de aceleración de transacciones. Estas son plataformas que nos dejan pagarle un incentivo a los mineros, por fuera de la blockchain, para que confirmen nuestra transacción. 

Aunque la idea no es mala, estos servicios no fueron muy bien recibidos por la comunidad ya que pueden llevar a estafas. La realidad es que no tenemos forma de asegurarnos de que los proveedores de este servicio tengan el poder de agregar nuestra transacción a la blockchain en los próximos bloques. Y aunque pudieran, tampoco tenemos garantía de que lo vayan a hacer. Hoy en día, muchas de las plataformas que ofrecen este servicio son falsas.