1. Histórico do Bitcoin
O Bitcoin adota um modelo de transação semelhante ao dinheiro (sistema de caixa), e seu método de pagamento é baseado em um modelo chamado UTXO, que é diferente do modelo tradicional baseado em saldo de conta.

Por exemplo: No processo do modelo de contabilidade de contas do banco, quando A transfere 100 yuans para B, o banco registrará três etapas, que constituem um processo de transação. O primeiro passo é deduzir 100 yuans da conta de A. O ID do registro desta etapa é tid1. A segunda etapa é depositar 100 yuans na conta de B. O ID do registro desta etapa é tid2. A terceira etapa é registrar um registro de transferência, que associa tid1 e tid2, indicando que a conta A diminui em 100 yuans e a conta B aumenta em 100 yuans.
Desta forma, a relação de transferência entre A e B é registrada e pode ser consultada e rastreada futuramente. Agora, explicaremos o método de pagamento do Bitcoin através da introdução do UTXO e do modelo de pagamento.
UTXO
Na blockchain Bitcoin, todos os saldos são armazenados em uma lista chamada “Saídas de Transações Não Gastas” (UTXO). Cada UTXO contém uma certa quantidade de Bitcoin, informações do proprietário e status de disponibilidade, semelhante a um cheque com o nome do titular. Este cheque pode ser assinado e transferido para outra pessoa.
O saldo de um endereço é igual à soma de todos os seus UTXOs. O saldo atual de cada endereço pode ser obtido percorrendo a lista UTXO, e a soma desses UTXOs representa o fornecimento total atual de todos os Bitcoins.

Na estrutura de transação do Bitcoin, cada transação contém entradas e saídas. Cada entrada é uma referência a um UTXO existente e cada saída especifica um novo endereço e valor de recebimento. Depois que uma transação é criada, o UTXO associado à entrada é temporariamente bloqueado para evitar a reutilização, e o status do UTXO associado só mudará depois de ser empacotado e confirmado com sucesso pelo minerador.
Especificamente, o UTXO de entrada é removido e a saída gera um novo UTXO e o adiciona à lista. Isso é semelhante à geração de um novo cheque após a expiração do cheque antigo, com a propriedade do novo cheque transferida para o nome do novo titular.
Ressalta-se que cada UTXO só pode ser utilizado uma vez em uma transação. Após o uso, ele é removido permanentemente e uma nova saída é criada e adicionada à lista UTXO. A lista UTXO é constantemente atualizada à medida que novos blocos são criados. Ao analisar o histórico de transações, o estado da lista UTXO em qualquer momento pode ser reconstruído.
Além disso, o valor total de entrada de uma transação geralmente excede ligeiramente o valor total de produção, e essa diferença se torna a taxa de transação e serve como um incentivo para K trabalhadores. As taxas de transação são proporcionais à complexidade da transação, portanto, uma transação com mais entradas e saídas geralmente exigirá taxas de rede mais altas.

Para entender a estrutura de transação do Bitcoin de forma mais vívida, podemos aprender mais através do exemplo a seguir, onde “vin” representa a entrada da transação e “vout” representa a saída da transação. As transações Bitcoin usam uma abordagem de entrada e saída em vez do modelo tradicional de saldo de conta.

Podemos selecionar aleatoriamente um registro de transação em blockchain.com para analisar. A figura a seguir mostra o Hash ID.
Transação para 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Ele contém uma entrada e duas saídas.

Usando os comandos bitcoin-cli getrawtransaction e decoderawtransaction, podemos inspecionar a estrutura subjacente da transação acima:

