P2SH-P2WSH
Nested P2WSH — un P2WSH moderno envuelto en un P2SH legado
BIP 141: Segregated Witness
P2SH-P2WSH (también conocido como P2WSH anidado) es un tipo de script de bloqueo que envuelve un P2WSH moderno dentro de un P2SH legado.
Te permite enviar bitcoins a una dirección 3 legada (P2SH), pero después aprovechar el menor costo de tarifa de gastar una salida P2WSH moderna.
No hay razón para usar P2SH-P2WSH si tienes la opción de usar P2WSH directamente. Solo es útil si no puedes enviar a una dirección bc1q, pero sí puedes enviar a una dirección 3.
Propósito
¿Por qué existe P2SH-P2WSH?
P2SH-P2WSH cumple el mismo propósito que un P2SH-P2WPKH: envías bitcoins a una dirección 3 (P2SH), pero luego los desbloqueas como si hubieras usado un P2WSH moderno. Esto permite aprovechar el descuento del testigo incluso si la cartera o el exchange no soporta enviar directamente a una dirección bc1q (P2WSH).
Uso
¿Cómo funciona P2SH-P2WSH?
P2SH-P2WSH usa tanto el campo ScriptSig como el de testigo para desbloquearse.
ScriptPubKey
El ScriptPubKey es un script de bloqueo P2SH estándar: OP_HASH160 <hash del script> OP_EQUAL.
ScriptSig
El ScriptSig contiene un único elemento: el push de datos del Redeem Script, que es el programa de testigo P2WSH (OP_0 <hash del script de 32 bytes>).
Testigo
El testigo funciona como en el P2WSH normal: los elementos necesarios para desbloquear el Witness Script, seguidos del propio Witness Script como último elemento.
Dirección
La dirección es una dirección P2SH normal (Base58Check con prefijo 0x05, empezando con "3"), donde el hash es el HASH160 del redeem script P2WSH: