Saltar al contenido
buybitcoinsmart

Glosario / Transacciones y comisiones

Child pays for parent

También se conoce como CPFP o El hijo paga por el padre.

¿Qué es el child pays for parent?
El child pays for parent (el hijo paga por el padre) rescata una transacción de comisión baja gastando su salida sin confirmar en una segunda transacción cuya comisión cubre ambas, ya que los mineros evalúan las dos juntas.

Los mineros no eligen las transacciones de una en una. Bitcoin Core las selecciona según la comisión por vB con ancestros desde la versión 0.13.0, de agosto de 2016, así que una transacción hija generosa arrastra a una transacción padre tacaña al mismo bloque. Esa única decisión de diseño es lo que da al destinatario de un pago atascado una forma de actuar, en lugar de esperar a un remitente que quizá nunca responda.

Cómo funciona

La comisión por vB es un cociente, y el child pays for parent funciona mejorando el cociente de un grupo en lugar del de una sola transacción.

Un minero que llena un bloque quiere obtener el máximo de satoshis por byte virtual. Cuando una transacción de la mempool depende de una transacción padre sin confirmar, el código de minería no puede tomarla sola, así que evalúa todo el conjunto de ancestros: la suma de las comisiones de las transacciones padre e hija dividida entre la suma de sus tamaños. Si esa cifra supera a la competencia, entran las dos. La selección de minería de Bitcoin Core funciona así desde la 0.13.0, la versión que reemplazó la ordenación simple, transacción por transacción, por la ordenación según la comisión por vB con ancestros.

Vale la pena hacer la cuenta a mano una vez. Tome una transacción padre de 141 bytes virtuales que paga 1 sat/vB, es decir, 141 satoshis. Usted quiere que las dos juntas lleguen a 25 sat/vB. Una transacción hija de una entrada y una salida que gaste esa moneda ocupa alrededor de 111 bytes virtuales, así que el paquete ocupa 252 bytes virtuales y necesita 6.300 satoshis en total. La transacción padre ya aportó 141, así que la transacción hija tiene que aportar 6.159, lo que equivale a una comisión por vB propia de alrededor de 55 sat/vB. La transacción hija siempre paga un sobreprecio, porque compra espacio de bloque para bytes ajenos además de los suyos.

Dos límites lo restringen. Una cadena de transacciones sin confirmar no puede tener, por defecto, más de 25 ancestros o descendientes, y el tamaño total de esa familia tiene un tope de aproximadamente 101 kilovbytes, así que no se pueden apilar transacciones hijas indefinidamente. Y la retransmisión no es automática: durante años, una transacción hija que impulsaba a una transacción padre que pagaba de menos era rechazada a su vez por los nodos que ya habían descartado esa transacción padre, y por eso Bitcoin Core 28.0, en octubre de 2024, añadió la retransmisión oportunista de una transacción padre con una transacción hija, para que las dos viajen por la red como una unidad.

Existe una versión más dañina de la misma dependencia. Si otra persona puede añadir una transacción hija grande y de comisión baja a una transacción compartida sin confirmar, puede inflar el tamaño de la familia y hacer que aumentar su comisión resulte prohibitivamente caro. Ese ataque se llama pinning de transacciones (inmovilización de la transacción), y es la razón por la que Lightning y otros protocolos de contratos usan ahora topologías de transacción restringidas en lugar de depender del simple aumento de comisión.

Por qué importa cuando compra bitcoin

El child pays for parent es la única solución de comisión al alcance de un destinatario, lo que lo convierte en la herramienta para los retiros de exchanges que se atascan.

La secuencia es esta. Usted retira fondos de un exchange, el exchange agrupó por lotes su pago con otros cincuenta a una comisión por vB que eligió hace horas, la presión de las comisiones sube y el lote se queda sin confirmar. El replace-by-fee no le sirve de nada aquí, porque esas entradas las firmó el exchange. Lo que sí puede hacer es gastar la moneda entrante, sin confirmar, enviándola a otra dirección de su propia billetera con una comisión por vB alta. Ahora los mineros ven un paquete que vale la pena minar, y las dos transacciones se confirman juntas.

