Pay-to-Public-Key (P2PK) é o método original de recebimento de bitcoin e não envolve um endereço. Em vez disso, como o nome sugere, o bitcoin é pago diretamente a uma chave pública exposta. A primeira transação de bitcoin de uma pessoa para outra usou P2PK, quando Satoshi Nakamoto enviou moedas para Hal Finney no Bloco 170.
O P2PK não é mais usado porque é uma forma mais cara, menos privada e menos segura de receber bitcoin do que os métodos subsequentes.
Pay-to-Public-Key-Hash (P2PKH) estava disponível para uso no início do bitcoin e apareceu no blockchain pela primeira vez menos de duas semanas após o bloco de gênese. O P2PKH faz várias melhorias no P2PK, como a utilização de um endereço. Conforme discutido em nosso artigo anterior, os endereços contêm uma soma de verificação que ajuda a evitar erros de digitação e perda de bitcoin.
Os endereços P2PKH têm normalmente 34 ou 33 caracteres de comprimento (mas teoricamente poderiam ter apenas 26 caracteres) e são codificados no formato Base58. Eles começam com o prefixo 1 e são atualmente responsáveis por receber e garantir 43% do fornecimento de bitcoin extraído, mais do que qualquer outro tipo de endereço.
A criação de um endereço P2PKH envolve colocar uma única chave pública por meio das funções hash SHA-256 e RIPEMD-160. Isso reduz a quantidade de dados, o que, por sua vez, ajuda a economizar espaço em bloco e taxas de transação para o usuário. Também introduz maior resistência à engenharia reversa da chave privada além da já considerada inquebrável curva elíptica secp256k1.
Pay-to-Multisig (P2MS) é um tipo de transação trivial que foi relevante apenas brevemente e nunca foi responsável por manter mais de 100 bitcoins ao mesmo tempo em todos os participantes da rede. No entanto, o P2MS faz parte da história do bitcoin.
O P2MS foi introduzido como script padrão no início de 2012, conforme especificado pelo BIP 11. No entanto, esse tipo de transação sofria dos mesmos problemas do P2PK, pois incluía chaves públicas expostas e não utilizava nenhum formato de endereço. Também limitou o número de chaves públicas em um quórum multisig a três. Dentro de alguns meses, o P2MS seria substituído por um método alternativo para receber bitcoin em um arranjo multisig chamado P2SH, que abordaremos a seguir.
Pay-to-Script-Hash (P2SH) foi introduzido no Bitcoin como um soft fork de acordo com o BIP 16 em 1º de abril de 2012. Como a maioria dos garfos, a história por trás dele é fascinante. O P2SH tem muito em comum com o P2PKH. A principal diferença é que o endereço é criado por meio de hash de um script de resgate em vez de hash de uma única chave pública.
Um script de resgate pode ser pensado como instruções codificadas que especificam como o bitcoin recebido no endereço P2SH pode ser gasto no futuro. Poderia haver uma ampla gama de possibilidades, incluindo múltiplas chaves públicas diferentes. O destinatário, e não o remetente, determina os detalhes do script, e as instruções de gasto não são expostas publicamente até que o bitcoin seja gasto fora do endereço.
Embora usuários avançados possam construir scripts complexos, os usos mais comuns do P2SH têm sido a criação de endereços SegWit aninhados (abordados abaixo) e carteiras multisig. Por exemplo, um script pode incluir três chaves públicas e especificar que as assinaturas de quaisquer duas das chaves privadas correspondentes podem gastar o bitcoin. Isso criaria um endereço multisig 2 de 3.
Os endereços P2SH têm exatamente 34 caracteres e começam com um prefixo 3, conforme especificado pelo BIP 13. Antes do soft fork de 1º de abril, algumas transações experimentaram esse prefixo alternativo, a primeira das quais é encontrada no Bloco 170.052.
Pay-to-Witness-Public-Key-Hash (P2WPKH) é o primeiro de dois tipos de endereço introduzidos no Bitcoin no soft fork SegWit em agosto de 2017. A história por trás desse soft fork extremamente importante e particularmente controverso está documentada em um livro chamado The Blocksize War, escrito por Jonathan Bier.
P2WPKH é a variante SegWit do P2PKH, o que, em um nível básico, significa que escolher esse tipo de endereço em vez de endereços P2PKH mais antigos ajudará você a economizar dinheiro em taxas de transação ao movimentar seu bitcoin.
Os endereços SegWit parecem bem diferentes dos tipos de endereços mais antigos porque, de acordo com o BIP 173, eles usam a codificação Bech32 em vez de Base58. Mais notavelmente, não há letras maiúsculas no Bech32. Os endereços P2WPKH podem ser identificados por um prefixo bc1q e um comprimento de caracteres de exatamente 42.
Pay-to-Witness-Script-Hash (P2WSH) é a variante SegWit do P2SH. A principal vantagem de usar P2WSH em vez de P2SH é que ele pode ajudar a reduzir as taxas de transação, e o principal motivo para usar um hash de script em vez de um hash de chave pública é acomodar acordos multisig.
Assim como P2WPKH, um endereço P2WSH começa com um prefixo bc1q. No entanto, ele tem um comprimento de caracteres maior, exatamente 62. Ao contrário dos tipos de endereço abordados até agora, os endereços P2WSH são criados usando apenas a função de hash SHA-256, sem incluir RIPEMD-160, resultando no aumento do comprimento de caracteres. Isso foi implementado com cautela, adicionando proteção extra contra um vetor de ataque multisig bastante matizado e extremamente improvável.
Nested SegWit (também conhecido como Wrapped SegWit) não é tecnicamente um tipo de endereço diferente do que abordamos acima. Ainda assim, é uma maneira única de usar os tipos de endereço discutidos anteriormente de uma maneira que foi temporariamente útil para a comunidade Bitcoin.
Quando ocorreu o soft-fork do SegWit, nem todos os nós, software e serviços de bitcoin foram atualizados imediatamente para suportar os novos tipos de endereço nativos do SegWit, P2WPKH e P2WSH. Somente as entidades que fizeram upgrade poderiam enviar para esses novos endereços. Isso significava que as pessoas que queriam receber bitcoin de qualquer pessoa (incluindo aqueles que não haviam atualizado) ainda não podiam usar uma carteira Native SegWit. No entanto, como o SegWit oferecia taxas de transação mais baratas, a maioria das pessoas estava interessada em começar a usá-lo.
A solução engenhosa para esse dilema foi utilizar o tipo de transação P2SH. As entidades que ainda não implementaram o SegWit ainda poderiam enviar bitcoin para endereços P2SH – que, conforme discutido acima, são construídos com um script de resgate especificando as instruções sobre como o bitcoin pode ser gasto posteriormente. Acontece que essas instruções poderiam incorporar o novo modelo de gastos do SegWit, fornecendo aos usuários uma ponte para taxas reduzidas. Portanto, os endereços P2SH que usam esse truque ficaram conhecidos como Nested SegWit e desempenharam um papel significativo no processo de adoção do SegWit.
Superficialmente, os endereços Nested SegWit são indistinguíveis de outros endereços P2SH, portanto, o fornecimento de bitcoin mantido neste arranjo é incognoscível. Além disso, como todas as ferramentas Bitcoin modernas agora podem enviar diretamente para endereços SegWit nativos, não há mais nenhum bom motivo para usar o Nested SegWit.
Pay-to-Taproot (P2TR) é o mais novo tipo de endereço, disponibilizado pelo soft-fork Taproot em novembro de 2021. A adoção do P2TR permanece bastante baixa no momento em que este artigo foi escrito, e muitos softwares e serviços Bitcoin ainda estão trabalhando na integração.
Enquanto P2WPKH e P2WSH são conhecidos como SegWit V0, P2TR é considerado SegWit V1. Notavelmente, o P2TR utiliza um algoritmo de assinatura digital chamado Schnorr, que difere do formato ECDSA usado nos tipos de transação Bitcoin anteriores. As assinaturas Schnorr têm várias vantagens, incluindo reduções adicionais nas taxas de transação e maior privacidade.
No que diz respeito à privacidade, as agregações de chaves e assinaturas possibilitadas por Schnorr permitem que os endereços multisig sejam indistinguíveis dos singlesig, e as condições de gasto para um endereço P2TR nunca são reveladas publicamente. O criador do endereço pode até incluir vários scripts de resgate personalizados para escolher, a fim de gastar o bitcoin mais tarde.
Os endereços P2TR têm 62 caracteres e usam a codificação Bech32m, uma versão ligeiramente modificada do Bech32, conforme descrito no BIP 350. Os endereços P2TR podem ser identificados pelo seu prefixo bc1p exclusivo.
Agora que cobrimos todos os métodos padronizados para receber bitcoin on-chain, alguns dos fatos rápidos e recursos de endereço podem ser combinados em um gráfico conveniente para referência.
Pay-to-Public-Key (P2PK) é o método original de recebimento de bitcoin e não envolve um endereço. Em vez disso, como o nome sugere, o bitcoin é pago diretamente a uma chave pública exposta. A primeira transação de bitcoin de uma pessoa para outra usou P2PK, quando Satoshi Nakamoto enviou moedas para Hal Finney no Bloco 170.
O P2PK não é mais usado porque é uma forma mais cara, menos privada e menos segura de receber bitcoin do que os métodos subsequentes.
Pay-to-Public-Key-Hash (P2PKH) estava disponível para uso no início do bitcoin e apareceu no blockchain pela primeira vez menos de duas semanas após o bloco de gênese. O P2PKH faz várias melhorias no P2PK, como a utilização de um endereço. Conforme discutido em nosso artigo anterior, os endereços contêm uma soma de verificação que ajuda a evitar erros de digitação e perda de bitcoin.
Os endereços P2PKH têm normalmente 34 ou 33 caracteres de comprimento (mas teoricamente poderiam ter apenas 26 caracteres) e são codificados no formato Base58. Eles começam com o prefixo 1 e são atualmente responsáveis por receber e garantir 43% do fornecimento de bitcoin extraído, mais do que qualquer outro tipo de endereço.
A criação de um endereço P2PKH envolve colocar uma única chave pública por meio das funções hash SHA-256 e RIPEMD-160. Isso reduz a quantidade de dados, o que, por sua vez, ajuda a economizar espaço em bloco e taxas de transação para o usuário. Também introduz maior resistência à engenharia reversa da chave privada além da já considerada inquebrável curva elíptica secp256k1.
Pay-to-Multisig (P2MS) é um tipo de transação trivial que foi relevante apenas brevemente e nunca foi responsável por manter mais de 100 bitcoins ao mesmo tempo em todos os participantes da rede. No entanto, o P2MS faz parte da história do bitcoin.
O P2MS foi introduzido como script padrão no início de 2012, conforme especificado pelo BIP 11. No entanto, esse tipo de transação sofria dos mesmos problemas do P2PK, pois incluía chaves públicas expostas e não utilizava nenhum formato de endereço. Também limitou o número de chaves públicas em um quórum multisig a três. Dentro de alguns meses, o P2MS seria substituído por um método alternativo para receber bitcoin em um arranjo multisig chamado P2SH, que abordaremos a seguir.
Pay-to-Script-Hash (P2SH) foi introduzido no Bitcoin como um soft fork de acordo com o BIP 16 em 1º de abril de 2012. Como a maioria dos garfos, a história por trás dele é fascinante. O P2SH tem muito em comum com o P2PKH. A principal diferença é que o endereço é criado por meio de hash de um script de resgate em vez de hash de uma única chave pública.
Um script de resgate pode ser pensado como instruções codificadas que especificam como o bitcoin recebido no endereço P2SH pode ser gasto no futuro. Poderia haver uma ampla gama de possibilidades, incluindo múltiplas chaves públicas diferentes. O destinatário, e não o remetente, determina os detalhes do script, e as instruções de gasto não são expostas publicamente até que o bitcoin seja gasto fora do endereço.
Embora usuários avançados possam construir scripts complexos, os usos mais comuns do P2SH têm sido a criação de endereços SegWit aninhados (abordados abaixo) e carteiras multisig. Por exemplo, um script pode incluir três chaves públicas e especificar que as assinaturas de quaisquer duas das chaves privadas correspondentes podem gastar o bitcoin. Isso criaria um endereço multisig 2 de 3.
Os endereços P2SH têm exatamente 34 caracteres e começam com um prefixo 3, conforme especificado pelo BIP 13. Antes do soft fork de 1º de abril, algumas transações experimentaram esse prefixo alternativo, a primeira das quais é encontrada no Bloco 170.052.
Pay-to-Witness-Public-Key-Hash (P2WPKH) é o primeiro de dois tipos de endereço introduzidos no Bitcoin no soft fork SegWit em agosto de 2017. A história por trás desse soft fork extremamente importante e particularmente controverso está documentada em um livro chamado The Blocksize War, escrito por Jonathan Bier.
P2WPKH é a variante SegWit do P2PKH, o que, em um nível básico, significa que escolher esse tipo de endereço em vez de endereços P2PKH mais antigos ajudará você a economizar dinheiro em taxas de transação ao movimentar seu bitcoin.
Os endereços SegWit parecem bem diferentes dos tipos de endereços mais antigos porque, de acordo com o BIP 173, eles usam a codificação Bech32 em vez de Base58. Mais notavelmente, não há letras maiúsculas no Bech32. Os endereços P2WPKH podem ser identificados por um prefixo bc1q e um comprimento de caracteres de exatamente 42.
Pay-to-Witness-Script-Hash (P2WSH) é a variante SegWit do P2SH. A principal vantagem de usar P2WSH em vez de P2SH é que ele pode ajudar a reduzir as taxas de transação, e o principal motivo para usar um hash de script em vez de um hash de chave pública é acomodar acordos multisig.
Assim como P2WPKH, um endereço P2WSH começa com um prefixo bc1q. No entanto, ele tem um comprimento de caracteres maior, exatamente 62. Ao contrário dos tipos de endereço abordados até agora, os endereços P2WSH são criados usando apenas a função de hash SHA-256, sem incluir RIPEMD-160, resultando no aumento do comprimento de caracteres. Isso foi implementado com cautela, adicionando proteção extra contra um vetor de ataque multisig bastante matizado e extremamente improvável.
Nested SegWit (também conhecido como Wrapped SegWit) não é tecnicamente um tipo de endereço diferente do que abordamos acima. Ainda assim, é uma maneira única de usar os tipos de endereço discutidos anteriormente de uma maneira que foi temporariamente útil para a comunidade Bitcoin.
Quando ocorreu o soft-fork do SegWit, nem todos os nós, software e serviços de bitcoin foram atualizados imediatamente para suportar os novos tipos de endereço nativos do SegWit, P2WPKH e P2WSH. Somente as entidades que fizeram upgrade poderiam enviar para esses novos endereços. Isso significava que as pessoas que queriam receber bitcoin de qualquer pessoa (incluindo aqueles que não haviam atualizado) ainda não podiam usar uma carteira Native SegWit. No entanto, como o SegWit oferecia taxas de transação mais baratas, a maioria das pessoas estava interessada em começar a usá-lo.
A solução engenhosa para esse dilema foi utilizar o tipo de transação P2SH. As entidades que ainda não implementaram o SegWit ainda poderiam enviar bitcoin para endereços P2SH – que, conforme discutido acima, são construídos com um script de resgate especificando as instruções sobre como o bitcoin pode ser gasto posteriormente. Acontece que essas instruções poderiam incorporar o novo modelo de gastos do SegWit, fornecendo aos usuários uma ponte para taxas reduzidas. Portanto, os endereços P2SH que usam esse truque ficaram conhecidos como Nested SegWit e desempenharam um papel significativo no processo de adoção do SegWit.
Superficialmente, os endereços Nested SegWit são indistinguíveis de outros endereços P2SH, portanto, o fornecimento de bitcoin mantido neste arranjo é incognoscível. Além disso, como todas as ferramentas Bitcoin modernas agora podem enviar diretamente para endereços SegWit nativos, não há mais nenhum bom motivo para usar o Nested SegWit.
Pay-to-Taproot (P2TR) é o mais novo tipo de endereço, disponibilizado pelo soft-fork Taproot em novembro de 2021. A adoção do P2TR permanece bastante baixa no momento em que este artigo foi escrito, e muitos softwares e serviços Bitcoin ainda estão trabalhando na integração.
Enquanto P2WPKH e P2WSH são conhecidos como SegWit V0, P2TR é considerado SegWit V1. Notavelmente, o P2TR utiliza um algoritmo de assinatura digital chamado Schnorr, que difere do formato ECDSA usado nos tipos de transação Bitcoin anteriores. As assinaturas Schnorr têm várias vantagens, incluindo reduções adicionais nas taxas de transação e maior privacidade.
No que diz respeito à privacidade, as agregações de chaves e assinaturas possibilitadas por Schnorr permitem que os endereços multisig sejam indistinguíveis dos singlesig, e as condições de gasto para um endereço P2TR nunca são reveladas publicamente. O criador do endereço pode até incluir vários scripts de resgate personalizados para escolher, a fim de gastar o bitcoin mais tarde.
Os endereços P2TR têm 62 caracteres e usam a codificação Bech32m, uma versão ligeiramente modificada do Bech32, conforme descrito no BIP 350. Os endereços P2TR podem ser identificados pelo seu prefixo bc1p exclusivo.
Agora que cobrimos todos os métodos padronizados para receber bitcoin on-chain, alguns dos fatos rápidos e recursos de endereço podem ser combinados em um gráfico conveniente para referência.