Saltar al contenido
buybitcoinsmart

Glosario / Lightning y capa 2

HTLC de polvo

¿Qué es un HTLC de polvo?
Un HTLC de polvo es un pago Lightning demasiado pequeño para tener salida propia en la transacción de compromiso, así que un cierre forzado lo entrega a los mineros, no a ninguna de las contrapartes del canal.

Los canales Lightning se niegan a crear una salida para cualquier pago en tránsito que valga menos que el límite de polvo más la comisión necesaria para reclamarlo, y ese monto pasa a ser comisión de minería. Con un límite de polvo de 546 satoshis y una comisión de 5.000 por kiloweight (mil unidades de peso), todo lo que valga menos de 3.861 satoshis queda recortado. El dinero solo se pierde si se fuerza el cierre del canal mientras ese pago sigue en movimiento.

Cómo funciona

Un HTLC de polvo se decide por aritmética, no por criterio: el límite de polvo que eligió el propietario del canal, más lo que costaría reclamar el pago on-chain.

BOLT 3 llama recortada a la salida desechada. Para un pago que usted ofrece, el canal comprueba el monto menos la comisión de la transacción HTLC-timeout; para uno que recibe, el monto menos la comisión de la transacción HTLC-success. Esas dos transacciones pesan 663 y 703 unidades de peso en un canal sin anclas, así que con un valor de feerate_per_kw de 5.000 cuestan 3.315 y 3.515 satoshis. Frente a un límite de polvo de 546 satoshis, el umbral de los HTLC ofrecidos queda en 3.861 satoshis y el de los recibidos, en 4.061.

El ejemplo práctico de BOLT 3 muestra la pérdida. Hay cuatro pagos en tránsito con esa comisión por kiloweight: HTLC ofrecidos de 5.000 y 1.000 satoshis y HTLC recibidos de 7.000 y 800. El de 5.000 y el de 7.000 obtienen cada uno una salida. El de 1.000 y el de 800 quedan recortados, y la comisión de la transacción de compromiso sube de una base de 5.340 satoshis a 7.140. Esos 1.800 satoshis adicionales son exactamente los dos pagos desaparecidos, pagados a quien mine el cierre.

Cada parte elige su propio valor de dust_limit_satoshis, así que las dos transacciones de compromiso de un mismo canal pueden discrepar sobre qué pagos cuentan como polvo. BOLT 2 obliga a un nodo a hacer fallar el canal si su par propone un valor inferior a 354 satoshis, y le permite rechazar uno que considere demasiado grande, ya que un par con un límite alto puede publicar un compromiso repleto de pagos recortados.

Los canales ancla cambiaron la aritmética. Con la opción option_anchors o zero_fee_commitments, las transacciones HTLC de segunda etapa no llevan comisión, así que dejan de alimentar el cálculo y el umbral se reduce al límite de polvo a secas. En ese caso, BOLT 3 indica a los nodos que suban dust_limit_satoshis deliberadamente, ya que una salida que supera el límite pero no se puede barrer con comisiones reales por vB solo contamina el conjunto de UTXO.

BOLT 2 también limita el total, no cada pago. Por encima del límite max_dust_htlc_exposure_msat de un nodo, que es en sí una cuestión de política, el nodo debería devolver como fallido un HTLC entrante una vez incluido en el compromiso y no debería revelar la preimagen, lo que convierte una posible pérdida en un fallo limpio.

Dónde aparece

Los HTLC de polvo aparecen en el modelo de custodia de una billetera, no en su interfaz, y las 41 reseñas de billeteras de este sitio se dividen con claridad en este punto.

Phoenix ejecuta un nodo Lightning real de autocustodia en su teléfono, así que los canales son de usted, y esta exposición también; ACINQ cobra un 0,4 % más 4 satoshis por envío, y cada uno de esos envíos es un HTLC al que puede llegar el recorte. La parte Lightning de BlueWallet es una cuenta en un servidor LNDHub, así que es el operador quien tiene los canales: usted nunca carga con un pago recortado y, a cambio, carga con ese operador.

El recorte vuelve a aparecer a la hora del cierre. BOLT 2 solo permite la negociación de cierre cuando ya no queda ningún HTLC en ninguna de las dos transacciones de compromiso, incluidos los HTLC de polvo, así que un pago de 300 satoshis que ningún observador on-chain puede ver sigue manteniendo en espera un cierre cooperativo.

HTLC de polvo frente a límite de polvo

El límite de polvo es un número que elige un nodo; un HTLC de polvo es un pago que perdió una comparación frente a ese número más una comisión.

El límite es un parámetro del canal, que se establece en los mensajes open_channel y accept_channel y que ningún mensaje posterior lleva. El recorte es un resultado que se mueve: sin anclas, el umbral sigue a feerate_per_kw, así que el mismo pago de 2.500 satoshis es una salida real con una mempool tranquila y queda recortado con una mempool congestionada.

Además, los dos actúan en etapas distintas. Los umbrales de Bitcoin Core, 546 satoshis para una salida heredada (legacy) y 330 para pay-to-witness-script-hash, son política de retransmisión sobre transacciones que existen. Un HTLC recortado nunca llega a esa comprobación, porque su salida nunca se escribe.

No confundir con

Preguntas frecuentes

¿De verdad puede un HTLC de polvo hacerme perder dinero?

Sí, pero solo el monto recortado, y solo si se fuerza el cierre del canal mientras ese pago sigue en tránsito. Un pago que se liquida o falla con normalidad no se ve afectado, porque el recorte solo decide cómo sería una transacción de compromiso si alguien la publicara.

¿Por qué mi nodo Lightning rechazó un pago diminuto?

Una de las razones es el tope de exposición máxima a HTLC de polvo. BOLT 2 indica a un nodo que devuelva como fallido ese HTLC una vez incluido en el compromiso, y que retenga la preimagen, cuando aceptarlo llevaría el saldo recortado total del canal por encima del límite que estableció el operador.

¿Los canales ancla eliminan los HTLC de polvo?

No. Los canales ancla sacan del cálculo la comisión de la transacción HTLC de segunda etapa, así que el umbral vuelve al límite de polvo a secas, y por eso BOLT 3 dice que tiene sentido subir dust_limit_satoshis para cubrir ese costo de segunda etapa, y por eso un nodo debería permitir a su par un límite superior a los valores del propio Bitcoin Core, que van de 240 a 546 satoshis.

Para seguir leyendo

Términos relacionados

Más en la sección Lightning y capa 2

Leer esta página en inglés