Na rede Bitcoin, a saída de cada transação contém duas informações principais: o endereço (hash da chave pública) e o valor (em Bitcoins).
Se a saída de uma transação não tiver sido usada na entrada de outras transações, essa saída será chamada de saída de transação não gasta (UTXO). Qualquer pessoa que possua a chave privada correspondente à chave pública no UTXO tem o direito de usar (ou seja, gastar) este UTXO.
Vejamos as informações em "vin" no código acima. Ela indica que o UTXO gasto por esta transação vem da 0ª saída (uma transação pode ter múltiplas saídas, índice) de outra transação (seu ID é 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18). de 0).
Podemos descobrir o valor deste UTXO (por exemplo, 0,1 Bitcoin) no histórico de transações. Portanto, nesta transação, este usuário gastou 0,1 Bitcoin, e o valor 0,1 não precisa ser escrito explicitamente na transação, mas é obtido consultando as informações do UTXO.
O “vout” desta transação contém duas saídas, que representam dois novos UTXOs, correspondentes ao novo saldo e proprietário. Esses novos UTXOs existirão até que outra transação os consuma como entrada.

Modelo de pagamento
Para entender melhor o modelo de pagamento da rede Bitcoin, utilizamos um exemplo para apresentar o processo de pagamento de uma quantidade de n Bitcoins pagos por A a B. A figura abaixo mostra o processo do usuário A enviando 3 Bitcoins para o usuário B.

Para o usuário A, antes de mais nada, é necessário determinar o conjunto de todos os UTXOs que ele possui, ou seja, todos os Bitcoins que o usuário A pode controlar;
A seleciona um ou mais UTXOs deste conjunto como entrada da transação. A soma dos valores dessas entradas é m (2+0,8+0,5=3,3 BTC), que é maior que o valor n (3 BTC) necessário. ser pago;
O usuário A define duas saídas para a transação, uma saída é paga ao endereço de B, o valor é n (3 BTC) e a outra saída é paga ao próprio endereço de mudança de A, o valor é mn-fee (3,3-3- 0,001 =0,299 BTC). A carteira do usuário geralmente consiste em vários endereços. Geralmente, cada endereço é usado apenas uma vez e o troco é retornado para um novo endereço por padrão;
Assim que o trabalhador K empacotar e confirmar a transação no blockchain, o receptor B poderá obter informações sobre a transação.

Como o tamanho de cada bloco é limitado (geralmente cerca de 1 MB), os trabalhadores K priorizam transações com altas taxas de transação (taxa_taxa=taxa/tamanho) para obter os retornos de taxas mais altos.
Podemos verificar a taxa de transação de mineração K em tempo real no pool de transações não confirmadas (mempool). Se quisermos obter a confirmação o mais rápido possível durante o processo de transferência, podemos escolher Alta Prioridade ou personalizar uma taxa de transação adequada.

2. Numeração e rastreamento de cong
O fornecimento total de Bitcoin é de 21 milhões, e cada Bitcoin contém 10^8 Satoshi (Sat). Portanto, na rede Bitcoin, temos um total de 21 milhões * 10^8 satoshis.
O protocolo Ordinals usa uma forma única de numerar cada Satoshi para garantir sua singularidade e a capacidade de rastrear com precisão a conta à qual pertencem. Além disso, a classificação de raridade dos satoshis será simplificada.
Número de Satoshi
De acordo com o protocolo dos Ordinais, os satoshis são numerados de acordo com a ordem em que são extraídos. A figura abaixo mostra a representação do 0º satoshi extraído no 0º bloco.

Existem muitas maneiras de expressar Satoshi:
Símbolo inteiro: Por exemplo, 2099994106992659, que representa o número de série atribuído ao Satoshi de acordo com a ordem de mineração.
Notação decimal: Por exemplo, 3891094.16797, o primeiro dígito indica a altura do bloco onde o Satoshi foi extraído e o segundo dígito indica o número Satoshi no bloco.
Símbolo de grau: Por exemplo, 3°111094′214″16797‴, o primeiro dígito é o período, numerado a partir de 0, o segundo dígito é o índice do bloco da época da redução pela metade e o terceiro dígito é o índice do bloco durante a dificuldade período de ajuste, o último dígito é o índice de sat no bloco.
Símbolo de porcentagem: Por exemplo, 99,99971949060254% indica a posição do Satoshi no fornecimento de Bitcoin, expressa como uma porcentagem.
Nome: Por exemplo Satoshi. Um nome que codifica o número de sequência usando os caracteres de a a z.

