P2WPKH

Pay To Witness Public Key Hash — a versão segwit do P2PKH

BIP 141: Segregated Witness

P2WPKH (Pay To Witness Public Key Hash) é um padrão de script que trava uma saída a um hash de chave pública.

Funciona da mesma forma que um P2PKH legado, mas é destravado pelo campo de testemunha em vez do ScriptSig.

O benefício de usar P2WPKH em vez de P2PKH é que os dados do campo de testemunha têm menos peso do que os do ScriptSig, então, ao destravar um P2WPKH, você paga um pouco menos de taxa.

O P2WPKH foi introduzido como parte da atualização Segregated Witness, como substituto do P2PKH.

Uso

Como o P2WPKH funciona?

O P2WPKH não usa a linguagem Script tradicional. Em vez disso, o ScriptPubKey e a testemunha são estruturas de dados fixas.

ScriptPubKey (trava)

Para criar uma trava P2WPKH, você só precisa colocar um OP_0 seguido de um push de dados de um hash de chave pública de 20 bytes:

OP_0 <hash da chave pública (20 bytes)>

O OP_0 é chamado de byte de versão e indica que este ScriptPubKey será um P2WPKH ou um P2WSH.

Um ScriptPubKey que começa com OP_0 seguido de um push de 20 bytes é sempre interpretado como um script P2WPKH.

ScriptSig

O ScriptSig precisa estar vazio.

Campo de Testemunha (destrava)

Para destravar um P2WPKH, você fornece uma assinatura válida seguida da chave pública original no campo de testemunha da entrada:

<assinatura> <chave pública>

O campo de testemunha não é Script. Ele usa campos Compact Size para indicar o número de itens e o tamanho da assinatura e da chave pública (em vez de opcodes de push como OP_PUSHBYTES_33).

Só chaves públicas comprimidas são aceitas no P2WPKH. Então, ao criar o hash da chave pública para o ScriptPubKey, certifique-se de que é o hash de uma chave pública comprimida, senão será considerado não padrão. (Isso difere do P2PKH, onde chaves não comprimidas são permitidas.)

Ferramentas

O endereço P2WPKH é uma codificação Bech32 da versão de testemunha 0 + o hash de chave pública de 20 bytes (endereços começando com bc1q):

Ícone Ferramenta Chave Pública
Ícone Ferramenta

Chave Pública

Calcule a chave pública a partir de uma chave privada.

0 bytes
Coordenadas
0d
0d

Uma chave pública é só um ponto numa curva elíptica. A chave pública final são essas coordenadas em hexadecimal.

Compressão

A curva é simétrica no eixo x, então a chave comprimida guarda só a coordenada x e se a y é par ou ímpar. A x-only é usada em saídas Taproot.

0 bytes

Nunca insira sua chave privada em um site, nem use uma chave privada gerada por um site. Sites podem facilmente salvar a chave privada e usá-la para roubar seus bitcoins.

Ícone Ferramenta HASH160
Ícone Ferramenta

HASH160

SHA-256 + RIPEMD-160. Usado para encurtar uma chave pública ou script antes de converter em um endereço.

Uma chave pública ou script, por exemplo

0 bytes
Ícone Função de Hash SHA-256
Ícone Função de Hash RIPEMD-160

RIPEMD-160(SHA-256(dados))

0 bytes
Ícone Ferramenta Endereço (Bech32)
Ícone Ferramenta

Endereço (Bech32)

Crie um endereço segwit (P2WPKH, P2WSH, P2TR) a partir de uma versão de testemunha e um programa de testemunha.

P2WPKH = 20 bytes (hash160) · P2WSH = 32 bytes (sha256) · P2TR = 32 bytes