¿Cómo obtener direcciones de scriptPubKey en transacciones segwit?

Estoy revisando datos de transacciones sin procesar y me gustaría poder recopilar direcciones (siempre que sea posible).

Hasta ahora, hice este diagrama para ayudarme a comprender cuándo es posible averiguar las direcciones scriptPubKeyde cada salida :

ingrese la descripción de la imagen aquí

Sin embargo, como puede ver, no estoy seguro de cómo puedo calcular una dirección desde un P2WSH .

¿Es posible obtener direcciones scriptPubKeysolo, o solo puedo obtenerlas cuando se revela el testigo cuando se ha gastado la salida? (como se muestra aquí):

witness:      0 <signature1> <1 <pubkey1> <pubkey2> 2 CHECKMULTISIG>
scriptSig:    (empty)
scriptPubKey: 0 <32-byte-hash>
              (0x0020{32-byte-hash})

EDITAR: Además, avíseme si nota que alguna de mis coincidencias de patrones en este diagrama es incorrecta (o si me falta algún patrón que me permita encontrar más direcciones).

Nitpick: hay una suma de verificación para la dirección en P2PK/P2PKH/P2SH. es.bitcoin.it/wiki/…
Si, gracias. Para aclarar a cualquiera que lea esto, debe serbase58('00' + hash160 + checksum)

Respuestas (2)

Actualmente no existe un formato de dirección nativo para las salidas de testigos, por lo que la respuesta para P2WPKH y P2WSH es simple: no puede y no debe hacerlo. Si convierte el hash de 20 bytes dentro de una salida P2WPKH a 1xxxxxx y muestra el resultado, la gente puede pensar que es una dirección a la que se puede enviar más dinero. Sin embargo, eso daría como resultado una salida P2PKH, que una billetera segwit pura puede no entender.

Sin embargo, la mayoría de las salidas de segwit inicialmente usarán el envoltorio P2SH (lo que resulta en programas P2SH-P2WPKH o P2SH-P2WSH), que simplemente se ven (y se comportan como) direcciones P2SH.

Se propone un nuevo formato de dirección de segwit nativo en https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki . Sin embargo, eso solo se puede usar cuando tanto el software del receptor como el del remitente lo admiten.

¿Aún en curso? Quiero saber la última tendencia. ¿Es el envoltorio P2SH el estándar de facto ahora? Parece que bit142 todavía está aplazado. github.com/bitcoin/bips/blob/master/bip-0142.mediawiki
BIP173 lo reemplaza. Sin embargo, llevará mucho tiempo adoptarlo, por lo que inicialmente espero que las transferencias de segwit usen el envoltorio P2SH.

Ensamblé esta imagen con los diez mejores PKscripts que encontré en algún lugar de una página web... no encuentres el enlace. También me gustaría extenderlo mediante salidas segwit. Puedo compartir el archivo "graphml" si lo desea.

ingrese la descripción de la imagen aquí