Vamos dar um exemplo para explicar como numerar Bitcoins recém-extraídos. Observando o bloco 795952 da blockchain Bitcoin, ele contém uma transação chamada "Tx 3a1f...b177", que registra a recompensa do trabalhador K (transação coinbase). Esta transação inclui Bitcoins recém-extraídos, que são usados como recompensa para K trabalhadores, bem como as taxas de manuseio pagas pelo iniciador da transação aos K trabalhadores.
Olhando a parte de entrada, podemos ver o ID do UTXO, que consiste em uma sequência de zeros e a altura do bloco. E na seção de resultados podemos ver os endereços que receberam essas recompensas e taxas, bem como seu valor total.

Se examinarmos mais detalhadamente a saída parcial para K trabalhadores, podemos ver a distribuição de endereços, quantidades e satoshis contidos. Conforme mencionado anteriormente, isso inclui recompensas de mineração K e taxas de manuseio.
Entre eles, as informações do número de sats verdes 1941220000000000–1941220625000000 são o novo satoshi gerado pela mineração de recompensas K, e os 712 registros de satoshi restantes correspondem a todas as taxas de manuseio no bloco.

Podemos verificar o número Sat 1941220000000000.
Seu número de bloco é 795952 e a notação decimal (decimal) é 795952,0, o que significa que a altura do bloco de mineração deste Satoshi é 795952, o número de Satoshi neste bloco é 0 e a raridade subsequente é marcada como incomum. irá apresentá-lo em detalhes nas seções seguintes.

A circulação de Cong
O modelo de transação do Bitcoin usa o modelo Unspent Transaction Output (UTXO), o que significa que cada Bitcoin (BTC) pode ser rastreado até sua origem. Vamos ilustrar esse processo com um exemplo:
Suponha que o usuário A recebeu uma recompensa pela mineração de K, que contém Bitcoins do 100º Satoshi ao 110º Satoshi. Esses Bitcoins são todos armazenados no mesmo UTXO (Saída de transação não gasta). O ID deste UTXO é adc123.
Agora, quando o usuário A deseja pagar 5 satoshis ao usuário B, ele opta por usar o UTXO com ID abc123 como entrada para a transação. Esta transação enviará 5 satoshis ao usuário B e retornará 5 satoshis como troco ao usuário A.
Esses dois 5 satoshis se tornarão um todo, mas serão armazenados em dois UTXOs diferentes, como abc456 e abc789.
O id UTXO acima e o número de satoshis são mostrados apenas como exemplos. Em situações reais, o número mínimo de satoshis enviados é limitado a 546 e o id UTXO não é expresso neste formulário.

Na transação acima, o caminho de circulação dos 10 satoshis do usuário A é:
A mineração K produz 10 satoshis, numerados [100, 110). Isso significa que do 100º ao 109º satoshis são armazenados no UTXO com o id abc123, e seu proprietário é o usuário A.
Quando A faz a transferência, os 10 satoshis são divididos em duas partes, cada uma das quais equivale a 5 satoshis. Aqui é adotado o princípio “primeiro a entrar, primeiro a sair”, ou seja, a ordem dos números Satoshi é determinada de acordo com seu índice na saída da transação.
Supondo que a ordem de saída seja primeiro o usuário A, depois o usuário B, então o número de sequência dos 5 satoshis restantes do usuário A é [100, 105), que é armazenado no UTXO com id abc456, e os 5 satoshis do usuário B são a sequência o número é [105, 110) e é armazenado no UTXO com o id abc789.

Satoshi raro
Como um desdobramento do protocolo Ordinals, a raridade dos satoshi pode ser definida com base na ordem em que são extraídos. Isso resultará em alguns satoshis especiais com raridades diferentes. Aqui estão os níveis de raridade de diferentes Satoshis:
comum Nível comum: qualquer satoshi, exceto o primeiro satoshi do bloco (a oferta total é de 2.100 trilhões)
incomum Nível excelente: o primeiro satoshi de cada bloco (fornecimento total é 6929999)
raro: O primeiro satoshi de cada período de ajuste de dificuldade (fornecimento total é 3437)
épico: o primeiro Satoshi após cada redução pela metade (a oferta total é 32)
lendário: o primeiro satoshi de cada ciclo (suprimento total é 5)
mítico: o primeiro Satoshi no bloco gênese (suprimento total é 1)
Este conceito de satoshis raros pode agregar mais interesse e valor ao ecossistema Bitcoin. Satoshis de diferentes raridades podem ter valores diferentes no mercado, atraindo colecionadores e investidores.

