Autores: Ash Li, Noah Ho
Com a criação do protocolo Ordinal, que permite numerar e inscrever bitcoins, ampliou a gama de produtos disponíveis para o ecossistema bitcoin e trouxe uma nova dinâmica ao ecossistema bitcoin. Neste artigo, mergulharemos nos detalhes do protocolo Ordinal, incluindo como cada bitcoin é numerado e rastreado e como as inscrições se relacionam com a numeração. Mas antes de mergulharmos neste tópico, precisamos primeiro entender alguns antecedentes básicos do Bitcoin para nos ajudar a entender melhor o que se segue.
Após concluir este artigo, você terá dominado o mecanismo de transação e o modelo de pagamento do Bitcoin, entenderá como o Ordinals implementa a numeração e o rastreamento para cada satoshi e como as inscrições são criadas e negociadas. Além disso, você entenderá as diferenças entre os diferentes tipos de carteiras.
I. Histórico do Bitcoin
O Bitcoin usa um modelo de transação semelhante ao dinheiro, e seus pagamentos são baseados em um modelo chamado UTXO, que é diferente do modelo tradicional baseado em saldo de conta. Por exemplo, em um processo de modelo de escrituração de conta bancária, quando A transfere $ 100 para B, o banco registra três etapas que compõem um processo de transação. A primeira etapa é debitar $ 100 da conta de A, e o ID de registro para esta etapa é tid1. A segunda etapa é depositar $ 100 na conta de B, e o ID de registro para esta etapa é tid2. A terceira etapa é registrar um registro de transferência que associa tid1 com tid2, indicando que a conta de A é reduzida em $ 100 e a conta de B é aumentada em $ 100. Desta forma, a relação de transferência entre A e B é registrada e pode ser consultada e rastreada no futuro. Agora, explicaremos como os pagamentos de Bitcoin são feitos introduzindo o UTXO e o modelo de pagamento.
UTXO
No blockchain do Bitcoin, todos os saldos são armazenados em uma lista chamada Unspent Transaction Output (UTXO). Cada UTXO contém um certo número de bitcoins, junto com informações sobre o proprietário desses bitcoins, e indica se eles estão disponíveis. Pense nisso como um cheque em dinheiro assinado com o nome do titular, que pode ser transferido para outra pessoa para uso, desde que o titular o assine. Para um determinado endereço, todos os seus valores de UTXO somam o saldo da carteira naquele endereço. Ao percorrer todos os UTXOs, podemos obter o saldo atual para cada endereço. Somando todos os valores de UTXO, soma-se o valor total de bitcoins atualmente em circulação.
Na estrutura de transação do Bitcoin, cada transação consiste em várias entradas e saídas, onde cada entrada é uma referência a um UTXO existente, e cada saída especifica o novo endereço onde os fundos serão recebidos e o valor correspondente. Uma vez que uma transação é iniciada, o UTXO referenciado em sua seção de entrada é temporariamente bloqueado para evitar a reutilização até que a transação seja concluída. Somente quando esta transação é compactada com sucesso em um bloco pelo minerador e confirmada pela rede, o status do UTXO associado muda. Especificamente, os UTXOs usados como entrada para a transação são removidos da lista de UTXO, indicando que foram consumidos, enquanto a saída da transação gera novos UTXOs que são adicionados à lista de UTXO. Pode-se entender que os cheques de dinheiro antigos são usados e então expiram, gerando novos cheques de dinheiro cuja propriedade pertence ao novo detentor.
Vale ressaltar que cada UTXO só pode ser usado uma vez em uma única transação. Uma vez consumido como uma entrada, ele é removido permanentemente da lista de UTXO. Ao mesmo tempo, a saída recém-gerada é adicionada à lista como um novo UTXO. A lista de UTXO está mudando constantemente e, à medida que cada novo bloco é criado, ele é atualizado de acordo. E, ao analisar o histórico de transações no blockchain, somos capazes de reconstruir o estado da lista de UTXO em qualquer ponto no tempo.
Além disso, o valor total de entrada de uma transação geralmente excederá um pouco seu valor total de saída. Essa diferença, chamada de Taxa de transação ou Taxa de rede, é dada como um incentivo aos mineradores responsáveis por empacotar as transações em blocos. O tamanho da taxa de rede é proporcional à complexidade da transação, então uma transação que contém mais entradas e saídas geralmente exigirá uma taxa de rede mais alta.
Agora, para entender a estrutura das transações de Bitcoin de uma forma mais visual, vamos passar por um exemplo concreto. A estrutura de uma transação de Bitcoin é a seguinte, onde as variáveis vin e vout representam a "entrada" e a "saída" de uma transação de Bitcoin, respectivamente. As transações de Bitcoin não são representadas por entradas e saídas, diferentemente dos modelos tradicionais de saldo de conta que registram mudanças de dados em forma de conta.

