Bitcoin do Zero: Desvendando a Arquitetura por Trás das Transações e Endereços

Bitcoin do Zero: Desvendando a Arquitetura por Trás das Transações e Endereços

Explore a arquitetura fundamental do Bitcoin, desde o modelo UTXO e a mecânica das transações até os diferentes tipos de endereços e a evolução dos protocolos. Entenda como as taxas são formadas e por que as transações não são instantâneas.

MundiX News·26 de junho de 2026·3 min de leitura·👁 1 views

Neste artigo, examinaremos o Bitcoin como um sistema técnico, investigando a estrutura de suas transações, o que está por trás da misteriosa sigla UTXO, por que existem diferentes tipos de endereços, de onde vêm as taxas e quais decisões arquitetônicas ainda geram debates acirrados entre os usuários.

O dinheiro sempre foi emitido, contabilizado e controlado por alguém: um estado, um banco ou um sistema de pagamento. Isso foi assim até 2008, quando surgiu o Bitcoin, que pode ser considerado não apenas a criptomoeda mais popular do planeta, mas também um ousado experimento de engenharia que sobreviveu a inúmeras crises, proibições, hacks de exchanges e 'enterros' na imprensa. O Bitcoin é tradicionalmente considerado uma espécie de padrão ouro no mundo das criptomoedas modernas – todos os outros projetos que surgiram posteriormente se orientaram, em maior ou menor grau, a ele.

Ao mesmo tempo, existem muitos equívocos em torno do Bitcoin. Muitos o imaginam como uma espécie de 'moeda' virtual ou um conjunto de contas semelhantes às bancárias, mas, na verdade, sua estrutura é muito mais interessante. Para entender mais profundamente os princípios de funcionamento das criptomoedas em geral, vamos olhar para o Bitcoin como uma construção de engenharia complexa, mas fascinante.

Transações: Entradas e Saídas (UTXO)

Se você não vive em alguma ilha deserta no meio do Oceano Pacífico, você usa constantemente aplicativos bancários e sabe perfeitamente como eles funcionam: você se autentica no programa e vê o saldo de todas as suas contas e cartões ativos na tela do seu smartphone. Se necessário, você transfere parte do dinheiro para outra pessoa pelo número de telefone ou dados do cartão, ou paga por algum serviço, ou talvez por um produto comprado. Isso é chamado de 'modelo de saldo', e é nele que a maioria dos sistemas de pagamento bancário é construída: o banco armazena informações sobre quanto dinheiro está em cada conta, e uma transferência se resume a alterar dois números no banco de dados – a soma do remetente diminui, a do destinatário aumenta.

Uma carteira de criptomoeda, do ponto de vista do usuário, funciona de forma praticamente semelhante, mas com uma nuance técnica importante. Embora as carteiras também exibam o saldo familiar, a rede em si não armazena saldos. Não há um registro no blockchain do tipo 'Maria tem 3 BTC, Vasya tem 1 BTC'; em vez disso, o sistema opera com transações e seus resultados. Cada transferência recebida cria um novo fragmento de valor que pode ser posteriormente utilizado em outra transação.

Essa abordagem é baseada no modelo UTXO (Unspent Transaction Output) – saídas de transação não gastas. À primeira vista, isso parece um detalhe técnico insignificante, mas é nele que toda a economia do Bitcoin é construída, e é isso que o diferencia dos sistemas de pagamento tradicionais. Quando uma carteira exibe o saldo para o usuário, ela, na verdade, o calcula independentemente a cada vez, somando todos os UTXOs que o proprietário pode dispor naquele momento.

Cada transação no Bitcoin consiste em duas partes principais: entradas (inputs) e saídas (outputs). As entradas indicam quais UTXOs criados anteriormente serão gastos, e as saídas indicam a quem os novos UTXOs pertencerão após a conclusão da transferência. Suponha que alguém recebeu duas transferências: 0,3 BTC e 0,7 BTC. No blockchain, estes serão dois UTXOs independentes. Se o usuário então quiser enviar 0,8 BTC para alguém, a carteira terá que usar ambas essas saídas como entradas para a nova transação. Após isso, os UTXOs antigos serão considerados gastos e não poderão mais ser usados como entradas para novas transações, e em seu lugar surgirão novos.