3. Método de inscrição
Uma diferença significativa entre Ordinals e outros NFTs da cadeia não Bitcoin é que seus metadados não são armazenados em um local específico.
Em vez disso, esses metadados são incorporados nos dados testemunhais (campo testemunha) da transação, e é por isso que os chamamos de “inscrição”, porque os dados são “gravados” nos bits como uma inscrição em uma parte específica da transação de moeda. , esses dados são anexados a um Satoshi específico.
Este processo de inscrição é implementado através de Segregated Witness (SegWit) e Pay-to-Taproot (P2TR). Inclui duas etapas: confirmar e revelar qualquer forma de conteúdo (como texto, imagens ou vídeos) no Satoshi designado.
A seguir, detalharemos outro método de armazenamento mais direto, OP_RETURN, e explicaremos por que ele não funciona com inscrições. Ao mesmo tempo, exploraremos os conceitos de Segwit e Pay-to-Taproot e seu papel na inscrição. Finalmente, nos aprofundaremos nos métodos de inscrição.

OP_RETURE
Na versão 0.9 do cliente Bitcoin Core, um compromisso foi finalmente alcançado usando o operador RETURN. RETURN permite que os desenvolvedores adicionem 80 bytes de dados não relacionados a pagamento à saída da transação. Ao contrário dos pseudo-pagamentos, RETURN cria uma saída que é explicitamente verificável, mas não pode ser gasta e não precisa ser armazenada em uma coleção UTXO (Unspent Transaction Output).
As saídas RETURN são registradas no blockchain, o que ocupará espaço em disco e fará com que o tamanho do blockchain aumente, mas não ocuparão a coleção UTXO e, portanto, não causarão o inchaço da coleção UTXO, nem aumentarão o caro custo de memória do nó completo.
Embora OP_RETURN seja um método de armazenamento de informações diretamente no blockchain Bitcoin, ele também apresenta alguns desafios. Em primeiro lugar, OP_RETURN só pode armazenar 80 bytes de dados, o que obviamente não é suficiente para situações em que é necessário armazenar mais dados.
Em segundo lugar, os dados OP_RETURN são armazenados na saída da transação. Embora não ocupem a coleção UTXO, eles ocuparão o espaço de armazenamento do blockchain, fazendo com que o tamanho do blockchain aumente.
Finalmente, usar OP_RETURN aumenta as taxas de transação porque exige o pagamento de mais para lançar essas transações.

Testemunha Segregada
Comparado com os métodos anteriores, o SegWit oferece uma nova solução que pode resolver os problemas acima.
SegWit é uma atualização de protocolo chave para Bitcoin. Foi proposto pela primeira vez pelo desenvolvedor principal do Bitcoin, Pieter Wuille, em 2015 e foi finalmente adotado oficialmente na versão 0.16.0 em 2017.
O “Segregado” em Segregated Witness (SegWit) significa separação ou isolamento, enquanto “Witness” envolve os dados de assinatura associados à transação. Portanto, o conceito central do SegWit é separar certos dados de assinatura de transação (também chamados de dados testemunhas) dos dados reais da transação.
O principal benefício de separar os dados de assinatura dos dados de transação é reduzir o tamanho dos dados armazenados nos blocos Bitcoin. Isto resulta em mais capacidade disponível por bloco para acomodar mais transações, o que também significa que a rede é capaz de processar mais transações e os usuários pagam taxas de transação mais baixas.
Tecnicamente, isso significa mover os dados de assinatura do script (scriptSig) originalmente contidos na estrutura do bloco base para uma nova estrutura de dados. Os nós de validação e trabalhadores K também verificarão a assinatura do script nesta nova estrutura de dados para garantir a validade da transação.

