Saltar al contenido
buybitcoinsmart

Glosario / Transacciones y comisiones

SIGHASH_ANYONECANPAY

¿Qué es SIGHASH_ANYONECANPAY?
SIGHASH_ANYONECANPAY es un modificador que elimina del hash todas las demás entradas, de modo que una firma cubre solo la moneda que gasta y otros pueden sumarse libremente a la transacción.

No es un modo propio. El indicador tiene el valor 128 y se suma a uno de los tres modos base, lo que da 129, 130 o 131, y cada combinación responde a una pregunta distinta sobre lo que el firmante está dispuesto a dejar que cambien unos desconocidos. La financiación colectiva y los mercados de Ordinals son los dos ámbitos donde demuestra su utilidad.

Cómo funciona

Activar el modificador reduce el lado de las entradas del hash a un solo elemento: el outpoint que se gasta, su número de secuencia y el script que se desbloquea.

Todas las demás entradas desaparecen del cálculo. A un firmante que trabaja con esta regla no le consta ni le importa cuántas otras personas aportaron monedas, en qué orden lo hicieron o si llegarán más después, y añadir una entrada más tarde no puede invalidar una firma hecha antes. Esa propiedad es toda la funcionalidad, y es lo que permite reunir firmas: varias personas pueden firmar de forma aislada, en momentos distintos y en máquinas distintas, y alguien puede juntar las piezas en una sola transacción válida.

El modo base sigue rigiendo el lado de las salidas, y las tres combinaciones se comportan de forma muy distinta.

  • 129, el modificador con la regla de todas las salidas, significa "mi moneda entra y los pagos deben ser exactamente esta lista". Se pueden añadir entradas, pero no salidas.
  • 130, el modificador con la regla sin salidas, es la firma más débil que permite el protocolo: entra una moneda y no hay ninguna declaración en absoluto sobre adónde va a parar nada.
  • 131, el modificador con la regla de una sola salida, significa "mi moneda entra y yo debo recibir la salida de mi índice". Todo lo demás queda abierto.

Dónde aparece

Dos construcciones lo usan en serio, y ambas dependen de que unos desconocidos puedan añadir fondos sin romper lo que ya está firmado.

La primera es el contrato de garantía, la versión en bitcoin de una promesa de aporte a una financiación colectiva. Cada patrocinador firma con el valor 129 sobre una lista fija de salidas que contiene el pago del proyecto, y cada promesa es una entrada. La transacción solo pasa a ser válida cuando las entradas prometidas cubren las salidas, así que el objetivo de financiación se hace cumplir solo, con aritmética en lugar de con un agente de escrow (depósito en garantía), y una campaña que se queda corta simplemente nunca produce una transacción válida. Prometer un aporte no cuesta nada y retirarse no cuesta nada, porque las monedas nunca se mueven.

La segunda es la oferta prefirmada de un mercado. Un vendedor firma con el valor 131 sobre su propia salida de inscripción o de runa y el precio que quiere, publica el resultado como una transacción parcialmente firmada, y cualquier comprador la completa con sus propias entradas, su propio cambio y una comisión. Ni contrato de anuncio, ni custodio, ni contraparte en la que confiar para la liquidación en sí.

Viene con una advertencia. Un valor 130 que espera en una mempool pública es dinero gratis para quien lo recoja primero, y solo un bit lo separa de las combinaciones seguras. Si usted revisa código de firma, compruebe que el modo base es una constante escrita en el código y que el modificador es la única parte que se permite variar.

Leer el byte del indicador

Si se divide el byte del indicador de sighash en sus dos mitades, deja de ser críptico. Los bits bajos dan el modo base: 1 para todas las salidas, 2 para ninguna, 3 para una sola salida coincidente. El bit alto, que vale 128, es el modificador. Así, una firma que termina en 81 cubre todo excepto las demás entradas, 83 es la regla de los mercados, y un simple 01 sin modificador es el pago corriente que produce su propia billetera cada vez que usted gasta.

No confundir con

Preguntas frecuentes

¿SIGHASH_ANYONECANPAY permite que cualquiera gaste mi moneda?

No. La firma sigue autorizando solo la moneda concreta que nombra, y solo con la regla de salidas que se eligió junto con ese indicador. Lo que permite es que otras personas añadan sus propias entradas a la misma transacción sin invalidar la firma de usted.

¿Dónde me encontraría realmente con este indicador?

En las ofertas prefirmadas de los mercados de Ordinals y Runes, que lo combinan con la regla de una sola salida, y en los contratos de garantía al estilo de la financiación colectiva. Los pagos corrientes nunca lo usan, y ninguna billetera de consumo ofrece esa opción.

Para seguir leyendo

Términos relacionados

Más en la sección Transacciones y comisiones

Leer esta página en inglés