Aqui surge uma característica importante. Uma transação deve gastar as entradas integralmente, ou melhor, os UTXOs incluídos nas entradas são gastos completamente. Se UTXOs com um valor total de 1 BTC são fornecidos como entrada, e outro usuário da rede precisa enviar apenas 0,8 BTC, o valor restante não pode simplesmente ser deixado 'na entrada'. Portanto, geralmente é criada uma saída adicional que retorna o saldo ao remetente. Isso é chamado de 'change output' – saída com troco. Como resultado, uma transação típica na rede Bitcoin não se parece com uma simples transferência de dinheiro de um usuário para outro, mas sim com uma operação de destruição de UTXOs antigos e criação de novos. É por isso que é impossível encontrar o saldo de qualquer endereço no blockchain em formato pronto: ele precisa ser calculado a cada vez a partir da totalidade das saídas ainda não gastas.

Essa tecnologia pode ser explicada de forma ilustrativa com um exemplo simples: digamos que alguém lhe pagou pelo trabalho com uma nota de 1000 rublos, e você precisa pagar uma dívida de 700 rublos a outra pessoa. Você não pode simplesmente arrancar um pedaço da nota de mil; em vez disso, você entrega a nota inteira ao credor e pede 300 rublos de troco. Assim, duas novas transações são formadas para você: 700 (dívida) e 300 (troco, change output), e esses 300 rublos voltam para você e podem ser usados na próxima transação. Ou seja, o troco se torna um novo UTXO pertencente ao remetente dos 1000 rublos, e este UTXO pode ser usado em futuras operações monetárias.

Claro, as transações reais na rede Bitcoin são frequentemente mais complexas do que nosso exemplo. Uma transação pode usar várias entradas e criar várias saídas para diferentes destinatários. No entanto, o princípio básico permanece o mesmo: UTXOs antigos são gastos inteiramente, e em troca surgem novos. Além disso, no exemplo da nota de mil rublos, não consideramos outro elemento importante de qualquer transação – a taxa de rede.

Na prática, a soma de todas as saídas é geralmente um pouco menor que a soma das entradas, e a diferença entre elas forma a taxa de transferência. Usuários de sistemas bancários estão acostumados a perceber a taxa como um pagamento discreto que o usuário envia diretamente ao banco ou sistema de pagamento pela execução da transação. No Bitcoin, a mecânica é um pouco diferente.

Quando você forma uma transação, você não especifica a taxa como um campo separado ou uma saída separada para o minerador. Você simplesmente cria uma soma na saída um pouco menor que a soma da entrada, e a diferença entre as entradas e saídas não é explicitamente registrada em lugar nenhum como 'taxa'. O minerador, ao montar o bloco, calcula essas diferenças 'não reivindicadas' de todas as transações e as apropria através de uma transação especial chamada coinbase. Em outras palavras, a taxa é uma propriedade emergente que surge da diferença de somas, e não um pagamento direcionado de um valor específico.

Sem dúvida, você pode solicitar que todo o troco seja devolvido até o último centavo, então a diferença entre as entradas e saídas será zero. Esta é uma transação absolutamente legal do ponto de vista do protocolo. Mas, neste caso, os nós da rede (nodes) podem se recusar a aceitá-la no mempool (fila de transações não confirmadas). A maioria das implementações de blockchain tem uma configuração de taxa mínima de retransmissão (relay fee) – por padrão, transações com taxa zero ou extremamente baixa por byte não serão reencaminhadas pela rede por muitos nós. Além disso, os mineradores não são obrigados a incluir tal transação em um bloco. O minerador escolhe quais transações do mempool colocar no bloco, e geralmente faz isso com base na taxa por byte (sat/vByte). Uma transação com taxa zero é desvantajosa e, com blocos cheios, será substituída por transações mais 'lucrativas'. Em última análise, tal transação pode ficar presa no mempool por muito tempo – às vezes dias, semanas ou nem mesmo entrar em um bloco, se for simplesmente removida do mempool por timeout.

