Glosario / Protocolo y actualizaciones
Ancla efímera
- ¿Qué es un ancla efímera?
- Un ancla efímera es una salida de valor cero que se añade a una transacción solo para que alguien pueda acoplarle una transacción hija que pague comisión y arrastrar a la transacción padre hasta un bloque.
Se especifica en el BIP-431.
Los protocolos de contratos como Lightning deben firmar transacciones mucho antes de que nadie sepa cuáles serán las comisiones, así que necesitan una forma de aumentar la comisión más tarde. Bitcoin Core 28.0 hizo estándar, precisamente para esa tarea, un script de cuatro bytes que cualquiera puede gastar, y la 29.0 permitió que una salida así no guardara nada en absoluto siempre que su transacción padre no pagara comisión. La ventaja son cierres de canal que cuestan menos y dejan menos valor varado.
Cómo funciona
Un ancla efímera resuelve un problema de calendario: una transacción prefirmada lleva una comisión por vB elegida meses antes de difundirse, y para cuando hace falta, el mercado ya se ha movido.
La solución anterior daba a la transacción una pequeña salida gastable y dejaba que quien la necesitara difundiera una transacción hija que pagara por las dos. Los canales ancla de Lightning lo hacen con dos salidas de 330 satoshis, una por parte. Funciona, pero ese dinero queda inmovilizado dentro de cada transacción de compromiso, y después las salidas permanecen en el conjunto de monedas vivas, las barra alguien o no.
Pay-to-anchor eliminó la mayor parte de ese costo. Bitcoin Core 28.0 reconoció una nueva salida estándar cuyo script tiene exactamente cuatro bytes: OP_1, una inserción de datos de dos bytes y los bytes 0x4e 0x73. Es un programa SegWit de versión 1 y longitud dos, y como Taproot deja sin condiciones de gasto los programas de versión 1 desconocidos, cualquiera puede gastarlo con un testigo vacío. Sin clave, sin script que revelar, y con una entrada lo bastante pequeña como para no valer casi nada.
Al principio, la regla del polvo todavía se hacía sentir. Bitcoin Core valora una salida según lo que costaría gastarla, y para esta eso equivale a 80 bytes virtuales, lo que, a la comisión por vB estándar para el polvo, de 3 satoshis por byte virtual, significa que debe guardar al menos 240 satoshis. Mejor que 330, pero todavía no es gratis.
Bitcoin Core 29.0 cerró la brecha con el polvo efímero: una transacción puede llevar una sola salida por debajo del límite de polvo, incluso una que no valga nada, siempre que la propia transacción pague una comisión de exactamente cero. La comisión cero es el truco. Una transacción padre que no paga nada nunca puede minarse por sí sola, así que está garantizado que el ancla nunca quedará varada entre las monedas vivas. Solo existe dentro de un paquete, junto a la transacción hija que la gasta, y de ahí viene el nombre.
Otras dos piezas de Bitcoin Core 28.0 hacen viable la configuración. Las transacciones TRUC, especificadas en BIP431 y señalizadas con la versión 3, permiten una transacción padre sin confirmar y una hija sin confirmar y limitan la transacción a 10.000 bytes virtuales, lo que elimina los ataques de pinning (inmovilización de la transacción) que hacían poco fiable el aumento de comisión. Después, la retransmisión de paquetes oportunista permite que una transacción padre viaje con su hija como una pareja, para que una transacción padre de comisión cero pueda siquiera llegar a un minero.
Dónde aparece
Las anclas efímeras aparecen en los cierres de canales Lightning y en protocolos de contratos más recientes construidos sobre transacciones prefirmadas, nunca en pagos corrientes.
En un explorador de bloques parecen un error a primera vista: una salida que no vale nada, gastada en la transacción inmediatamente siguiente por una entrada con un testigo vacío. Si usted ejecuta un nodo Lightning, el efecto es que un cierre forzado ya no necesita polvo reservado en cada compromiso, y que aumentar la comisión de un cierre atascado tiene muchas más probabilidades de funcionar cuando lo necesite. Si solo conserva bitcoin on-chain, nunca creará ninguna, y la ventaja le llega porque Lightning resulta más barato de usar.
Ancla efímera frente a límite de polvo
El límite de polvo existe para evitar que el conjunto de monedas vivas se llene de salidas demasiado pequeñas para que valga la pena gastarlas, y un ancla efímera es el único caso en el que saltarse esa regla es demostrablemente seguro. Una salida de polvo corriente puede quedarse sin gastar para siempre, costándole a cada nodo del planeta un poco de memoria por una fracción de centavo. Un ancla efímera no puede: su transacción padre no paga comisión, así que ningún minero tomará la transacción padre a menos que la transacción hija que gasta el ancla llegue con ella. La exención no es una relajación del principio. Es una demostración de que el principio no rige.