A atualização do SegWit também introduz um novo campo de dados de testemunhas para aumentar a privacidade e a eficiência. Embora os dados de testemunha não sejam projetados especificamente para armazenar dados de transações em texto simples, eles na verdade nos dão a oportunidade de armazenar coisas como metadados de inscrição.
Usamos a figura a seguir para entender a Testemunha Segregada de forma mais vívida:

Raiz principal
P2TR é um tipo de saída de transação de Bitcoin que foi introduzido na atualização Taproot de 2021, que permite que diferentes condições de transação sejam armazenadas no blockchain de forma mais privada.
Nesta arquitetura, o P2TR desempenha um papel crucial na inscrição de dados dos Ordinais. Na verdade, a inscrição incorpora dados específicos nas transações Bitcoin, e as atualizações do Taproot, especificamente P2TR, tornam a incorporação de dados mais flexível e econômica.
Em primeiro lugar, devido ao método de armazenamento dos códigos de comando Taproot, podemos armazenar dados de inscrição no caminho de comando Taproot, e esses códigos de comando quase não têm restrições de conteúdo. tornando relativamente econômico o armazenamento de dados de inscrição.
No entanto, como o consumo de instruções Taproot só pode vir da saída Taproot existente, o armazenamento de inscrições adota um processo de confirmação/revelação de dois estágios. Primeiro, na transação de commit, é estabelecida uma saída Taproot que promete conter os dados de inscrição.

Então, em uma transação de revelação, a saída estabelecida pela transação de commit é consumida, revelando assim o conteúdo da inscrição na cadeia.
Essa abordagem reduz significativamente o uso de recursos. Se P2TR não for utilizado, os dados testemunhas serão armazenados na saída da transação. Enquanto esta saída não for consumida, os dados testemunhas sempre existirão no conjunto UTXO.
Por outro lado, se P2TR for utilizado, os dados testemunhas não aparecerão na transação gerada durante a fase de commit e, portanto, não serão gravados no conjunto UTXO. Somente quando este UTXO for consumido é que os dados da testemunha aparecerão na entrada da transação durante a fase de revelação.
O P2TR permite que dados originais sejam gravados na blockchain do Bitcoin, mas nem sempre ocupa o espaço concentrado no UTXO. Como a manutenção/modificação do conjunto UTXO requer mais recursos, este método pode economizar recursos significativamente.

inscrição
O protocolo Ordinals expande o limite de tamanho de gravação na rede Bitcoin usando SegWit para armazenar conteúdo de texto simples na testemunha, permitindo até 4 MB de armazenamento de metadados.
Taproot simplifica o processo de armazenamento de dados arbitrários de testemunhas em transações Bitcoin, permitindo que o desenvolvedor do Ordinals, Casey Rodarmor, reutilize opcodes antigos (OP_FALSE, OP_IF, OP_PUSH) para criar os chamados "envelopes" para armazenar o que é chamado de "inscrição" de qualquer informação.
O processo de fundição da inscrição consiste nas duas etapas a seguir:
Primeiro, na transação de commit, você precisa criar uma promessa apontando para a saída Taproot contendo o conteúdo da inscrição. O formato deste armazenamento é Taproot, a saída da transação anterior deve ser P2TR (Pay-To-Taproot) e o conteúdo de um formato específico é incorporado no script de testemunha Taproot.
Primeiro, a string "ordn" é colocada na pilha para eliminar a ambiguidade do propósito da inscrição. Em seguida, use OP_PUSH 1 para indicar que o próximo push contém o tipo de conteúdo e OP_PUSH 0 para indicar que os push de dados subsequentes contêm o próprio conteúdo.
Como uma das limitações do Taproot é que um único envio de dados não pode exceder 520 bytes, vários envios de dados são necessários para armazenar inscrições grandes. Neste momento, os dados de inscrição foram vinculados à saída da transação não gasta (UTXO) da saída da transação, mas ainda não foram tornados públicos.