Su billetera tiene que colaborar. Bitcoin Core, Sparrow y Electrum le permiten seleccionar una moneda entrante sin confirmar y gastarla; varias billeteras móviles ocultan por completo los saldos sin confirmar y no le dan nada en lo que hacer clic. Si piensa conservar dinero real en autocustodia, compruébelo antes de necesitarlo, no en pleno pico de comisiones.

Dos advertencias. Primero, una transacción hija gasta exactamente la moneda que usted recibió, así que la comisión sale del dinero que acaba de retirar, y en un retiro pequeño el costo puede ser una parte considerable del monto. Segundo, la transacción hija crea una moneda nueva en una dirección nueva, lo que vincula ambas en el registro público. Si el retiro formaba parte de una configuración pensada para la privacidad, aumentar su comisión de esta manera es una concesión que debería hacer a sabiendas.

Rescatar un retiro de 0,02 BTC atascado en un lote de 4 sat/vB

Suponga que un exchange le envía 0,02 BTC en un lote que paga 4 sat/vB y que, por la mañana, no se confirma nada por debajo de 30 sat/vB. El lote es grande, quizá de 1.500 bytes virtuales, y no le corresponde a usted pagarlo entero. Solo necesita que el paquete que contiene su moneda resulte atractivo.

Aquí está el detalle que sorprende a muchos: el paquete que evalúa un minero incluye la transacción padre entera, sus 1.500 bytes completos, no solo la parte que le corresponde a usted. Añada una transacción hija de 111 bytes y el paquete ocupa 1.611 bytes virtuales, así que llegar a 30 sat/vB supone reunir 48.330 satoshis en total. La transacción padre aportó 6.000 de ellos, así que la transacción hija debe aproximadamente 42.330 satoshis, lo que en un retiro de 0,02 BTC es un costo real.

Por eso el child pays for parent es una herramienta de rescate y no de rutina, y por eso funciona mucho mejor con una transacción padre pequeña, como un pago que una sola persona le envía directamente, que con un gran lote de un exchange. A veces la respuesta honesta es esperar: las comisiones por vB bajan la mayoría de los fines de semana, y una transacción permanece en las mempools hasta 14 días por defecto antes de que los nodos la olviden.

Child pays for parent frente a replace-by-fee

Ambos aumentan una comisión, pero los usan partes opuestas y dejan rastros distintos. El reemplazo reescribe la transacción original, requiere las claves que firmaron sus entradas, produce un nuevo ID de transacción y hace desaparecer la primera versión. El child pays for parent añade una transacción nueva encima, solo requiere las claves de una salida que usted recibió, no cambia nada de la transacción padre y deja las dos en la cadena para siempre.

El reemplazo sale más barato cuando está disponible, porque usted solo paga los bytes de una transacción y no los de dos. Úselo siempre que el pago atascado haya salido de su propia billetera. Recurra a la transacción hija cuando el pago atascado venga de otra persona.

No confundir con

Preguntas frecuentes

¿Puedo usar el child pays for parent con un pago que estoy esperando recibir?

Sí, y ese es su uso principal. La moneda entrante es gastable desde el momento en que existe la transacción, así que usted puede volver a enviarla con una comisión por vB alta y los mineros confirmarán las dos transacciones juntas. Su billetera tiene que permitirle gastar monedas sin confirmar.

¿Por qué la comisión de la transacción hija es mucho más alta que la comisión por vB que realmente quiero?

Porque la transacción hija paga los bytes de la transacción padre además de los suyos. Los mineros promedian la comisión sobre todo el paquete, así que la transacción hija, más pequeña, tiene que pasarse con creces para elevar la comisión por vB combinada hasta su objetivo.

¿Necesita el remitente haber activado algo para que esto funcione?

No. El child pays for parent no necesita ningún indicador, ninguna señal ni ninguna colaboración del remitente. Solo necesita una salida de la transacción sin confirmar cuya clave tenga usted, que en un pago entrante es la salida que le paga a usted.

Para seguir leyendo

Términos relacionados

Más en la sección Transacciones y comisiones

Leer esta página en inglés