P2SH-P2WPKH

Nested P2WPKH — um P2WPKH moderno embrulhado em um P2SH legado

BIP 141: Segregated Witness

P2SH-P2WPKH (também conhecido como P2WPKH Aninhado) é um tipo de script de travamento que embrulha um P2WPKH moderno dentro de um P2SH legado.

Ele permite enviar bitcoins para um endereço 3 legado (P2SH), mas também aproveitar o custo mais barato de taxa que vem de gastar uma saída P2WPKH moderna.

Portanto, o P2SH-P2WPKH serve como uma ponte até que carteiras e exchanges suportem o envio direto para endereços bc1q.

Não há razão para usar P2SH-P2WPKH se você tem a opção de usar P2WPKH diretamente. O P2SH-P2WPKH só é útil se você não consegue enviar para um endereço bc1q a partir da sua carteira ou exchange, mas consegue enviar para um endereço 3.

Propósito

Por que o P2SH-P2WPKH existe?

O P2WPKH é destravado pelo campo de testemunha, que oferece um desconto de espaço no bloco — então custa menos em taxas gastar um P2WPKH do que um P2PKH legado.

Porém, quando o SegWit foi ativado em 2016, carteiras e exchanges podiam não ter implementado o envio para P2WPKH (endereços bc1q). Então o P2SH-P2WPKH oferece a opção de enviar para um P2SH (endereço 3), permitindo aproveitar o desconto do P2WPKH mesmo sem suporte a Bech32.

Uso

Como o P2SH-P2WPKH funciona?

ScriptPubKey

O ScriptPubKey é um script de travamento P2SH padrão: OP_HASH160 <hash do script> OP_EQUAL. O hash é o HASH160 de um script de resgate, que é o próprio programa de testemunha P2WPKH.

ScriptSig

O ScriptSig contém um único item: o push de dados do Redeem Script, que é o programa de testemunha P2WPKH (OP_0 <hash da chave pública>).

Testemunha

A testemunha funciona como no P2WPKH normal: a assinatura seguida da chave pública.

Endereço

O endereço é um endereço P2SH normal (Base58Check com prefixo 0x05, começando com "3"), onde o hash é o HASH160 do redeem script P2WPKH:

Í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 (Base58)
Ícone Ferramenta

Endereço (Base58)

Crie um endereço Base58Check (P2PKH ou P2SH) a partir de um hash de 20 bytes + um byte de versão.