Segundo, na transação de revelação, a saída criada precisa ser consumida. Nesta fase, a transação é iniciada tomando como entrada o UTXO correspondente à inscrição. Neste momento, o conteúdo da inscrição relacionado ao UTXO será exposto para toda a rede.
Através das duas etapas acima, o conteúdo da inscrição foi associado a um UTXO específico. De acordo com o método de posicionamento de Satoshi (UTXO) introduzido anteriormente, a inscrição é gravada no primeiro Satoshi correspondente à sua entrada UTXO, e o conteúdo da inscrição é incluído na entrada que mostra a transação.
De acordo com a referida circulação e rastreamento de Satoshi (UTXO), este Satoshi contendo conteúdo especial pode ser transferido, comprado, vendido, perdido e recuperado. Deve-se notar que a inscrição não pode ser repetida, caso contrário as inscrições subsequentes serão inválidas.
Para explicar esse processo com mais detalhes, vamos examinar um exemplo que mostra como inscrever uma pequena imagem de um Bitcoin NFT. Este processo cobre as duas fases de confirmação e revelação mencionadas anteriormente.
Primeiro, podemos ver que o ID de hash da primeira transação é 2ddf9...f585c. Ressalta-se que o resultado desta transação não contém dados de testemunhas e não há informações de inscrição relevantes na página web.

A seguir, verificamos o registro do segundo estágio, cujo Hash ID é e7454…7c0e1. Aqui podemos ver as informações da inscrição dos Ordinais, que é o conteúdo da inscrição do testemunho.
O endereço de entrada desta transação é o endereço de saída da transação anterior, e a saída 0,00000546BTC (546 Satoshi) é para transferir este NFT para seu próprio endereço. Ao mesmo tempo, também podemos encontrar o satoshi onde esta inscrição está localizada em Sat 1893640468329373.


Na carteira Bitcoin, podemos ver esse ativo. Se quisermos negociar este NFT, podemos transferi-lo diretamente para endereços de outras pessoas, ou seja, transferir o UTXO, completando assim a transferência da inscrição.

4. Carteira Bitcoin
Depois de entendermos o que é a ecologia dos Ordinais, a circulação dos satoshis e o conhecimento relacionado às inscrições, existem atualmente muitos cenários de aplicação, seja o surgimento do BRC-20, ORC-20, BRC-721, GBRC-721 e outros protocolos derivados relacionados, que exigem que tenhamos carteiras correspondentes para suportar e exibir informações de token ou pequenas imagens NFT.
Nesta seção apresentaremos os conceitos e características dos diferentes endereços de carteira Bitcoin.
Os endereços Bitcoin normalmente começam com 1, 3 ou bc1 e, assim como os endereços de e-mail, podem ser compartilhados com outros usuários Bitcoin para transferir Bitcoin diretamente para sua carteira.
Do ponto de vista da segurança, os endereços Bitcoin não contêm informações confidenciais e podem, portanto, ser compartilhados publicamente a qualquer momento, sem comprometer a segurança da sua conta. Ao contrário dos endereços de e-mail, você pode criar novos endereços Bitcoin conforme necessário e todos eles depositarem fundos diretamente em sua carteira.

Na verdade, muitas carteiras modernas estabelecem automaticamente um novo endereço para cada transação para maximizar a privacidade. Uma carteira é simplesmente uma coleção de endereços e chaves que desbloqueiam os fundos dentro dela. Primeiro precisamos saber como o endereço da carteira Bitcoin é gerado.
Chaves privadas e públicas do Bitcoin
Bitcoin usa curva elíptica Secp256k1 A "chave privada" é um número aleatório entre 1 e n-1 é um número muito grande (256 bits n é expresso em notação científica).

