Blockchain/Nivel II · Mecánica/2.2 Transacciones/Lección 6
Sustitución por tarifa y el hijo paga por el padre
Aumento de comisiones y el ataque de fijación
MaterialesUn explorador de bloques que muestra el árbol genealógico de las transacciones (p. ej., mempool.space).Una billetera que permite aumentar las comisiones
Curiosidad
- ¿Qué puede hacer un remitente cuando una transacción queda bloqueada por una comisión demasiado baja?
- ¿Cómo puede un destinatario pagar por un pago que aún no ha recibido?
- ¿Qué sucede cuando una contraparte retiene deliberadamente tus fondos como rehén en el mempool?
Explorar
- Una transacción transmitida con una tasa de comisión demasiado baja puede permanecer sin confirmar durante días, o incluso desaparecer por completo de los mempools, mientras que las transacciones con comisiones más altas se confirman a su alrededor. Existen dos técnicas para aumentar la comisión efectiva después de la transmisión: el remitente puede reemplazar la transacción por una versión con mayor comisión, o un destinatario puede gastar uno de sus salidas con una comisión generosa para que los mineros incluyan ambas juntas.
- El Reemplazo por Tarifa (RBF) permite al remitente corregir una tarifa subestimada. BIP125 introdujo la señalización de reemplazabilidad a través del campo nSequence de las entradas. Según las reglas de reemplazo de Bitcoin Core, un reemplazo debe pagar al menos la suma total de las tarifas de todo lo que desplaza más una tarifa de retransmisión adicional por su propio tamaño, y una tasa de tarifa más alta que la de las transacciones con las que entra en conflicto directo. La versión 24 de Bitcoin Core añadió la aceptación de «RBF completo», tratando las transacciones como reemplazables incluso sin señalización explícita, lo cual se convirtió en el comportamiento predeterminado en la versión 28.
- Child-Pays-For-Parent (CPFP) sirve a los receptores que no pueden modificar un pago recibido. El receptor crea una nueva transacción utilizando el resultado no confirmado del pago del “padre” bloqueado, y añade una tarifa elevada a esta transacción “hija”. Los mineros evalúan el paquete completo según la tasa de tarifa del “antepasado”; al incluir la transacción “hija”, se obliga también a incluir al “padre”, ya que la transacción “hija” solo es válida si su “padre” está confirmado en el mismo bloque o en uno anterior.
- La lógica económica se basa en el valor agregado. Si un padre paga 1 sat/vB y un hijo de gran tamaño paga 50 sat/vB, el paquete combinado presenta una oportunidad rentable para que los mineros confirmen ambos simultáneamente. Esto permite a un destinatario subvencionar efectivamente la inclusión por parte del minero de su pago entrante atascado, aunque aún no controle las monedas confirmadas; requiere un cálculo preciso del peso total y de las tarifas.
- La fijación de transacciones representa una vulnerabilidad crítica en este sistema. Una contraparte puede mantener deliberadamente en el mempool una transacción con baja tasa de tarifa y muchos descendientes para impedir que las transacciones sensibles al tiempo se confirmen antes de su fecha límite. En protocolos como la Red Lightning, donde los cierres de canal dependen de bloqueos temporales específicos, un atacante que fije tu transacción de cierre podría potencialmente robar fondos si te ves obligado a esperar más allá de tu ventana de seguridad.
- Los desarrolladores han respondido con excepciones en las políticas, transacciones de versión 3 ('TRUC') y retransmisión de paquetes en las últimas versiones de Bitcoin Core, así como anclas efímeras (salidas pay-to-anchor), incluidas en Bitcoin Core 28 y 29. Estas permiten que un padre de baja tarifa viaje con un hijo de alta tarifa como parte de un paquete. Estas mitigaciones reducen, pero no eliminan por completo, la capacidad de los actores maliciosos para fijar transacciones sensibles al tiempo; la fijación afecta a la política de retransmisión, no al consenso.
Datos clave
- Child-pays-for-parent permite a un destinatario acelerar un pago entrante gastando su salida con una tarifa alta.
- BIP125 permite la señalización de reemplazabilidad a través de los campos nSequence en las entradas de transacción.
- Un reemplazo de tipo RBF debe pagar al menos las tarifas de todo lo que sustituye, más un costo adicional por su propio tamaño, a una tasa más alta.
- CPFP funciona porque los mineros evalúan los paquetes padre-hijo según la tasa de tarifa combinada del ancestro.
- La versión 28 de Bitcoin Core convirtió la aceptación total de RBF en el comportamiento predeterminado para los nodos.
- Las versiones recientes de Bitcoin Core añaden la retransmisión de paquetes y las transacciones TRUC (versión 3) para hacer que el aumento de tarifas sea más fiable frente a la fijación.
Ejercicio nueve, seis, tres, uno
9ReunirEnumera 9 escenarios en los que la velocidad de confirmación de transacciones es importante: desde compras minoristas hasta el cierre de canales Lightning. Indica la fecha límite y las consecuencias de no cumplirla.
6AgruparAgrupa los 9 en 6 según quién pueda acelerar la transacción: remitente, destinatario, cualquiera de los dos, un tercero, una regla del protocolo o nadie.
3DestilarReduce las 6 razones a 3 razones fundamentales por las cuales una transacción podría quedar atascada en el mempool más allá de su tiempo de confirmación esperado.
1CristalizarEscribe 1 oración que explique cómo el CPFP crea una dependencia financiera entre dos partes que no se confían mutuamente.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.