El Replace by Fee (RBF) es una característica útil de Bitcoin y otras criptomonedas que nos permiten aumentar la tarifa de una transacción luego de que se haya realizado para agilizar esta forma de confirmación.
El reemplazo por tarifa o Replace by Fee (RBF), es un método que nos permite poder reemplazar una transacción, antes de ser confirmada, por otra versión con una tarifa más elevada.
Es muy útil y práctica en casos donde se envía una transacción y ésta tarda mucho en confirmarse. Asi se puede enviar una nueva transacción para que sea priorizada por los mineros. Además se invalida la anterior al compartir las mismas entradas. De esa forma, podemos incrementar la tarifa de comisión que pagaremos a los mineros, para que agilicen la confirmación de esas nuevas transacciones, quedando la otra inservible.
Imagine que realizó una transacción para pagar por un producto que necesita urgente, y que su vendedor no lo produjo hasta que se confirme la transacción. Pero en el momento en que realizó la transferencia, usted eligió una tarifa de comisión más baja de la recomendable en ese momento. Por lo que han pasado horas y sus transacciones siguen sin confirmar.
En este caso, usted puede utilizar la opción de Reemplazo por tarifa (RBF). Sólo debe crear una nueva transacción con la misma cantidad de criptomoneda que transfirió originalmente. Y enviarla a la misma direccion, pero con una tarifa mas alta. Con lo que los mineros se verán motivados por dicha comisión, y procesarán las transacciones de forma inmediata. Así usted podrá recibir su producto sin más demoras. La transacción inicial es invalidada y con ello no supone un nuevo gasto para usted.
¿Cómo funciona el proceso de Replace by Fee (RBF)?
En realidad, cuando aplicamos el Replace by Fee (RBF), no estamos aumentando la tarifa de las transacciones que realizamos y está sin confirmar. En su lugar, estamos creando una nueva transacción con las mismas entradas y salidas que la anterior, pero con una comisión mucho más alta. Por lo que los mineros le darán prioridad a ésta, incluyéndola en un bloque de forma más rápida.
En este caso lo importante son las entradas sin gastar que se usan. Si ambas transacciones comparten las mismas entradas, una vez sean gastadas en una transacción, la segunda será omitida por los mineros, pues previamente tras tomar la transacción del mempool revisan que sea válida la transacción, y entre las comprobaciones se encuentra revisar que las entradas no han sido gastadas en otra transacción ya confirmada o en el mismo bloque que se está confirmando.
Cuando realizamos una transacción, nuestra billetera nos muestra una sugerencia de la comisión que se debería pagar según la prioridad que tenga nuestra transacción y la rapidez con la que queremos que se confirme. Pero la red puede sobrecargarse en cuestión de minutos, por lo que nuestra tarifa puede llegar a ser insuficientes segundos después de haber enviado las transacciones.
Esto hace que nuestras transacciones se quede estancada en la memoria de la red. Por ello, la implementación de Replace by Fee (RBF) es una gran alternativa de solución a esta problemática. Ya que el usuario cambia la transacción estancada por otra que incluye una tarifa más alta, para que sea procesada y confirmada en la red. Asi se puede combatir la congestion de la red. Una situación que generó cientos y millas de transacciones estancadas en la mempool. Y aunque no es una solucion perfecta, si resuelve en parte la problematica de las transacciones.
No obstante, esta opción sólo permite reenviar una transacción a la misma dirección de destino. Con la diferencia la de que la comisión a pagar debe ser mayor. Un proceso parecido lo podemos ver en las Child Pays for Parents (CPFP) que explicamos en otro gran artículo de nuestra Academy.
¿Cuándo es reemplazable una transacción?
El proceso de Reemplazo por Cuota (RBF) está basado en las siguientes normas:
- Las transacciones originales no deben estar confirmadas. Clean Y deben indicar su capacidad de reemplazo de forma o mediante herencia. Es decir, si alguna de las entradas de la transacción original posee un número nSequence menor que (0xffffffff – 1). O bien, que sus transacciones antecesoras indiquen la capacidad de reemplazo (herencia).
- La nueva transacción creada para el reemplazo sólo puede incluir una entrada no confirmada, si ésta estaba incluida en la transacción original.
- La comisión de la nueva transacción es superior a la de la transacción original.
- Cuando el número de transacciones a reemplazar no supere las 100 de ellas.
- El reemplazo de transacciones es un proceso opcional. Actualmente ninguna billetera viene configurada por defecto para realizar reemplazos. Así como tampoco lo están para realizar reemplazos por herencia.