Esta gama é muito ampla e torna quase impossível quebrar as chaves privadas de outras pessoas. Essa chave privada é um número inteiro aleatório, geralmente representado por 256 bits binários, e pode ser codificado de diversas maneiras. As chaves privadas que usam WIF (Wallet Import Format) ou formato compactado WIF não são criptografadas e podem ser decodificadas diretamente em números inteiros aleatórios brutos.
Outro método é o BIP38 (Bitcoin Improvement Proposal 38), que recomenda o uso do algoritmo AES para criptografar a chave privada. A chave privada gerada por este esquema começa com o caractere 6P e uma senha deve ser inserida para importá-la para várias carteiras Bitcoin. É assim que normalmente usamos a proteção de chave privada.
A seguir, usamos a fórmula da curva elíptica K = kG, onde k é a chave privada e G é o ponto base, que é um argumento para a curva elíptica secp256k1.
Através desta fórmula, podemos obter as duas coordenadas de K, que são as duas expressões da chave pública, nomeadamente “Formato não comprimido” e “Formato comprimido”.

A forma não compactada consiste em conectar diretamente as duas coordenadas x e y e, em seguida, adicionar o prefixo 0x04 na frente;
A forma compactada significa que quando y é um número par, o código é 02 x, e quando y é um número ímpar, o código é 03 x;
Endereço Bitcoin
Vários tipos de endereços Bitcoin são mostrados na figura abaixo. Existem quatro métodos de representação:

1. Formato legado (P2PKH)
Exemplo: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
O endereço começa com “1”, que é o formato de endereço original do Bitcoin e ainda é usado hoje. É obtido pelo cálculo do Hash a partir da chave pública, também conhecido como P2PKH, que é a abreviatura de Pay To PubKey Hash (pagamento ao hash da chave pública).
2. Formato SegWit aninhado (P2SH)
Exemplo: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
O endereço começa com "3". P2SH é a abreviatura de Pay To Script Hash, que suporta funções mais complexas do que endereços legados. O P2SH aninhado obtém o endereço P2SH existente (começando com "3") e o encapsula junto com o endereço SegWit.

3. Formato SegWit nativo (Bech32)
Exemplo: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
BIP0173 introduziu formatos de endereço começando com "bc1", que são os endereços usados para Segregated Witness (SegWit) nativo. Este formato de endereço usa codificação Bech32 e foi projetado especificamente para SegWit. Os endereços no formato Bech32 foram definidos no BIP173 no final de 2017. Uma de suas principais características é que não diferencia maiúsculas de minúsculas, por isso é mais fácil evitar confusão na digitação e também é mais fácil de ler.
Comparado com a codificação Base58 tradicional, o Bech32 usa a codificação Base32, portanto, menos caracteres são necessários no endereço, o cálculo é mais eficiente e pode ser armazenado de forma mais compacta no código QR.
Além disso, o Bech32 oferece maior segurança e melhor detecção otimizada de erros de soma de verificação, minimizando o risco de endereços inválidos.
Os próprios endereços Bech32 são compatíveis com SegWit. Nenhum espaço extra é necessário para colocar o endereço SegWit no endereço P2SH, portanto, usando o endereço no formato Bech32, a taxa de manuseio será menor.
No geral, os endereços Bech32 têm várias vantagens sobre os endereços Base58 tradicionais: os códigos QR gerados são menores, mais à prova de erros, mais seguros, não diferenciam maiúsculas de minúsculas e contêm apenas letras minúsculas, por isso são mais fáceis de ler, digitar e é mais fácil para entender.

4. Formato raiz principal (P2TR)
Bech32 tem uma desvantagem: se o último caractere do endereço for p, então inserir ou excluir qualquer número de caracteres q imediatamente antes de p não invalidará sua soma de verificação.
A fim de aliviar as deficiências acima do Bech32, o endereço Bech32m foi proposto no BIP0350:
Para endereços Segwit nativos com versão 0, use o Bech32 anterior;
Para endereços Segwit nativos da versão 1 (ou superior), o novo Bech32m é usado.
Para endereços Bech32m, quando o número de versão é 1, eles sempre começam com "bc1p", o que significa que são endereços Taproot. Semelhante ao Segwit nativo, esses endereços podem ser gerados a partir de uma frase-semente e uma senha usada para gerar as chaves públicas e privadas do conjunto estendido, permitindo a derivação de endereços para vários caminhos em uma carteira determinística hierárquica.

Isso é usado principalmente para armazenar ativos digitais, como tokens BRC-20 e NFTs de Bitcoin.