O que é P2SH (Pay-to-Script-Hash)?
P2SH (Pay-to-Script-Hash) é um tipo de saída de transação do Bitcoin que permite enviar bitcoin para o hash de um script, em vez de enviá-lo diretamente para uma chave pública ou para o hash de uma chave pública.O remetente precisa apenas de um hash curto do script. Mais tarde, ao gastar os fundos, o usuário revela o script completo e fornece os dados necessários para cumprir suas condições.Em termos simples, o P2SH permite que um endereço de Bitcoin represente regras complexas de gasto sem que o remetente precise entendê-las.Um endereço P2SH na mainnet do Bitcoin geralmente começa com o número
O padrão técnico do P2SH foi introduzido na BIP16.
O formato de endereço do P2SH foi descrito na BIP13.
O P2SH se tornou importante porque facilitou o uso de scripts avançados do Bitcoin em pagamentos feitos por carteiras comuns.Antes do P2SH, quem quisesse pagar por meio de um script complexo precisava incluir o script completo diretamente na saída da transação.Isso era ineficiente, difícil de compartilhar e complicado para carteiras comuns oferecerem suporte.Com o P2SH, o remetente pode pagar para um hash compacto, e o destinatário fica responsável por revelar e satisfazer o script completo ao gastar os fundos.Esse design tornou muito mais práticos os pagamentos com carteiras multisig, transações semelhantes a escrow e, posteriormente, a compatibilidade com SegWit aninhado.Para usuários de cripto, a melhor forma de entender o P2SH é como um design de endereço e script do Bitcoin que oculta a complexidade no momento do recebimento e só a revela quando os fundos são gastos.Principais pontos sobre P2SH
- P2SH significa Pay-to-Script-Hash.
- Ele permite bloquear bitcoin ao hash de um script, em vez de usar o hash de uma chave pública comum.
- Os endereços P2SH da mainnet geralmente começam com 3.
- O remetente não precisa conhecer o script completo de gasto.
- Ao gastar os fundos, o usuário deve revelar o redeem script e cumprir suas condições.
- O P2SH foi padronizado pela BIP16, e seu formato de endereço foi descrito na BIP13.
- O P2SH ajudou a facilitar o uso de carteiras multisig.
- O P2SH também foi usado como uma camada de compatibilidade para a adoção inicial do SegWit.
- Quando houver suporte, usuários modernos de Bitcoin podem preferir endereços SegWit nativos ou Taproot.
Por que o P2SH foi criado
O P2SH foi criado para facilitar o recebimento e o envio de pagamentos com scripts complexos do Bitcoin.O Bitcoin Script permite bloquear moedas com condições de gasto.Um pagamento simples pode exigir uma assinatura válida de uma chave privada.Um pagamento mais complexo pode exigir duas assinaturas de três chaves, um bloqueio temporal ou outra lógica de script.Antes do P2SH, o remetente precisava incluir o script completo na saída da transação para pagar sob essas condições.Isso transferia a complexidade para o remetente, embora fosse o destinatário quem escolhesse as regras de segurança.A BIP16 afirma que o objetivo do P2SH é transferir do remetente para o resgatador a responsabilidade de fornecer as condições de resgate.Esse design é útil porque o remetente precisa apenas pagar para um hash curto do script.Assim, o destinatário pode gerenciar o script propriamente dito de forma privada até gastar os fundos.Isso simplifica a experiência de pagamento para carteiras e usuários.Também reduz a necessidade de os remetentes oferecerem suporte a todos os scripts personalizados possíveis para poder pagar alguém.O remetente pode tratar um endereço P2SH como um endereço comum, enquanto o destinatário usa regras avançadas de gasto por trás dele.Como funciona o P2SH
O P2SH funciona bloqueando bitcoin ao hash de um script.Esse script oculto é chamado de redeem script.O redeem script define as condições que precisam ser cumpridas para gastar as moedas.A saída da transação não contém o redeem script completo.Em vez disso, ela contém um hash desse redeem script.Quando as moedas são gastas posteriormente, o usuário fornece o redeem script e os dados de desbloqueio necessários.A rede Bitcoin verifica se o hash do redeem script corresponde ao hash do script usado na saída original.Em seguida, a rede verifica se os dados de desbloqueio satisfazem as condições do redeem script.Se as duas verificações forem aprovadas, o gasto será válido.Se o script fornecido não corresponder ao hash, o gasto falhará.Se o script corresponder, mas as assinaturas ou outras condições não forem válidas, o gasto também falhará.Esse processo em duas etapas é a ideia central do Pay-to-Script-Hash.Estrutura básica de um script P2SH
Um script de bloqueio P2SH padrão segue uma estrutura simples.Ele costuma ser escrito como
Isso significa que a transação de gasto precisa fornecer um script cujo valor
O guia para desenvolvedores do Bitcoin.org explica que o P2SH é usado para enviar uma transação para o hash de um script.
O script de desbloqueio fornece os dados necessários ao redeem script.Ele também fornece o próprio redeem script.Uma forma conceitual comum é
O que é um redeem script?
O redeem script é o script oculto por trás de um endereço P2SH.Ele define as regras efetivas para gastar as moedas bloqueadas naquele endereço.Por exemplo, um redeem script pode determinar que duas de três chaves públicas especificadas precisam fornecer assinaturas válidas.Isso criaria uma configuração multisig 2 de 3.O endereço P2SH não exibe esse script completo antes que os fundos sejam gastos.Ele representa apenas o hash do redeem script.Ao gastar os fundos, o usuário revela o redeem script e comprova que ele corresponde ao hash.O usuário também precisa fornecer as assinaturas, chaves públicas ou outros dados exigidos pelo redeem script.Assim, o redeem script define a política de segurança efetiva da saída P2SH.Se o redeem script for perdido, os fundos poderão ficar impossíveis de gastar.Se o redeem script estiver incorreto, os fundos poderão ficar bloqueados por regras que o usuário não consegue cumprir.Por isso, uma carteira P2SH precisa fazer backup não apenas das chaves privadas, mas também dos scripts necessários para gastar os fundos.Formato de endereço P2SH
O P2SH introduziu um novo formato de endereço do Bitcoin para facilitar o compartilhamento de destinos de pagamento com hash de script.A BIP13 descreve um formato de endereço para pay-to-script-hash no qual o endereço representa o hash codificado de um script, e não o hash codificado de uma chave pública.
Na mainnet do Bitcoin, um endereço P2SH geralmente começa com
Isso o diferencia visualmente dos endereços P2PKH mais antigos, que geralmente começam com
A referência de transações do Bitcoin.org informa que os endereços P2SH usam o byte de versão
P2SH e carteiras multisig
O P2SH é conhecido por ter facilitado o uso de carteiras multisig.Uma carteira multisig exige mais de uma chave privada para gastar fundos.Por exemplo, uma carteira multisig 2 de 3 pode gastar fundos quando duas de três chaves aprovadas assinam a transação.Isso é útil para empresas, famílias, contas de tesouraria, acordos de escrow e armazenamento pessoal a frio.Sem o P2SH, para enviar fundos a um script multisig, o remetente precisava incluir o script multisig completo na saída.Com o P2SH, o remetente envia os fundos apenas para um endereço P2SH curto.A carteira do destinatário gerencia o redeem script multisig quando os fundos forem gastos.Isso tornou o multisig prático em fluxos de pagamento comuns.Também simplificou as interfaces de carteira, pois, para o remetente, um endereço multisig podia parecer um endereço comum.O remetente não precisa saber se o destinatário usa uma chave, várias chaves ou uma configuração mais complexa.O destinatário pode melhorar a segurança sem complicar a experiência do remetente.P2SH vs. P2PKH
P2PKH significa Pay-to-Public-Key-Hash.É o tipo clássico de pagamento do Bitcoin, no qual os fundos são bloqueados ao hash de uma chave pública.Para gastar uma saída P2PKH, o usuário fornece uma chave pública e uma assinatura válida da chave privada correspondente.O P2SH é diferente porque os fundos são bloqueados ao hash de um script.Esse script pode exigir uma assinatura, várias assinaturas, uma condição temporal ou outra lógica permitida pelo Bitcoin Script.O P2PKH é mais simples.O P2SH é mais flexível.Na mainnet do Bitcoin, um endereço P2PKH geralmente começa com
Na mainnet do Bitcoin, um endereço P2SH geralmente começa com
P2SH vs. multisig simples
Multisig simples significa colocar um script multisig diretamente em uma saída de transação.Isso já era possível no Bitcoin antes de o P2SH se tornar amplamente utilizado.No entanto, o multisig simples aumentava o tamanho das saídas e obrigava o remetente a lidar com o script completo.O P2SH aprimorou esse modelo ao substituir o script completo da saída por um hash compacto do script.O script multisig completo só é revelado quando os fundos são gastos.Isso transfere dados da transação de financiamento para a transação de gasto.É mais conveniente porque o destinatário escolhe a política de gasto e, posteriormente, é quem precisa cumpri-la.Para os usuários, o resultado prático era simples.Era possível receber bitcoin em uma configuração multisig usando um endereço com aparência comum.Isso ajudou a tornar o multisig uma ferramenta de segurança comum para a custódia de Bitcoin.P2SH e SegWit
O P2SH voltou a ser importante durante a adoção do SegWit.O SegWit, definido na BIP141, introduziu dados witness e novos tipos de saída, como P2WPKH e P2WSH.
A adoção inicial do SegWit enfrentou um problema de compatibilidade.Algumas carteiras e serviços não podiam enviar imediatamente para endereços SegWit nativos.O P2SH ofereceu uma solução de transição.Um script SegWit podia ser encapsulado em um endereço P2SH, permitindo que carteiras antigas enviassem fundos para um endereço iniciado por
O guia de desenvolvimento de carteiras Segregated Witness do Bitcoin Core afirma que carteiras compatíveis com SegWit precisam oferecer suporte a P2SH e ao formato de endereço BIP13.
Isso fez do P2SH uma importante ferramenta de transição para a compatibilidade entre carteiras de Bitcoin.O SegWit aninhado é menos eficiente que o SegWit nativo, mas ajudou usuários e serviços a adotar o SegWit gradualmente.P2SH-P2WPKH
P2SH-P2WPKH significa Pay-to-Witness-Public-Key-Hash encapsulado em P2SH.Esse formato é frequentemente chamado de SegWit aninhado.O endereço parece um endereço P2SH porque começa com
A BIP49 define um esquema de derivação para P2WPKH aninhado em P2SH para carteiras determinísticas hierárquicas.
Isso ajudou as carteiras a organizar contas SegWit aninhadas de forma padronizada.O P2SH-P2WPKH foi especialmente útil durante o período de transição, quando o suporte ao SegWit nativo ainda não era universal.Hoje, muitas carteiras podem enviar diretamente para endereços SegWit nativos.Quando há suporte ao SegWit nativo, ele geralmente é mais eficiente que o SegWit aninhado.P2SH-P2WSH
P2SH-P2WSH significa Pay-to-Witness-Script-Hash encapsulado em P2SH.É semelhante ao P2SH-P2WPKH, mas oferece suporte a scripts witness mais complexos.Um script P2WSH pode representar condições avançadas, como políticas multisig na estrutura witness do SegWit.Encapsulá-lo em P2SH permitia que carteiras remetentes antigas enviassem fundos para esses scripts usando um endereço familiar iniciado por
P2SH vs. P2WSH
P2SH e P2WSH permitem bloquear fundos ao hash de um script, mas não são iguais.O P2SH é o design mais antigo de hash de script, definido na BIP16.O P2WSH é a versão SegWit, que coloca os dados do script e das assinaturas na estrutura witness.O P2WSH pode ser mais eficiente para muitos scripts complexos, pois os dados witness recebem um peso reduzido pelas regras de peso do Bitcoin.O P2WSH também se beneficia das mudanças na estrutura das transações introduzidas pelo SegWit.O P2SH continua importante por sua compatibilidade com sistemas antigos e por sua adoção histórica.Um endereço P2SH começa com
Na mainnet do Bitcoin, um endereço P2WSH SegWit nativo geralmente começa com
P2SH vs. Taproot
Taproot é um tipo mais recente de saída do Bitcoin que pode melhorar a privacidade e a eficiência de algumas políticas de gasto.As saídas Taproot não são iguais às saídas P2SH.O P2SH revela o redeem script completo quando os fundos são gastos, mesmo que apenas uma ramificação da lógica seja usada.O Taproot pode permitir que algumas políticas complexas se pareçam com um gasto simples pelo caminho da chave quando as condições cooperativas são atendidas.Isso pode melhorar a privacidade, pois observadores talvez não vejam as condições de script que não foram usadas.O Taproot também pode tornar mais eficientes algumas políticas avançadas de carteira.No entanto, o P2SH continua importante por fazer parte da história do Bitcoin, da compatibilidade entre carteiras e do conjunto de moedas existente.Muitos endereços e saídas antigos ainda usam P2SH.Os usuários não devem presumir que todos os endereços iniciados por
Taxas e tamanho da transação
O P2SH pode afetar as taxas de transação porque os dados do script são revelados no momento do gasto.Um gasto P2SH simples pode ser relativamente pequeno.Um gasto P2SH multisig complexo pode ser maior, pois precisa incluir o redeem script e várias assinaturas.As taxas de Bitcoin são baseadas no peso ou no tamanho da transação, dependendo do contexto e do tipo de transação.Em geral, transações maiores custam mais quando as taxas estão altas.Esse é um dos motivos pelos quais o SegWit nativo e o Taproot se tornaram atraentes para alguns usos.Eles podem reduzir custos ou aumentar a eficiência de determinados padrões de gasto.Ainda assim, o P2SH foi uma grande melhoria em relação à inclusão direta de scripts complexos na saída.Ele tornou compacta a transação de financiamento e transferiu a complexidade para a transação de gasto.Antes de gastar fundos de carteiras P2SH complexas, especialmente multisig, os usuários devem verificar as estimativas de taxas da carteira.Características de privacidade do P2SH
O P2SH oculta o redeem script até que as moedas sejam gastas.Isso significa que os observadores não conseguem ver toda a política de gasto quando as moedas são recebidas.Eles conseguem ver apenas o hash do script.Quando as moedas são gastas, o redeem script fica visível on-chain.Nesse momento, os observadores muitas vezes conseguem identificar se a saída usava multisig, SegWit aninhado ou outro padrão de script.Isso proporciona privacidade parcial, não total.O P2SH pode ocultar a complexidade antes do gasto, mas não oculta o script para sempre.Além disso, o próprio formato do endereço pode revelar que a saída é P2SH.A análise on-chain ainda pode identificar o comportamento da carteira, a reutilização de endereços, os padrões de gasto e as relações entre transações.Os usuários não devem tratar o P2SH, por si só, como uma solução de privacidade.Benefícios de segurança do P2SH
O principal benefício de segurança do P2SH é facilitar o recebimento de fundos em uma estrutura de custódia multisig.O multisig pode reduzir o risco de roubo de uma única chave, pois um invasor talvez precise de mais de uma chave para gastar os fundos.O segundo benefício é reduzir a necessidade de o remetente lidar com scripts complexos.Isso diminui a possibilidade de o remetente criar por engano um script de saída incorreto.O terceiro benefício é permitir que os destinatários escolham sua própria política de segurança.Uma empresa pode usar multisig sem pedir que cada cliente entenda a configuração interna de sua carteira.O quarto benefício é a flexibilidade para atualizações.O P2SH ajudou a viabilizar a adoção do SegWit aninhado quando o suporte ao envio para SegWit nativo ainda era irregular.O quinto benefício é a compactação do hash do script.É mais fácil codificar um hash curto em um endereço do que um redeem script completo.Esses benefícios fizeram do P2SH uma das melhorias de usabilidade mais importantes da história dos scripts do Bitcoin.Riscos de segurança do P2SH
O principal risco é perder o redeem script.Se o usuário tiver as chaves privadas, mas não o script necessário para gastar os fundos, poderá não conseguir acessá-los.Isso é especialmente importante em carteiras multisig.O segundo risco é criar o redeem script incorreto.Se os fundos forem enviados para o hash de um script que ninguém consegue satisfazer, poderão ficar bloqueados permanentemente.O terceiro risco é não entender os tipos de endereço.Um endereço iniciado por
P2SH e backups de carteira
Carteiras P2SH podem exigir práticas de backup mais cuidadosas do que carteiras simples de chave única.Em uma carteira P2PKH simples, fazer backup da frase de recuperação pode ser suficiente se a carteira seguir caminhos de derivação padrão.Em uma carteira multisig P2SH, o usuário pode precisar das frases de recuperação, chaves públicas, caminhos de derivação, política da carteira e informações do redeem script.Se parte dessas informações estiver faltando, a recuperação poderá ser difícil.Carteiras multisig modernas costumam exportar descritores de carteira ou arquivos de configuração para resolver esse problema.Um descritor pode especificar como os endereços e scripts são gerados.Sem essas informações, o usuário talvez não saiba quais chaves e scripts controlam os fundos.Esse é um dos motivos pelos quais usuários de multisig devem testar a recuperação antes de depositar valores altos.Um endereço P2SH pode parecer simples, mas a política da carteira por trás dele pode ser complexa.Um bom backup precisa preservar essa complexidade de forma que permita a recuperação.P2SH e desenvolvedores
Desenvolvedores que trabalham com P2SH precisam entender tanto a codificação de endereços quanto a validação de scripts.É necessário criar o redeem script corretamente.É necessário calcular corretamente o hash do redeem script.É necessário codificar o endereço corretamente.É necessário criar transações de gasto que forneçam os dados de desbloqueio e o redeem script corretos.Também é necessário testar casos extremos, como a ordem das assinaturas multisig, a codificação de assinaturas, os limites de dust, a estimativa de taxas, o peso da transação e a recuperação da carteira.Também é preciso distinguir entre P2SH legado e P2SH com SegWit aninhado.Os dois podem parecer iguais para os usuários, pois ambos usam endereços iniciados por
P2SH e usuários
A maioria dos usuários não precisa criar scripts P2SH manualmente.O P2SH aparece em endereços de carteira, cofres multisig, configurações de custódia ou carteiras antigas compatíveis com SegWit.Se uma carteira fornecer ao usuário um endereço iniciado por
Casos de uso comuns do P2SH
O caso de uso mais conhecido do P2SH é a custódia multisig.Uma família, empresa ou tesouraria pode exigir várias chaves para movimentar fundos.Outro caso de uso é o escrow.Um script pode exigir assinaturas das partes acordadas sob condições específicas.Outro caso de uso é o recebimento compatível com SegWit legado.Uma carteira pode usar o encapsulamento P2SH para que remetentes com sistemas antigos enviem fundos para uma carteira compatível com SegWit.Outro caso de uso é o controle de acesso baseado em script.As moedas podem ser bloqueadas por regras de script mais avançadas do que a combinação de uma chave e uma assinatura.Outro caso de uso é a recuperação de carteiras antigas.Muitas carteiras e endereços antigos de Bitcoin usavam P2SH, por isso entendê-lo é importante ao recuperar fundos antigos.O P2SH continua presente no histórico ativo de transações do Bitcoin, mesmo com a popularização de tipos de saída mais recentes.Equívocos comuns sobre P2SH
Um equívoco comum é pensar que todo endereço iniciado por
Boas práticas para P2SH
Use um software de carteira confiável que gerencie corretamente os scripts P2SH.Não crie redeem scripts manualmente, a menos que você entenda profundamente o Bitcoin Script.Faça backup de todos os dados necessários sobre a política da carteira, não apenas das frases de recuperação.Em carteiras multisig, guarde com segurança as informações dos coassinantes e os caminhos de derivação.Teste a recuperação com pequenas quantias antes de usar saldos maiores.Quando houver suporte e forem adequados ao caso de uso, prefira SegWit nativo ou Taproot.Use a compatibilidade P2SH apenas quando ela resolver um problema real de suporte da carteira.Verifique o endereço completo antes de enviar fundos.Evite reutilizar endereços quando a privacidade for importante.Confira as estimativas de taxas antes de gastar fundos em saídas P2SH complexas.Mantenha o software da carteira atualizado para que ele reconheça e gaste corretamente saídas P2SH antigas.Entenda a diferença entre endereços P2SH multisig legado e P2SH com SegWit aninhado.P2SH em uma frase
P2SH (Pay-to-Script-Hash) é um tipo de saída do Bitcoin que bloqueia moedas ao hash de um redeem script, permitindo que o remetente pague para um endereço simples e que, mais tarde, o usuário que gastar os fundos revele e satisfaça o script completo.Perguntas frequentes
O que significa P2SH?
P2SH significa Pay-to-Script-Hash.Para que serve o P2SH?
O P2SH serve para bloquear bitcoin ao hash de um script, facilitando o recebimento de pagamentos com regras complexas de gasto por meio de um endereço com aparência comum.Com que caractere começa um endereço P2SH?
Um endereço P2SH da mainnet do Bitcoin geralmente começa com
Quem introduziu o P2SH?
O P2SH foi padronizado pela BIP16, de autoria de Gavin Andresen.Qual é o objetivo do P2SH?
O objetivo é transferir do remetente para quem gasta os fundos a responsabilidade de fornecer as condições complexas de gasto.O que é um redeem script?
Um redeem script é o script completo que define como as moedas bloqueadas em uma saída P2SH podem ser gastas.O remetente precisa conhecer o redeem script?
Não. O remetente precisa apenas do endereço P2SH que representa o hash do script.Quando o redeem script é revelado?
O redeem script é revelado quando a saída P2SH é gasta.P2SH é igual a multisig?
Não. P2SH não é igual a multisig, mas costuma ser usado para facilitar o recebimento de pagamentos em carteiras multisig.Todo endereço iniciado por 3 é um endereço multisig?
Não. Um endereço iniciado por
O P2SH ainda é usado hoje?
Sim. O P2SH ainda aparece em transações de Bitcoin, especialmente por motivos de compatibilidade e em carteiras antigas, embora muitos usuários prefiram SegWit nativo ou Taproot quando há suporte.Qual é o maior risco do P2SH?
O maior risco é perder ou criar incorretamente o redeem script ou a política da carteira, o que pode tornar os fundos impossíveis de gastar.Conclusão
P2SH (Pay-to-Script-Hash) é uma das atualizações mais importantes da história dos scripts do Bitcoin.Ele tornou práticas as regras complexas de gasto ao permitir que os usuários recebessem bitcoin por meio de um endereço compacto com hash de script.O remetente não precisa entender o script completo.Quem gasta os fundos revela e satisfaz o redeem script somente no momento do gasto.Esse design facilitou o uso de carteiras multisig e ajudou o Bitcoin a oferecer modelos de custódia mais robustos.Também ajudou o Bitcoin a fazer a transição para o SegWit por meio de formatos de endereço com SegWit aninhado.O P2SH não é o tipo de saída de Bitcoin mais recente ou eficiente em todos os casos.Quando há suporte, o SegWit nativo e o Taproot podem oferecer vantagens em taxas, privacidade e design de scripts.No entanto, o P2SH continua importante porque influenciou a forma como as carteiras de Bitcoin lidam com scripts avançados e porque muitas saídas existentes ainda o utilizam.Para os usuários, a principal lição é que um endereço simples pode ocultar uma política de gasto complexa.Para desenvolvedores, a principal lição é que a correção dos scripts, os backups e os dados de recuperação da carteira são essenciais.Para o ecossistema Bitcoin, o P2SH mostrou como uma atualização do protocolo pode melhorar a usabilidade e preservar a descentralização e a compatibilidade.Entender o P2SH ajuda os usuários a compreender multisig, SegWit aninhado, hashes de scripts, redeem scripts e a filosofia cuidadosa por trás das atualizações do Bitcoin.Você também pode gostar
HOT
Criptomoedas que estão em alta atualmente e ganhando atenção significativa do mercado
TOP volume
As criptomoedas com o maior volume de negociação
Recém-adicionados
Criptomoedas listadas recentemente que estão disponíveis para negociação