Veja como, por exemplo, uma transação pode parecer no blockchain do Bitcoin: recebemos duas transferências de entrada nos valores de 0,3 e 0,7 BTC, transferimos 0,8 BTC para outro usuário, recebemos 0,1998 BTC de troco e pagamos 0,0002 BTC de taxa por toda essa história. Na verdade, recebemos 1 BTC e gastamos 1 BTC, e ao mesmo tempo, temos um saldo não gasto de 0,1998 BTC, que pode ser gasto na próxima vez.

Entradas: 0,3 BTC (UTXO #1) 0,7 BTC (UTXO #2)

Saídas: 0,8 BTC -> destinatário 0,1998 BTC -> troco para o remetente

Taxa: 0,0002 BTC

De onde a rede sabe quais moedas podem ser gastas?

Como você já entendeu, a entrada de uma transação não contém as moedas em si e nem mesmo armazena informações completas sobre a transferência anterior. Ela apenas se refere a uma saída específica de uma transação anterior que deve ser gasta. Essa referência consiste no identificador da transação anterior (txid) e no número da saída dentro dela (vout). Aqui surge a questão principal: de onde a rede sabe que a pessoa que está criando uma nova transação tem o direito de gastar essa saída?

A resposta está na própria estrutura do UTXO. Cada saída de transação é criada não apenas com um valor, mas com uma condição de gasto específica. No caso mais simples, essa condição é: 'esta saída só pode ser gasta por quem apresentar uma assinatura digital correspondente a uma chave pública específica'.

Quando o proprietário dos fundos cria uma nova transação, ele não apenas especifica uma referência a uma saída antiga. Ele adiciona dados que permitem verificar o cumprimento dessa condição: uma assinatura digital criada com sua própria chave privada. Isso resulta em um par peculiar: a saída anterior contém a regra, e a nova entrada contém a prova de que essa regra foi cumprida. Um script de bloqueio especial (locking script, também chamado de scriptPubKey) é responsável por isso – um fragmento de código na saída (output) da transação que define as condições sob as quais esses fundos podem ser gastos. Se as condições não forem cumpridas, os fundos permanecem inacessíveis.

Se a assinatura estiver correta, a rede aceita essa entrada e considera a saída gasta. Se a assinatura não corresponder ou a saída especificada já tiver sido usada anteriormente, a transação será rejeitada. É importante entender: a própria referência ao UTXO não dá o direito de dispor dos fundos. Ela apenas indica qual saída específica o usuário está tentando gastar. O direito de gasto é confirmado apenas por uma assinatura digital correta, que nas transações clássicas é armazenada em um campo especial scriptSig, e nas transações SegWit (uma atualização do protocolo Bitcoin introduzida em agosto de 2017) é movida para uma estrutura separada witness.

Em termos simples, cada entrada diz à rede: 'Eu quero usar esta saída específica, criada por esta transação'. Os nós da rede encontram o registro especificado no blockchain, verificam se essa saída realmente existe e ainda não foi gasta anteriormente, e então verificam se o remetente tem o direito de dispor dela.

É precisamente por isso que no Bitcoin, na verdade, não são as moedas em si que são transferidas, mas o direito de gastar uma saída criada anteriormente. Uma nova transação fecha obrigações antigas e cria novas – para os próximos proprietários. Ao mesmo tempo, existem várias opções de condições sob as quais uma saída pode ser gasta, e elas são determinadas pelo endereço do destinatário de cada saída específica, ou melhor, pelo tipo de endereço para o qual os fundos foram enviados.

Endereço no Bitcoin

Um endereço na rede Bitcoin não é um número de conta familiar, mas uma forma conveniente de transmitir as condições sob as quais uma saída criada poderá ser gasta. Diferentes formatos de endereço, na verdade, definem diferentes tipos de tais condições. Quando você inicia um programa em seu smartphone ou computador que gerencia sua carteira de criptomoeda, você vê seu saldo atual e um ou mais endereços para os quais pode receber transferências. Visualmente, isso realmente se assemelha a uma conta bancária – basta passar este endereço, que é uma string de caracteres, para outra pessoa, e ela poderá enviar fundos para você.

No entanto, dentro da rede, um endereço não é um identificador de conta onde as moedas estão, nem um registro no banco de dados do tipo 'este endereço pertence a tantos bitcoins' (tais registros não existem no blockchain). Como mencionei anteriormente, quando um usuário envia bitcoins para alguém, não é o endereço do destinatário que vai para o blockchain, mas a saída da transação (output) com um cenário de verificação específico. Em vez de transferir um longo conjunto de dados técnicos uns para os outros, o usuário envia uma string curta de um formato específico. A carteira a converte em um cenário de bloqueio correspondente chamado locking script, que é então gravado na transação. São os endereços que correspondem a diferentes tipos de cenários de gasto de fundos.

Endereços Legacy: o primeiro formato de massa

Os endereços mais antigos e ainda reconhecíveis são os do formato Legacy. Eles começam com o dígito 1. Aqui está, por exemplo, o endereço do primeiro bloco do Bitcoin, o chamado 'endereço de gênese', contendo a recompensa do bloco criado pelo próprio Satoshi Nakamoto: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Em nível técnico, tais endereços correspondem ao esquema P2PKH (Pay-to-Public-Key-Hash). Ao criar um pagamento, os fundos são bloqueados com a condição: somente quem apresentar uma assinatura digital correspondente à chave pública especificada poderá gastá-los.

O esquema funciona da seguinte forma: a partir da chave pública, através de operações criptográficas, obtém-se um hash, esse hash é codificado em um formato conveniente para o usuário e se torna o endereço. Quando outra pessoa envia bitcoins para este endereço, ela, na verdade, cria um UTXO associado a esse hash. Ao gastar posteriormente, o destinatário fornece a chave pública e a assinatura. A rede verifica se a chave pública corresponde ao endereço e se a assinatura foi realmente criada pelo proprietário da chave privada.

A desvantagem dos endereços Legacy é que eles usam o formato de transação antigo, onde assinaturas semelhantes ocupam um espaço considerável dentro da própria transação. Isso aumenta o tamanho das transferências e, consequentemente, as taxas em caso de alta carga na rede.

SegWit: endereços de nova geração

Em 2017, uma grande atualização do protocolo, Segregated Witness (SegWit), foi ativada na rede Bitcoin. Um de seus objetivos era alterar a estrutura das transações: os dados de assinatura foram separados da parte principal da transação e movidos para uma área especial witness.

Para os usuários, isso se manifestou, entre outras coisas, na forma de um novo formato de endereço, começando com bc1: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kygt080

Esses endereços geralmente correspondem aos esquemas P2WPKH (Pay-to-Witness-Public-Key-Hash). Eles permitem reduzir o tamanho das transações em comparação com o Legacy e, assim, diminuir as taxas. Ao mesmo tempo, a lógica de verificação do direito de gastar UTXO não mudou fundamentalmente. O que mudou foi o local onde os dados de verificação são armazenados e como eles são considerados ao calcular o tamanho da transação.

Quando alguém envia bitcoins para um endereço bc1q..., não é o endereço em si que vai para o blockchain, mas uma saída de transação com uma condição aproximadamente da seguinte forma: 'Este UTXO só pode ser gasto por quem apresentar a chave pública cujo hash é igual ao valor especificado, e uma assinatura correta criada com a chave privada correspondente'.

Continuação disponível apenas para membros

Materiais das últimas edições tornam-se disponíveis individualmente apenas dois meses após a publicação. Para continuar a leitura, é necessário tornar-se membro da comunidade 'Xakep.ru'.

Junte-se à comunidade 'Xakep.ru'!

O status de membro da comunidade durante o período especificado lhe dará acesso a TODO o material da 'Xakep', permitirá baixar edições em PDF, desativará a publicidade no site e aumentará seu desconto pessoal acumulado!

Saiba mais

Já sou membro da 'Xakep.ru'

← Anterior

Vazamento FortiBleed afetou 86.000 dispositivos Fortinet

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.