Podemos escolher um registro de transação aleatório no blockchain.com para analisar. A figura abaixo mostra uma transação com Hash ID 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Ela contém uma entrada e duas saídas.

Usando os comandos bitcoin-cli getrawtransaction e decoderawtransaction, podemos ver a estrutura subjacente das transações acima:

Na rede Bitcoin, a saída da transação contém duas informações importantes: o endereço (hash da chave pública) e a quantia (em bitcoins). Se a saída de uma transação não for usada na entrada de outras transações, então essa saída da transação é chamada de saída de transação não gasta (UTXO). Quem tiver a chave privada correspondente à chave pública no UTXO tem o direito de usar ou gastar esse UTXO.
Vamos dar uma olhada nas informações no "vin" no código acima, que indicam que o UTXO gasto nesta transação veio de outra transação (com o id 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18) da saída 0 (pode haver mais de uma saída de uma transação, o índice é numerado de 0), podemos encontrar a quantidade deste UTXO a partir do histórico de transações (por exemplo, 0,1), então este 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 tem duas saídas, que são dois novos UTXOs, correspondentes ao novo saldo e ao titular, até que outra transação os consuma como entrada.
Modelo de pagamento
Para entender melhor o modelo de pagamento da rede Bitcoin, apresentamos um exemplo do processo de pagamento para um pagamento de A para B no valor de n bitcoins. O diagrama a seguir mostra o processo de envio de 3 bitcoins do usuário A para o usuário B.

Para o usuário A, é primeiro necessário determinar o conjunto de todos os UTXOs que ele possui, ou seja, todos os bitcoins à disposição do usuário A;
A seleciona um ou mais UTXOs deste conjunto como entradas para a transação, e a soma dessas entradas é m(2+0,8+0,5=3,3 BTC) para ser maior que o valor a ser pago, n(3 BTC);
O usuário A define duas saídas para a transação, uma saída para pagar ao endereço de B o valor de n(3 BTC) e a outra saída para pagar a um dos endereços de troco do próprio A o valor de m-n-fee(3,3-3-0,001=0,299 BTC). (b) A carteira do usuário geralmente consiste em vários endereços, cada um dos quais é normalmente usado apenas uma vez, e o troco é devolvido a um novo endereço por padrão;
Aguardando que o minerador empacote essa transação na cadeia para confirmação, B pode receber essas informações de transação. Como o tamanho do bloco tem um limite superior (cerca de 1 MB), os mineradores darão prioridade para confirmar transações com alta taxa de transação (fee_rate=fee/size ) para obter o maior retorno de taxa. Podemos ver a taxa de transação de mineração em tempo real no mempool. Se quisermos a confirmação mais rápida durante o processo de transferência, podemos escolher Alta Prioridade ou personalizar uma taxa de taxa de transação adequada.

II. Numeração e Rastreamento de Satoshi
O número total de bitcoins é 21 milhões, e cada bitcoin contém 10^8 Satoshi (Sat). Portanto, há 21 milhões * 10^8 satoshi na rede Bitcoin. O protocolo Ordinals distingue esses satoshi numerando exclusivamente cada um. Esta seção descreve como o protocolo faz isso e como ele mantém o controle das contas nas quais cada satoshi está localizado. Além disso, a classificação de raridade do satoshi será descrita.
Numeração de Satoshi
De acordo com o protocolo Ordinals, os satoshi são numerados de acordo com a ordem em que são minerados. A figura a seguir mostra a representação do 0º satoshi minerado do 0º bloco.

