Glosario / Lightning y capa 2
Salida ancla
- ¿Qué es una salida ancla?
- Las salidas ancla son las dos vías de escape de 330 satoshis de una transacción de compromiso Lightning, una bajo la clave de cada contraparte, para que cualquiera de las dos pueda aumentar la comisión de un cierre prefirmado.
Los canales ancla dan a cada contraparte una salida diminuta que al principio solo ella puede gastar, únicamente como asidero para un aumento de comisión posterior. BOLT 3 establece el monto en 330 satoshis, y después de 16 bloques absolutamente cualquiera puede barrer un ancla que nadie reclamó. Si usted ejecuta una billetera Lightning, conserve una moneda on-chain de reserva, porque el ancla no puede pagar una comisión por sí sola.
Cómo funciona
Una salida ancla guarda 330 satoshis tras la clave de financiación de una contraparte del canal, y la razón por la que un compromiso lleva dos en lugar de un único asidero compartido es un ataque.
El script es corto: la clave pública de financiación, OP_CHECKSIG, OP_IFDUP y después una rama OP_NOTIF que contiene OP_16 y OP_CHECKSEQUENCEVERIFY. Su propia firma lo abre de inmediato. Dieciséis bloques después de que se confirme el compromiso, un testigo vacío lo abre para cualquiera, que es como BOLT 3 evita que el cambio abandonado se quede para siempre en el conjunto de monedas vivas. Esa ruta solo importa si las comisiones bajan lo suficiente como para que barrer 330 satoshis valga la pena.
Un ancla por contraparte es el diseño contra el pinning (inmovilizar una transacción en la mempool con hijas de comisión baja). Si se da a ambas partes un único asidero compartido, su contraparte puede acoplarle una transacción hija grande y de comisión baja e inflar la familia de transacciones sin confirmar hasta que el precio del aumento de comisión que usted mismo haga quede fuera de su alcance y el compromiso no cumpla el plazo para el que se difundió. BOLT 3 atribuye a un cambio de Bitcoin Core 0.19 el mérito de que funcione la defensa de anclas separadas, y bloquea cada ancla en una clave de financiación. Por eso también todas las demás salidas de un compromiso así llevan un bloqueo de secuencia, incluida la salida to_remote.
Nada de esto es gratis. Los montos de las dos anclas salen del saldo del financiador, 660 satoshis en total, y el peso base a partir del cual se calcula el precio de una transacción de compromiso sube de 724 a 1124 unidades de peso. Lo que el financiador obtiene a cambio son transacciones HTLC de segunda etapa que no llevan ninguna comisión: con la opción option_anchors su comisión debe ser cero, y se firman con los indicadores SIGHASH_SINGLE más SIGHASH_ANYONECANPAY, de modo que usted añade su propia entrada al difundirlas y paga en ese momento la comisión vigente. BOLT 9 recoge esa opción en los bits 22 y 23, como un tipo de compromiso con anclas y transacciones HTLC sin comisión.
Dónde aparece
Las salidas ancla se vuelven visibles en un explorador de bloques en cuanto un canal Lightning se cierra sin cooperación, como dos de las salidas, de 330 satoshis cada una, que parecen un error de alguien. BOLT 3 omite una solo cuando no hay ningún HTLC en tránsito y el saldo de una de las partes está por debajo del límite de polvo.
Cuál de las billeteras de nuestras 41 reseñas lo pone a usted frente a una salida ancla depende de la custodia. Phoenix, calificada con 4,0 en este sitio, ejecuta en el propio teléfono un nodo Lightning real de autocustodia, y nuestra reseña registra que la recuperación tras un cierre forzado tarda aproximadamente 720 bloques, así que gestionar el ancla le corresponde a usted. Muun, calificada con 3,8, también es de autocustodia, pero sus pagos Lightning pueden necesitar un intercambio submarino que se liquida on-chain. Wallet of Satoshi, calificada con 2,7, funciona con custodia de forma predeterminada. Una salida de 330 satoshis no puede financiar una transacción hija, así que aumentar la comisión implica gastar el ancla junto con una moneda que usted ya tenía.
Salida ancla frente a ancla efímera
Una salida ancla puede gastarse con una clave de financiación concreta durante sus primeros 16 bloques, mientras que un ancla efímera no tiene clave desde el primer segundo y no guarda ningún valor que valga la pena defender.
Los canales zero_fee_commitments de BOLT 3, más recientes, con los bits de funcionalidad 40 y 41, reemplazan las dos anclas por una única salida shared_anchor construida sobre el script estándar pay to anchor: OP_1 seguido de los dos bytes 0x4e73, que cualquiera puede gastar con un testigo vacío. Su monto es de 240 satoshis, el límite de polvo estándar de ese script, y solo baja de esa cifra cuando sobra menos, algo que la regla del polvo efímero permite porque entonces el compromiso no paga comisión. Los dos diseños responden a una misma amenaza desde extremos opuestos: las anclas con clave neutralizan el pinning dando a cada parte una palanca que nadie más puede accionar; la que no tiene clave, dejando el compromiso imposible de minar hasta que alguien le añada la comisión.