P2WPKH

Pay To Witness Public Key Hash — la versión segwit de P2PKH

BIP 141: Segregated Witness

P2WPKH (Pay To Witness Public Key Hash) es un patrón de script que bloquea una salida a un hash de clave pública.

Funciona de la misma manera que un P2PKH legado, pero se desbloquea mediante el campo de testigo en lugar del ScriptSig.

El beneficio de usar P2WPKH en lugar de P2PKH es que los datos del campo de testigo tienen menos peso que los del ScriptSig, así que, al desbloquear un P2WPKH, pagas un poco menos de tarifa.

P2WPKH se introdujo como parte de la actualización Segregated Witness, como sustituto de P2PKH.

Uso

¿Cómo funciona P2WPKH?

P2WPKH no usa el lenguaje Script tradicional. En su lugar, el ScriptPubKey y el testigo son estructuras de datos fijas.

ScriptPubKey (bloqueo)

Para crear un bloqueo P2WPKH, solo necesitas colocar un OP_0 seguido de un push de datos de un hash de clave pública de 20 bytes:

OP_0 <hash de la clave pública (20 bytes)>

El OP_0 se llama byte de versión e indica que este ScriptPubKey será un P2WPKH o un P2WSH.

Un ScriptPubKey que empieza con OP_0 seguido de un push de 20 bytes siempre se interpreta como un script P2WPKH.

ScriptSig

El ScriptSig debe estar vacío.

Campo de Testigo (desbloqueo)

Para desbloquear un P2WPKH, proporcionas una firma válida seguida de la clave pública original en el campo de testigo de la entrada:

<firma> <clave pública>

El campo de testigo no es Script. Usa campos Compact Size para indicar el número de elementos y el tamaño de la firma y la clave pública (en vez de opcodes de push como OP_PUSHBYTES_33).

Solo se aceptan claves públicas comprimidas en P2WPKH. Así que, al crear el hash de la clave pública para el ScriptPubKey, asegúrate de que sea el hash de una clave pública comprimida, o se considerará no estándar. (Esto difiere de P2PKH, donde las claves no comprimidas están permitidas.)

Herramientas

La dirección P2WPKH es una codificación Bech32 de la versión de testigo 0 + el hash de clave pública de 20 bytes (direcciones que empiezan con bc1q):

Clave Pública

Clave Pública

Calcule la clave pública a partir de una clave privada.

0 bytes

Clave Pública

Coordenadas
0d
0d

Una clave pública es solo un punto en una curva elíptica. La clave pública final son esas coordenadas en hexadecimal.

Compresión

La curva es simétrica en el eje x, así que la clave comprimida guarda solo la coordenada x y si la y es par o impar. La x-only se usa en salidas Taproot.

0 bytes

Nunca introduzcas tu clave privada en un sitio, ni uses una clave privada generada por un sitio. Los sitios pueden guardar fácilmente la clave privada y usarla para robar tus bitcoins.

HASH160

HASH160

SHA-256 + RIPEMD-160. Se usa para acortar una clave pública o script antes de convertirlo en una dirección.

Una clave pública o un script, por ejemplo

0 bytes
SHA-256
RIPEMD-160

RIPEMD-160(SHA-256(dados))

0 bytes
Dirección (Bech32)

Dirección (Bech32)

Codifique un script de bloqueo P2WPKH, P2WSH o P2TR en una dirección.

ScriptPubKey
Versión
0 bytes
0 bytes Tipo:
Red

Codificación Bech32 del ScriptPubKey

0 caracteres