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 scriptPubKey
de cada salida :
Sin embargo, como puede ver, no estoy seguro de cómo puedo calcular una dirección desde un P2WSH .
¿Es posible obtener direcciones scriptPubKey
solo, 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).
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.
Nick ODell
inersha
base58('00' + hash160 + checksum)