Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Multisig P2SH

¿Qué es el multisig P2SH?
El multisig P2SH oculta un script de canje m de n detrás de una dirección que empieza por 3, y el tope de 520 bytes del script lo limita a quince claves públicas.

Se especifica en el BIP-16.

Un script de canje 2 de 3 mide 105 bytes: un opcode (código de operación) para el 2, tres claves comprimidas de 33 bytes con sus prefijos de inserción de datos, un opcode para el 3 y OP_CHECKMULTISIG. Gastar una entrada cuesta aproximadamente 297 vbytes, alrededor del triple de una entrada SegWit nativa de una sola clave. Esta fue la configuración estándar de custodia compartida desde 2012 hasta que los datos de testigo recibieron su descuento.

Cómo funciona

El script de canje de un multisig P2SH enumera el quórum directamente: el número de firmas requeridas, luego cada clave pública participante, luego el número total de claves y luego OP_CHECKMULTISIG. Nadie lo ve mientras las monedas siguen sin gastar, porque la salida solo fija su hash de 20 bytes.

El techo de quince claves es aritmética, no un invento de la política. Quince claves comprimidas de 34 bytes cada una, contando el prefijo de inserción de datos, suman 510 bytes; al añadir los dos opcodes de recuento y OP_CHECKMULTISIG se llega a 513, que cabe dentro del límite de 520 bytes de un solo elemento de la pila. Una decimosexta clave no cabe. Las reglas de consenso de Bitcoin permiten OP_CHECKMULTISIG con hasta 20 claves, pero un script de canje P2SH físicamente no puede llevar tantas.

Hay una vieja rareza en la ruta de gasto. OP_CHECKMULTISIG desapila un elemento más de los que usa, un error de la implementación original que nunca se pudo eliminar sin una bifurcación dura (hard fork). Los firmantes lo sortean apilando primero un elemento ficticio, y BIP-147 exigió que ese elemento estuviera vacío, requisito que se activó junto con SegWit en el bloque 481.824. Por eso una entrada completa se lee así: inserción de datos vacía, firma, firma, script de canje.

Dónde aparece

En las tesorerías corporativas, las configuraciones de herencia y el almacenamiento en frío de los exchanges, lo construido entre 2013 y 2018 es en gran parte multisig P2SH. El escrow (depósito en garantía) de los mercados entre pares más antiguos usaba 2 de 3, con la tercera clave en poder de la plataforma, y así se podía resolver una disputa sin que ninguno de los dos operadores controlara las monedas por completo.

El requisito de respaldo toma por sorpresa a la gente. Cada cofirmante necesita las claves públicas extendidas de todos los demás cofirmantes, o un descriptor que las registre, porque el script de canje no se puede reconstruir a partir de una sola frase semilla. Tener dos de tres claves privadas y ninguna de las claves públicas lo deja sin poder gastar. Anote el descriptor junto con los respaldos de las semillas y pruebe una recuperación antes de que la configuración contenga algo que le importe.

Hoy los quórums nuevos se construyen en su lugar con P2WSH o Taproot, porque la misma política es mucho más barata de gastar y no tiene un tope de quince claves. Las bóvedas P2SH existentes siguen funcionando exactamente igual que antes, y no hay ninguna migración forzosa.

Multisig P2SH frente a multisig

Multisig es la política y el multisig P2SH es una forma de escribirla. El mismo requisito 2 de 3 puede vivir en una salida multisig simple de las primeras reglas de bitcoin, en un script de canje P2SH, en un script de testigo P2WSH o, con Taproot, dentro de una sola clave agregada que se gasta como un pago ordinario y no revela ningún quórum. Elegir P2SH es una decisión sobre comisiones, sobre el techo de quince claves y sobre el hecho de que toda su configuración de firma se vuelve de conocimiento público la primera vez que usted mueve monedas.

No confundir con

Preguntas frecuentes

¿Cuántas claves puede contener un multisig P2SH?

Quince. Un script de canje es un solo elemento de la pila y no puede superar los 520 bytes, y quince claves comprimidas con sus prefijos de inserción de datos, más los opcodes que las rodean, suman 513 bytes. Las reglas de consenso de Bitcoin permiten veinte claves, pero aquí no caben.

¿Qué necesito respaldar para un multisig P2SH?

Su frase semilla y las claves públicas extendidas de todos los demás cofirmantes, o un descriptor que las registre todas. Sin las demás claves públicas no se puede reconstruir el script de canje, y las monedas quedan atrapadas aunque usted tenga su propia clave.

Para seguir leyendo

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés