El termino Child Pays For Parent o CPFP, hace referencia a una transacción que nos permite impulsar la confirmación de una transacción «atascada» en el mempool de una criptomoneda. Esto debido a que esta tiene muy bajo fee de minería y por tanto no tiene prioridad para los mineros.
Las transacciones del tipo Child Pays For Parent (CPFP) son aquellas en las que se crea una transacción con una tarifa de minería más alta, para que al enviarse a la red esta nueva transacción fuerce la confirmación de otra transacción anterior aún sin confirmar. Esto con el fin de incentivar a los mineros a que realicen la confirmación de esas transacciones de forma mucho más rápida.
Aunque su concepto parezca muy similar a las transacciones de reemplazo por tarifa (Replace By Free) no deben confundirse con ésta. Ya que en las transacciones CPFP no se invalida la transacción anterior, sino que por el contrario, debe ser confirmada junto a la nueva transacción creada. Además, en CPFP la transacción secundaria solamente es creada para motivar a los mineros a procesar y confirmar ambas transacciones, y así poder recibir la comisión asociada. Por ello, se conocen como “el niño paga por el padre”.
¿Cómo funcionan las transacciones Child Pays For Parent?
Cuando una transacción permanece sin confirmar en la blockchain de Bitcoin, mientras aparecen nuevos bloques, se debe, principalmente, al pago de una tarifa insuficiente. Es se nota especialmente cuando la red está congestionada. En estos momentos de congestión o de alta demanda, los mineros priorizan sólo aquellas transacciones que poseen una tarifa de comisión alta o mínimamente aceptable. Por lo que aquellas transacciones con una comisión muy baja pueden quedar estancadas y sin confirmar en la mempool de Bitcoin por varios días, e incluso semanas. Dejando a sus receptores a la espera de los fondos transferidos por un tiempo indefinido.
Para solucionar esto, se implementa el método Child Pays For Parent (CPFP), donde el usuario de la transacción sin confirmar puede crear una nueva transacción, conocida como transacción hija. En ella deberá poner una comisión de transacción mucho más alta que la transacción original.
Esta nueva transacción CPFP usará este saldo generado por la transacción principal sin confirmar para crear una nueva transacción que lleve dicho saldo a una nueva dirección. Es decir, si un usuario crea una transacción para enviar X cantidad de fondos, y posee en su monedero un poco más que esos fondos, el monedero creará automáticamente 2 salidas. La primera para enviar X cantidad de fondos al receptor, y la segunda para recibir las vueltas o el cambio de dicha transacción.
Recordemos que en las transacciones de Bitcoin, todas las salidas deben ser gastadas. Esto es posible gracias a que la primera transacción generó una transacción de envío de criptomoneda. Pero al mismo tiempo nos devolvió una determinada cantidad de criptomoneda no usada a una dirección de cambio bajo nuestra posesión. Esta cantidad de criptomonedas no usadas recibe el nombre de salida de transacción no gastada o UTXO. En pocas palabras, una CPFP lo que usa es nuestro saldo UTXO para generar una nueva transacción con mayor fee de minería con el fin de acelerar la confirmación de la transacción inicial.
Entonces, si esa operación queda sin confirmar, el usuario puede crear una transacción hija (CPFP) asociada a la transacción padre, donde enviará esas vueltas o cambio a otra dirección propia. Lo importante es que esta nueva transacción dispondrá de una tarifa de comisión muy atractiva para los mineros y que cubra la comisión necesaria para procesar ambas transacciones.
En el momento en el que los mineros vean la transacción secundaria, se sentirán atraídos a confirmarla para cobrar la tarifa de comisión que posee asociada. Pero no podrán confirmar dicha transacción de forma independiente, sin antes confirmar primeramente la transacción principal. Por lo que evaluarán y verificarán la transacción secundaria para ver si ésta dispone de las tarifas necesarias para cubrir ambas transacciones.
Una vez que los mineros comprueben esto, optarán por añadir la transacción principal al siguiente bloque minado, y así poder confirmar también la transacción secundaria. Para cobrar la tarifa de comisión incluida en ésta, y que es aceptable para procesar ambas transacciones.
¿Cuánto sabes, criptonauta?
¿Esta funcionalidad permite realizar ataques de doble gasto?¡FALSO!
Realizar un Child Pays For Parents (CPFP) no significa que se este realizando un doble gasto. De hecho, esto es imposible porque un CPFP jamás sustituye o evita que una transacción ya realizada sea negada de una u otra forma. En su lugar simplemente nos permite acelerar su aceptación por parte de la red. Así que aquí hay otro mito de Bitcoin desbancado.
¿Qué clientes o monederos incluyen la opción CPFP?
Entre las wallets más empleadas que permiten la creación de una transacción Child Pays For Parent (CPFP) se encuentran el cliente original Bitcoin Core, o la wallet de Electrum, entre otras. Y aunque en éstas no aparezca la función CPFP como tal, sí se pueden enviar los UTXO de la transacción original hacia otra dirección propia diferente. Incluyendo, por supuesto, las comisiones necesarias para cubrir ambas transacciones, con lo que se estaría creando una transacción CPFP.
Esta función es muy útil para aquellas wallets que no cuentan con un mecanismo definido que permita acelerar la confirmación de un transacción en espera. Por lo que con generar una transacción secundaria se puede activar CPFP.
Este método tampoco implica ningún proceso complicado o difícil, al contrario, se trata de uno bastante sencillo y fácil de aplicar. Está basado en las reglas del protocolo de Bitcoin, y en conocer el comportamiento natural de los mineros. Y es que los mineros obviamente optarán por procesar de forma rápida aquellas transacciones con tarifas de comisión mucho más altas.