Existem várias representações para números ordinais: (https://docs.ordinals.com/overview.html)
Notação inteira: [2099994106992659]() O número ordinal, atribuído de acordo com a ordem em que o satoshi foi minerado.
Notação decimal: [3891094.16797]() O primeiro número é a altura do bloco em que o satoshi foi minerado, o segundo é o deslocamento do satoshi dentro do bloco.
Notação de grau: [3°111094′214″16797‴](). O primeiro número é o ciclo, numerado a partir de 0, o segundo é o índice do bloco na época de redução pela metade, o terceiro número é o índice do bloco no período de ajuste de dificuldade, e o último número é o índice do sat no bloco.
Notação de percentil: [99.99971949060254%]() . A posição do satoshi no suprimento de Bitcoin, expressa como uma porcentagem.
Nome: [satoshi](). Uma codificação do número ordinal usando os caracteres a até z.
Vamos percorrer um exemplo de como numerar os bitcoins recém-minerados. Olhando para o bloco 795952 do blockchain do bitcoin, podemos ver que a primeira dessas transações, Tx 3a1f...b177, registra a recompensa do minerador (a transação coinbase). Esta transação contém bitcoins recém-minerados, que são usados como uma recompensa empacotada para o minerador, bem como uma taxa paga ao minerador pelo iniciador da transação. Olhando para a entrada do diagrama abaixo, podemos ver que seu id UTXO consiste em uma sequência de zeros e a altura do bloco. O endereço de saída é então o endereço da carteira do minerador, e o valor é a soma das recompensas e taxas mencionadas acima.

Se olharmos mais a fundo para a seção da saída para os mineradores, podemos ver a distribuição de endereços, quantidades e os satoshi contidos. Como mencionado anteriormente, eles contêm as recompensas e taxas de mineração. Destes, as informações do número sats verde 1941220000000000–1941220625000000 são os novos satoshi gerados pela recompensa de mineração, enquanto os 712 registros satoshi restantes correspondem a todas as taxas no bloco.

Podemos verificar o número Sat 1941220000000000. Seu número de bloco é 795952 e o decimal é 795952.0, o que significa que a altura do bloco para minerar este Satoshi é 795952, e o número de Satoshi neste bloco é 0, seguido pela marca de raridade para incomum, que descreveremos em detalhes na parte posterior.

Fluxo de Satoshi
Como cada BTC é gerado por meio de recompensas de mineração, todos eles são rastreáveis. As contas Bitcoin usam o modelo UTXO. Vamos supor que o usuário A obteve o 100º-110º satoshi por mineração (os 10 satoshi são armazenados como um todo no mesmo UTXO com id adc123). Quando o usuário A quer pagar ao usuário B 5 satoshi, ele escolhe usar o id abc123 como entrada da transação, onde 5 satoshi são dados ao usuário B e 5 satoshi são devolvidos ao usuário A como troco. Ambas as cópias de 5 satoshi são armazenadas como um todo em dois UTXOs com ids abc456 e abc789 respectivamente. Os ids UTXO acima e o número de satoshi são mostrados apenas como exemplos, na prática o número mínimo é 546 sats e os ids UTXO não são expressos desta forma.

Na transação acima, o caminho do fluxo de 10 satoshi do usuário A é
a mineração gera 10 satoshi com o número [100, 110). Isso significa que os satoshi numerados do 100º ao 109º são armazenados no UTXO com id abc123 e seu proprietário é o usuário A.
Quando A faz a transferência, os 10 satoshi são divididos em duas partes, cada uma com 5 satoshi. O princípio "primeiro a entrar, primeiro a sair" é usado aqui, ou seja, a numeração dos satoshi é determinada pelo seu índice na saída da transação. Supondo que a ordem da saída seja Usuário A e depois Usuário B, então os 5 satoshi restantes do Usuário A são numerados [100, 105) e armazenados no UTXO com id abc456, enquanto os 5 satoshi do Usuário B são numerados [105, 110) e armazenados no UTXO com id abc789.
Satoshi raro
Como um jogo derivado do protocolo Ordinals, a raridade de Satoshi pode ser definida com base na ordem em que são minerados. Isso resultará em alguns Satoshi especiais com raridades diferentes. A seguir estão os níveis de raridade de diferentes Satoshi:
comum: Qualquer satélite que não seja o primeiro satélite do seu bloco (oferta total: 2,1 quatrilhões)
incomum: O primeiro sat de cada bloco (Fornecimento total: 6.929.999)
raro: O primeiro sat de cada período de ajuste de dificuldade (Suprimento total: 3437)
épico: O primeiro sat de cada época de redução pela metade (Suprimento total: 32)
lendário: O primeiro sat de cada ciclo (Suprimento total: 5)
mítico: O primeiro sat do bloco de gênese (Suprimento total: 1)
Esse conceito de satoshi raro pode adicionar mais interesse e valor ao ecossistema bitcoin. Satoshi de raridade diferente pode ter valores diferentes no mercado, atraindo colecionadores e investidores.
III. Método de inscrição
Ordinals é significativamente diferente de outros NFTs em cadeias não bitcoin. Uma das principais diferenças é que os metadados do Ordinals não são armazenados em um local específico. Em vez disso, os metadados são incorporados nos dados testemunhas da transação, razão pela qual os chamamos de "inscrição", porque são "gravados" como uma inscrição em uma parte específica da transação bitcoin. Os dados são anexados a um satoshi específico. Este processo de inscrição é implementado por meio de Segregated Witness (SegWitness) e Pay-to-Taproot (P2TR), que consiste em duas fases: commit e reveal. É possível inscrever qualquer tipo de conteúdo (por exemplo, texto, imagem ou vídeo) em um satoshi especificado. Apresentaremos outro método de armazenamento mais direto, OP_RETURN, abaixo e explicaremos por que ele não é usado como meio de inscrição. Além disso, descreveremos o que são testemunhas isoladas e Pay-to-Taproot e qual o papel que desempenham na inscrição. Finalmente, apresentaremos a forma de inscrições.
ON_RETURN
Na versão 0.9 do cliente Bitcoin Core, o compromisso foi finalmente alcançado adotando o operador RETURN. RETURN permite que os desenvolvedores adicionem 80 bytes de dados de não pagamento à saída da transação. Ao contrário dos pseudopagamentos, RETURN cria uma saída não consumível explicitamente verificável; tais dados não precisam ser armazenados no conjunto UTXO. As saídas RETURN são registradas no blockchain, consomem espaço em disco e fazem com que o blockchain aumente de tamanho, mas não são armazenadas no conjunto UTXO e, portanto, não inflacionam o pool de memória UTXO, nem aumentam o alto custo de memória do nó completo.
Embora OP_RETURN seja um meio muito direto de armazenar informações no blockchain do Bitcoin, ele também é um meio potencial de inscrição. No entanto, as limitações do OP_RETURN o fazem enfrentar alguns desafios ao lidar com armazenamento de metadados. Primeiro, o OP_RETURN pode armazenar apenas 80 bytes de dados, uma limitação que claramente não é atendida para casos em que grandes quantidades de dados precisam ser armazenadas. Segundo, os dados do OP_RETURN são armazenados na seção de saída da transação e, embora esses dados não sejam armazenados no conjunto UTXO, eles ocupam espaço de armazenamento no blockchain, levando a um aumento no tamanho do blockchain. Finalmente, o uso do OP_RETURN leva a um aumento nas taxas de transação, pois exige que mais taxas sejam pagas para postar essas transações.
Testemunha Segregada
Em contraste, o SegWit oferece uma nova abordagem que supera esses problemas. O SegWit é uma grande atualização de protocolo para o Bitcoin, proposta por Pieter Wuille, um desenvolvedor principal do Bitcoin, em 2015 e finalmente adotada formalmente na versão 0.16.0 em 2017. Segregado em Segregated Witness significa separado, isolado, e Witness é uma coisa assinada associada a uma transação. Assim, o SegWit é a separação de certos dados de assinatura de transação (dados de testemunha) da transação.
O principal benefício de separar a assinatura dos dados relacionados à transação é que isso reduz o tamanho dos dados armazenados em um bloco de bitcoin. Isso dá a cada bloco capacidade extra para armazenar mais transações e significa que a rede pode processar mais transações e o remetente paga taxas mais baixas. Tecnicamente falando, isso significa tirar as informações do scriptSig do bloco base e colocá-las em uma nova estrutura de dados. A atualização do Segwit introduz um novo campo de testemunha na saída da transação para garantir privacidade e desempenho. Embora os dados de testemunha não sejam projetados para armazenamento de dados, eles realmente nos dão uma oportunidade de armazenar conteúdo, como metadados de inscrição. Vamos entender o testemunho segregado mais graficamente com o diagrama a seguir:



Raiz principal
P2TR é um tipo de saída de transação do Bitcoin que foi introduzido na atualização do Taproot que ocorreu em 2021, o que permite que diferentes condições de transação sejam armazenadas no blockchain de uma maneira mais privada. O P2TR desempenha um papel crucial nas inscrições do Ordinals. As inscrições essencialmente incorporam conteúdo de dados específico em transações do Bitcoin, e a atualização do Taproot, e o P2TR em particular, tornam esses dados incorporados mais flexíveis e econômicos.
Primeiro, devido à maneira como os scripts Taproot são armazenados, podemos armazenar conteúdo de inscrição em scripts de gasto de caminho de script Taproot que são virtualmente ilimitados em termos de conteúdo, enquanto ainda recebemos um desconto em dados de testemunha, tornando relativamente econômico armazenar conteúdo de inscrição. Como os scripts Taproot só podem ser consumidos de saídas Taproot já existentes, as inscrições são enviadas/reveladas usando um processo de envio/revelação de dois estágios. Primeiro, na transação de envio, uma saída Taproot é criada que promete um script contendo o conteúdo da inscrição. Então, na transação de revelação, a saída criada pela transação de envio é consumida, revelando assim o conteúdo da inscrição na cadeia.
Essa abordagem reduz significativamente o consumo de recursos. Se P2TR não for usado, as informações testemunhas são armazenadas na saída da transação. Assim, enquanto essa saída não for consumida, as informações testemunhas permanecerão armazenadas no conjunto UTXO. Em contraste, se P2TR for usado, as informações testemunhas não aparecem nas transações geradas durante a fase de confirmação, então elas não são gravadas no conjunto UTXO. Somente quando esse UTXO é consumido as informações testemunhas aparecem na entrada da transação durante a fase de revelação. p2tr permite que metadados sejam gravados no blockchain do bitcoin, mas nunca aparecem no conjunto UTXO. Como manter/modificar o conjunto UTXO requer mais recursos, essa abordagem economiza muitos recursos.
Inscrições
O protocolo Ordinals aproveita o relaxamento do SegWit de restrições de tamanho na gravação de conteúdo de rede Bitcoin ao armazenar conteúdo de inscrição em dados testemunha. O Taproot torna mais fácil armazenar dados testemunha arbitrários em transações de bitcoin, permitindo que o desenvolvedor do Ordinals Casey Rodarmor reutilize opcodes antigos (OP_FALSE, OP_IF, OP_PUSH) para o que ele descreve como "envelopes" para armazenar dados arbitrários para o que são chamados de "inscrições".
O processo de fundição de uma inscrição consiste nas duas etapas seguintes:
Primeiro, é necessário criar uma saída Commit-to-Taproot do script contendo o conteúdo da inscrição na transação enviada. O formato armazenado é Taproot, ou seja, a saída da transação anterior é P2TR (Pay-To-Taproot) e a entrada da última transação, com um formato específico incorporado no script Taproot testemunhado; primeiro, a string ord é colocada na pilha para desambiguar a inscrição de ter outros usos. OP_PUSH 1 indica que o próximo push contém o tipo de conteúdo, e OP_PUSH 0 indica que os pushes de dados subsequentes contêm o próprio conteúdo. Inscrições grandes devem usar vários pushes de dados porque uma das poucas restrições do taproot é que os pushes de dados individuais não devem ser maiores que 520 bytes. Neste ponto, os dados para a inscrição já correspondem ao UTXO da saída da transação, mas não são tornados públicos.

A inscrição de texto contendo a sequência "Olá, mundo!" é serializada como acima Segundo, é necessário consumir essa saída criada ao enviar a transação na transação de revelação. Nesse estágio, a transação é iniciada tomando como entrada o UTXO correspondente àquela inscrição. Nesse ponto, o conteúdo de sua inscrição correspondente é divulgado para toda a rede.
Com as duas etapas descritas acima, o conteúdo da inscrição foi vinculado ao UTXO que está sendo inscrito. Novamente, de acordo com o posicionamento do satoshi descrito acima, a inscrição é feita no primeiro satoshi correspondente ao seu UTXO de entrada, e o conteúdo da inscrição é incluído na entrada que mostra a transação. De acordo com a introdução ao fluxo e rastreamento do satoshi descrito acima, este satoshi inscrito com conteúdo especial pode ser transferido, comprado, vendido, perdido e restaurado. Deve-se notar que as inscrições não podem ser repetidas, caso contrário, as inscrições posteriores são inválidas.
Ilustraremos esse processo em detalhes inscrevendo um exemplo de uma pequena imagem BTC NFT, que consiste nas duas fases principais mencionadas antes, commit e reveal. Primeiro, vemos que o Hash ID da primeira transação é 2ddf9...f585c. Pode-se notar que a saída dessa transação não contém dados de testemunha e não há inscrição relevante na página da web.

Em seguida, olhamos para o segundo estágio do registro, cujo Hash ID é e7454...7c0e1. Aqui podemos ver as informações da inscrição Ordinals, que é o conteúdo da inscrição testemunha. O endereço de entrada desta transação é o endereço de saída da anterior, enquanto a saída de 0,00000546BTC (546 Satoshi) envia este NFT para seu próprio endereço. Além disso, podemos encontrar o satoshi onde esta inscrição está localizada em Sat 1893640468329373.


Na carteira Bitcoin, podemos ver esse ativo. Se quisermos negociar esse NFT, podemos enviá-lo diretamente para o endereço de outra pessoa, o que significa enviar esse UTXO, que completa o fluxo de inscrições.

IV. Carteira Bitcoin
Depois de entendermos o que é Ordinals, o fluxo de Satoshi e o conhecimento sobre inscrições, há muitos cenários de aplicação que estão surgindo atualmente, seja 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 o conceito e as características de diferentes endereços de carteira bitcoin.
Endereços de Bitcoin começam com 1, 3 ou bc1. Assim como endereços de e-mail, eles podem ser compartilhados com outros usuários de Bitcoin que podem usá-los para enviar Bitcoins diretamente para suas carteiras. De uma perspectiva de segurança, um endereço de bitcoin não tem nenhum conteúdo sensível. Ele pode ser publicado em qualquer lugar sem comprometer a segurança da conta. Ao contrário de endereços de e-mail, podemos criar novos endereços sempre que necessário, todos os quais depositarão fundos diretamente em sua carteira. Na verdade, muitas carteiras modernas criam automaticamente um novo endereço para cada transação para privacidade máxima. Uma carteira é simplesmente uma coleção de endereços e as chaves para desbloquear os fundos neles. Primeiro, precisamos saber como os endereços das carteiras de Bitcoin são criados.
Chaves públicas e privadas do Bitcoin
O Bitcoin usa a curva elíptica Secp256k1, onde a "chave privada" é um número aleatório entre 1 e n-1, sendo n um número muito grande (256 bits) e n sendo expresso em notação científica como aproximadamente: 1,15792*10^77.
O intervalo é tão grande que é quase impossível adivinhar a chave privada de outra pessoa. Essa chave privada inteira aleatória pode ser representada por 256 bits e há muitas maneiras de codificá-la. Se a chave privada em WIF, formato compactado WIF não for criptografada, ela pode ser decodificada para obter o "inteiro aleatório" original. Outra maneira é o BIP38, que propõe criptografar a chave privada com o algoritmo AES. A chave privada obtida desse esquema começa com o caractere 6P, e essa chave privada deve ser inserida como uma senha para ser importada em várias carteiras de bitcoin, que é a chave privada que geralmente usamos.
Usaremos então a fórmula da curva elíptica K = kG para gerar a chave pública K do Bitcoin a partir da chave privada k. G é o Ponto Base, que é um parâmetro de secp256k1. As duas coordenadas de K são as duas expressões da chave pública, que são "Uncompressed format" e "Compressed format".

Descompactado, que é uma concatenação direta de duas coordenadas x e y, precedidas por um prefixo 0x04;
Forma comprimida, que é codificada como 02 x, quando y é par e 03 x quando y é ímpar;
Endereços Bitcoin
Os vários tipos de endereços de bitcoin podem ser mostrados no diagrama a seguir, com quatro representações:

Formato legado (P2PKH)
Exemplo: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
O endereço começa com "1" e é o formato de endereço original para Bitcoin, que ainda está em uso hoje. Também é conhecido como P2PKH, que significa Pay To PubKey Hash, e é obtido ao calcular a chave pública por meio de um hash.
Formato SegWit aninhado (P2SH)
Exemplo: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
P2SH aninhado, que pega um endereço P2SH existente (começando com "3") e o envolve com um endereço SegWit.
Formato SegWit nativo (Bech32)
Exemplo: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
Endereços começando com bc1 são propostos no BIP0173, e são endereços nativos de Testemunhas Isoladas. Endereços codificados bech32, um formato de endereço desenvolvido especificamente para SegWit. bech32 foi definido no BIP173 no final de 2017, e um dos principais recursos do formato Um dos principais recursos é que ele não diferencia maiúsculas de minúsculas (apenas 0-9, az, são incluídos no endereço), tornando-o eficaz para evitar confusão e mais legível quando inserido. Como menos caracteres são necessários no endereço, o endereço é codificado usando Base32 em vez do tradicional Base58, tornando a computação mais fácil e eficiente. Os dados podem ser armazenados de forma mais compacta no código QR. bech32 fornece maior segurança, melhor otimização de códigos de verificação de soma e detecção de erros e minimiza a chance de endereços inválidos.
Os endereços Bech32 em si são compatíveis com SegWit. Nenhum espaço extra é necessário para colocar endereços SegWit em endereços P2SH, então as taxas são menores com endereços no formato Bech32. Os endereços Bech32 têm várias vantagens sobre os endereços Base58 mais antigos (a codificação Base58Check é usada para codificar matrizes de bytes em Bitcoin em strings codificáveis por humanos): códigos QR menores; melhor proteção contra erros; mais seguro; não diferencia maiúsculas de minúsculas; e consiste apenas em letras minúsculas, então é mais fácil de ler, digitar e entender.
Formato Taproot (P2TR)
Bech32 tem uma desvantagem: se o último caractere do endereço for p, inserir ou excluir qualquer número de caracteres q imediatamente antes de p não invalidará sua soma de verificação.
Para aliviar essa desvantagem do Bech32, o endereço Bech32m é proposto no BIP0350:
Para um endereço de testemunha nativa isolada da versão 0, use o Bech32 anterior;
Para um endereço de testemunha nativo isolado da versão 1 (ou superior), o novo Bech32m é usado.
Para endereços Bech32m, eles sempre começam com bc1p (ou seja, endereço Taproot) quando a versão 1 é usada. Especificamente, como uma testemunha isolada local, uma carteira pode consistir em uma frase semente e uma frase criptográfica. Elas são usadas para gerar chaves públicas e privadas estendidas que são usadas para derivar endereços de caminho arbitrários em uma carteira determinística hierárquica. O objetivo principal é armazenar BRC-20, bem como NFTs para BTC, etc.
V. Sobre nós
Spectrum Labs é uma equipe de Mestres e Doutores focada em pesquisa de blockchain, bem como veteranos na indústria de blockchain. Nós nos dedicamos à tecnologia de cadeia de pesquisa de blockchain e suas aplicações para ajudar as pessoas a entender melhor o blockchain. As principais atividades do Spectrum Labs incluem a escrita de relatórios de pesquisa, desenvolvimento de currículo e desenvolvimento de ferramentas.
A comunidade chinesa BTC NFT (中文社区) é uma plataforma de comunicação chinesa BTC NFT para recém-chegados à comunidade chinesa global.
