Referência do desenvolvedor
Esta é a camada de referência: os tipos de mensagem P2P, os opcodes de script, os nomes de campos RPC e as estruturas de protocolo que você encontra ao ler código de bitcoin ou decodificar uma transação bruta, e não ao comprar alguma coisa.
Ela existe porque o glossário de desenvolvedores do Bitcoin Core, onde a maioria desses termos ainda é consultada, mudou pouco desde 2021, e várias de suas entradas não descrevem mais o software. O protocolo de pagamento BIP70 que ele documenta foi excluído do Bitcoin Core na versão 0.20.0. Suas entradas sobre filtros de Bloom descrevem um mecanismo que o Core deixou de servir por padrão na versão 0.19.0. Cada uma delas foi reconstruída aqui com base no que o código faz hoje, com a correção declarada, e não aplicada em silêncio.
Os termos se dividem em grupos. Tipos de mensagem como inv, getdata e MSG_FILTERED_WITNESS_BLOCK pertencem ao protocolo ponto a ponto. Opcodes como OP_RETURN e OP_CHECKSIG pertencem ao Script. Sinalizadores de hash de assinatura, números de sequência e locktime governam aquilo com que uma assinatura realmente se compromete. As entradas X509 e de solicitação de pagamento são históricas, e dizem isso.
A maioria dos leitores nunca vai precisar desta seção, e tudo bem. Ela está aqui para que uma busca por um nome de campo exato chegue a uma página que o explica com precisão, e não a um verbete de uma linha.
47 termos. Última revisão: 24 de setembro de 2026.
Termos em Referência do desenvolvedor
- Assinatura SSLAssinatura SSL é o nome que o BIP70 deu aos bytes que assinam uma mensagem PaymentRequest com a chave do certificado de um servidor web, e o rótulo já era impróprio quando foi escrito.
- Bitcoin Scripttambém ScriptO Bitcoin Script é a pequena linguagem baseada em pilha que cada saída de bitcoin carrega, definindo as condições que alguém deve satisfazer antes que esses bitcoins possam ser gastos novamente.
- Cadeia de certificadosUma cadeia de certificados é a lista ordenada de certificados que conecta o que um servidor apresenta a um certificado raiz em que seu dispositivo já confia, com cada elo assinado pelo seguinte.
- Certificado de folhaO certificado de folha é o certificado de entidade final apresentado pelo servidor ao qual você realmente se conectou, e prova o controle de um nome de domínio, nada sobre as pessoas por trás dele.
- Certificado intermediárioUm certificado intermediário fica entre um certificado raiz e um certificado de folha, é assinado pelo raiz e assina o de folha, de modo que a chave privada do raiz pode permanecer off-line e sem uso.
- Certificado raizUm certificado raiz é a âncora de confiança autoassinada no topo de uma cadeia de certificados, e só é considerado confiável porque o fornecedor do seu sistema operacional ou do seu navegador o colocou ali.
- Certificado X.509também Certificados X.509Um certificado X.509 é um arquivo assinado que vincula uma chave pública a um nome e a um período de validade, e é o formato por trás de toda conexão HTTPS que você faz com uma corretora.
- Código QR de URIUm código QR de URI é o padrão quadrado em preto e branco que codifica um URI bitcoin:, para que uma câmera leia o endereço e o valor que, de outro modo, seriam digitados.
- CompactSizetambém Compact size unsigned integer ou VarIntCompactSize é o inteiro de tamanho variável que o bitcoin usa para prefixar contagens e comprimentos em dados serializados, custando um byte para valores abaixo de 253 e até nove para o restante.
- Dados de comerciante do PPOs dados de comerciante do PP eram uma cadeia de bytes opaca que um comerciante BIP70 colocava em uma solicitação de pagamento e recebia de volta sem alteração, para que os bitcoins recebidos pudessem ser associados a um pedido.
- EtiquetaA etiqueta em um URI de Bitcoin nomeia a pessoa ou a empresa que recebe o pagamento, e em uma carteira é a nota privada que você anexa a um endereço ou a uma transação.
- Função de pontoA função de ponto transforma uma chave privada em chave pública multiplicando o ponto gerador da secp256k1 por esse número, e é o passo unidirecional sobre o qual todo endereço de bitcoin é construído.
- Memo PPO memo PP era a nota de texto livre em UTF-8 que o BIP70 permitia que um comerciante, um pagador ou um servidor que confirmava o recebimento anexasse a um pagamento para uma pessoa ler.
- MSG_BLOCKMSG_BLOCK é o tipo de inventário 2, o código que um nó coloca em uma mensagem getdata para pedir a um par um bloco completo pelo seu hash.
- MSG_CMPCT_BLOCKMSG_CMPCT_BLOCK, tipo de inventário 4, é um código exclusivo de solicitações: nunca aparece em um anúncio e só é válido dentro de uma mensagem getdata enviada a um par que o aceitou antes.
- MSG_FILTERED_WITNESS_BLOCKO tipo de bloco com testemunha filtrado está na lista de tipos reservados do BIP144 e no enum do código-fonte do Bitcoin Core, sem nenhuma implementação por trás em nenhum dos dois lugares.
- MSG_TXO MSG_TX marca uma entrada de inventário como transação, com o código de tipo 1, e é assim que seu pagamento não confirmado é anunciado aos pares antes que qualquer um deles tenha visto seu conteúdo.
- MSG_WITNESS_BLOCKO tipo de inventário de bloco com testemunha é como um nó compatível com segwit pede um bloco na serialização estendida, com todas as assinaturas anexadas em vez de removidas.
- MSG_WITNESS_TXUma solicitação de transação com testemunha, enviada como getdata, diz a um par que devolva a transação indicada com seus dados de assinatura ainda anexados, em vez de removidos.
- OP_CHECKMULTISIGO OP_CHECKMULTISIG verifica um grupo de assinaturas em relação a uma lista de chaves públicas em uma única etapa, e os gastos Taproot não podem usá-lo de forma alguma, porque ele impede a verificação em lote.
- OP_CHECKSIGOP_CHECKSIG retira da pilha uma chave pública e uma assinatura e verifica que a assinatura se compromete com esta transação, que é a checagem que de fato prova que você é dono dos bitcoins.
- OP_DUPOP_DUP copia o item do topo da pilha para que ele possa ser usado duas vezes, e é por isso que o script padrão pay-to-public-key-hash consegue tanto calcular o hash da sua chave pública quanto verificar contra ela.
- OP_EQUALO OP_EQUAL compara byte a byte os dois itens do topo da pilha e insere um resultado verdadeiro ou falso, e é o último opcode de toda saída pay-to-script-hash.
- OP_EQUALVERIFYOP_EQUALVERIFY compara os dois itens do topo da pilha e encerra o script imediatamente se eles forem diferentes, e é assim que um gasto legado prova que apresentou a chave pública correta.
- OP_HASH160OP_HASH160 aplica SHA-256 sobre o item do topo da pilha e depois RIPEMD-160 sobre esse resultado, deixando um resumo de 20 bytes, a mesma impressão digital presente em todo endereço que começa com 1 ou 3.
- OP_RETURNOP_RETURN é o opcode que torna uma saída de transação comprovadamente impossível de gastar, o que permite gravar uma pequena quantidade de dados arbitrários na blockchain sem inflar o conjunto de saídas ainda gastáveis.
- OP_VERIFYOP_VERIFY desempilha o item do topo da pilha e aborta todo o script, a menos que esse item seja verdadeiro, o que transforma qualquer teste no Bitcoin Script em um requisito obrigatório.
- Opcodetambém Opcode de envio de dados ou Opcode que não envia dadosUm opcode é um único byte do Bitcoin Script que diz a um nó validador o que fazer em seguida, seja empilhando dados seja realizando uma operação sobre o que já está na pilha.
- Ordem de bytes internaA ordem de bytes interna é o formato que o bitcoin usa dentro de estruturas serializadas: os inteiros são escritos com o byte menos significativo primeiro, e os resumos de hash seguem a ordem em que o SHA-256 os produziu.
- Ordem de bytes RPCA ordem de bytes RPC é a forma invertida como o software de bitcoin exibe hashes de 32 bytes, e é a forma de todo ID de transação que você copia de uma carteira ou de um explorador de blocos.
- Parâmetro rO parâmetro r é o acréscimo do BIP72 a um URI de bitcoin que substitui o endereço de pagamento por uma URL da qual se espera que sua carteira obtenha uma solicitação assinada.
- PaymentDetailsPaymentDetails é a mensagem interna do BIP70 que de fato descrevia um pagamento: quais saídas pagar, quanto, quando a solicitação expira e para onde enviar a transação assinada.
- PaymentRequestO PaymentRequest é o envelope externo do BIP70: ele envolve um bloco de bytes com o PaymentDetails serializado, junto com uma cadeia de certificados e uma assinatura, para que o pagador pudesse verificar quem estava pedindo.
- PKItambém Infraestrutura de chave públicaA PKI, ou infraestrutura de chave pública, é o sistema de autoridades de certificação, certificados e repositórios de confiança que permite ao software decidir se uma chave pública pertence de fato ao nome associado a ela.
- PP expiresPP expires era o carimbo de data e hora Unix opcional na mensagem PaymentDetails do BIP70 que dizia à carteira para deixar de aceitar a solicitação depois que aquele momento passasse.
- PP pki dataPP pki data era o campo de uma solicitação de pagamento BIP70 que carregava os certificados do comerciante, codificados em DER, com o certificado folha primeiro, os intermediários atrás dele e a raiz omitida.
- PP pki typePP pki type era a string de uma só palavra em uma solicitação de pagamento BIP70 que dizia como o comerciante a havia assinado: none, x509 com SHA-256 ou x509 com SHA-1.
- Protocolo de pagamento (BIP70)também Protocolo de pagamento ou BIP70O protocolo de pagamento (BIP70) foi a tentativa do bitcoin de substituir endereços simples por solicitações de pagamento assinadas e respaldadas por certificados, e o Bitcoin Core removeu o último resquício de suporte a ele na versão 0.20.0.
- ReciboUm recibo em bitcoin é qualquer prova que você guarde de que um pagamento aconteceu: no BIP70 era uma confirmação assinada pelo comerciante e, na prática, é o ID da transação.
- Script de assinaturatambém Script de desbloqueio, scriptSig ou Unlocking scriptUm script de assinatura é o dado de desbloqueio que uma entrada carrega para satisfazer o script de chave pública da saída que ela gasta, e nas entradas SegWit modernas ele fica vazio.
- Script de chave públicatambém Pubkey script, scriptPubKey ou Locking scriptO script de chave pública é o pequeno trecho de Bitcoin Script anexado a cada saída de transação, que declara as condições que devem ser atendidas antes que os bitcoins dessa saída possam se mover novamente.
- Script de resgatetambém Redeem scriptUm script de resgate é o contrato de gasto completo oculto atrás de uma saída pay-to-script-hash, fornecido por quem gasta no fim do script de assinatura e cujo hash é calculado para verificar se coincide.
- Script de testemunhaO script de testemunha contém as condições reais de gasto de uma saída P2WSH e viaja na testemunha, onde seus bytes são contados a um quarto do custo habitual.
- Script PPO script PP era o campo obrigatório em uma saída do BIP70 que continha o script de bloqueio em bruto que o pagador tinha de reproduzir, os mesmos bytes que acabam em uma saída de transação.
- Soma de verificação do descritorA soma de verificação do descritor é o código de oito caracteres depois da cerquilha em um descritor de saída, um código BCH que detecta erros de digitação e de cópia antes que uma carteira importe as chaves erradas.
- URI de Bitcointambém BIP21Um URI de Bitcoin reúne os detalhes de um pagamento em uma única cadeia de caracteres clicável que começa com bitcoin: e pode conter um endereço, um valor e um rótulo.
- Valor PPO valor PP era o campo em satoshis dentro de uma saída do BIP70, definido como zero quando o comerciante queria que o pagador escolhesse quanto enviar.
As outras 13 seções
- Conceitos básicosO que é o bitcoin, o que é um satoshi e o punhado de ideias sobre as quais o resto do glossário se apoia.
- Endereços e chavesPara onde os bitcoins são enviados, o que uma chave privada realmente controla e como uma só frase de recuperação produz milhares de endereços.
- Carteiras e custódiaQuente, fria, custodial e multisig, e o que cada uma muda sobre quem pode mover seus bitcoins.
- Privacidade e segurançaOs ataques que tomam o bitcoin das pessoas, e os hábitos e as ferramentas que os impedem.
- Transações e taxasDo que é feita uma transação de bitcoin, por que ela custa o que custa e como destravar uma.
- Compra e corretorasTipos de ordem, spreads e tabelas de taxas: o vocabulário que uma corretora usa enquanto cobra de você.
- Mercados e investimentosCapitalização de mercado, volatilidade e ETFs à vista. A linguagem do preço, sem previsões de preço.
- Mineração e consensoComo os novos blocos são criados, o que a dificuldade ajusta e por que as regras se mantêm sem ninguém no comando.
- Protocolo e atualizaçõesSegWit, Taproot, bifurcações brandas (soft forks) e BIPs: como o bitcoin muda e quem decide.
- Lightning e camada 2Canais de pagamento, faturas e roteamento, para mover bitcoin sem pagar por espaço em um bloco.
- Regulamentação e impostosKYC, a Travel Rule, o MiCA e o ganho de capital: as regras que chegam à sua conta e à sua declaração de imposto de renda.
- Cultura e históriaMt. Gox, o bloco gênese, HODL e os eventos e a gíria que moldaram o jeito de falar sobre bitcoin.
- Nós e softwareBitcoin Core, nós completos, poda e RPC: o software que faz as regras valerem.
Perguntas frequentes
Para quem é esta seção?
Para quem lê o código-fonte do bitcoin, decodifica uma transação bruta ou trabalha com o protocolo P2P e a interface RPC. É a camada de referência, e não a de compra, e nada dela é necessário para ter ou gastar bitcoin.
O que é o Bitcoin Script?
A pequena linguagem baseada em pilha que decide se um bitcoin pode ser gasto. Não tem laços, de propósito, o que torna previsível o custo de cada script antes de ele rodar. A maioria das transações usa um de um punhado de padrões.
Por que a ordem dos bytes não para de mudar?
Porque o bitcoin exibe os hashes na ordem oposta àquela em que os armazena. A ordem interna dos bytes é a que o protocolo usa, enquanto a saída do RPC e os exploradores de blocos a invertem. Misturar as duas é o clássico primeiro bug.
Onde fica a documentação de referência?
No código-fonte e nos BIPs, e não em um site só. As entradas aqui citam a especificação quando ela existe e corrigem a documentação mais antiga para desenvolvedores onde ela ficou desatualizada, em vez de repeti-la.