NamePrice24H (%)
Bitcoin (BTC)
$5,303.00
0.54%
Ethereum (ETH)
$172.45
-0.10%
Bitcoin Gold (BTG)
$17.20
-0.53%
XRP (XRP)
$0.327035
-1.17%
EOS (EOS)
$5.42
-0.46%
[Tutorial] Como realmente funciona uma transação Bitcoin.

Bitcoin, Tutoriais

[Tutorial] Como realmente funciona uma transação Bitcoin.

Este artigo explica o que é uma transação Bitcoin, sua proposta e resultado. A explicação a seguir é adequada para ambos usuários novatos e intermediários.

Como um usuário de cripto dinheiro, você precisa se familiarizar com os fundamentos das transações – o que serve para ganhar mais confiança nessa tecnologia inovadora que vem evoluindo, e também como fundamento para entender as emergentes transações de múltiplas assinaturas (multi-signature) e os contratos, os quais serão explorados mais tarde em outros artigos.

A explicação vai focar no que você precisa saber sobre as trasações padrão de bitcoin. Mesmo os desenvolvedores do núcleo Bitcoin (Core developers) reconhecem que parte da linguagem usada para descrever as transações e seus componentes podem levar alguém a um conceito errado do que realmente acontece quando uma transação é efetuada. Este artigo tentará evitar esses equívocos com a ajuda de alguns diagramas e uma linguagem bem simples.

Definição de termos e abreviações

Bitcoin: com “B” maiúsculo refere-se ao protocolo – o código, os nós, a rede e sua interação peer-to-peer.
bitcoin: com “b” minúsculo é a moeda mesmo, 1 BTC = 1 bitcoin, 2 BTC = dois bitcoins…
tx: abreviação de “transação de bitcoin”.
txid: abreviação do “identificador da transação” – é um código hash que é usado por seres humanos e pelo protocolo de referência de transação.
Script: é o nome do sistema de “scripting” do protocolo Bitcoin que processa e valida transações. O Script é um motor de instruções “stack-based” que faz possível todas as transações, de simples pagamentos até contratos mais complexos, acontecerem.
UTXO: é uma abreviação para Unspent Transaction Output (saída de transações não gastas), também referida como “saída”.
satoshi: 1 BTC = 100.000.000 satoshi ou BTC 0.00000001 = 1 satoshi.

O quê é uma transação Bitcoin? E qual é o seu propósito?

Definição
Uma transação Bitcoin é um segmento assinado de dados que é transmitido pela rede e, se for devidamente validado, passa a fazer parte de um bloco dessa cadeia de blocos que é a blockchain.

Propósito
A função de uma transação Bitcoin é a de transferir a posse de uma determinada quantia de bitcoins para um outro endereço Bitcoin.

Resultado
Quando você envia os bitcoins, uma única estrutura de dados, ou seja uma transação Bitcoin, é criada pela sua carteira cliente e então difundida pela rede. Os nós de bitcoins na rede vão então transmitir e re-transmitir a transação, e se a transação for válida, os nós vão incluí-las nos blocos que estão sendo minerados no momento. Geralmente, dentro de 10-20 minutos, a transação será incluída, junto com outras transações, em um bloco da blockchain. Até esse ponto, os receptores são capazes de ver o valor da transação em suas carteiras.

Exemplo
Aqui um exemplo de uma transação que foi incluida na blockchain no começo desse ano:

Bitcoin_tx_example

Exemplo de uma Transação Bitcoin

Os principais componentes dessas transações padrão estão marcados em cores:

– Transaction ID (destacado em amarelo)
– Descritores de meta-dados (chave em azul ao lado)
– Entradas (área cor-de-rosa? “in” -> “prev_out” e “scriptSig”)
– Saídas (área em verde)

Entradas e Saídas na Transação Bitcoin

Primeiramente, quatro verdades evidentes sobre transações:
– Qualquer quantia de bitcoin que mandamos é sempre mandada para um endereço.
– Qualquer quantia que recebemos fica bloqueada ao endereço receptor – que é geralmente associado com nossa carteira.
– Em qualquer momento que gastamos Bitcoin, a quantia que gastamos será sempre vinda de fundos previamente recebidos e atualmente presente em nossas carteiras.
– Endereços recebem bitcoins, mas eles não mandam bitcoins – os bitcoins são enviados de uma carteira.

As quantias que vão para nossas carteiras não são misturadas como as moedas numa carteira física. Os montantes recebidos não se misturam, mas permanecem separados e distintos como os valores exatos recebidos pela carteira. Aqui uma ilustração:

Exemplo

Você cria uma carteira novinha em folha e, em tempo, ela recebe três quantias de 0.01, 0.2 e 3 BTC como segue: você envia 3 BTC para um endereço associado com a carteira e os outros dois pagamentos são feitos por outro endereço, da carteira de Alice.

Bitcoin_Transactions_Alice

Duas pessoas enviam valores para endereços de acordo com uma carteira Bitcoin.

A carteira mostra um saldo de 3.21 BTC, e não 321.000.000 satoshi (321 milhões satoshi), mesmo que você pudesse espiar virtualmente dentro da carteira, você viria três quantias distintas agrupadas juntas pelas suas transações originárias: 0.01, 0.2 e 3 BTC.

Bitcoin_Transactions_wallet

Conteúdo de uma Carteira Bitcoin

As quantias recebidas de bitcoin não se juntam em uma só quantia, mas ficam separadas exatamente como quando mandadas para a carteira. Os três valores do exemplo acima são chamados de saídas das transações originárias.

As carteiras de bitcoin sempre deixam os valores separados e distintos.

Definição

Uma saída é um montante que foi enviado (via transação padrão) para um endereço Bitcoin, junto com um conjunto de regras para desbloquear o valor de saída. No dialeto do Bitcoin, uma saída é chamada de “saída de transação não gasta”, ou UTXO.

Uma saída de transação padrão pode ser desbloqueada com a chave privada associada com o endereço que está recebendo. Os endereços e seus pares de chaves públicas e privadas serão abordados mais tarde nessa série. No momento, nós estamos preocupados apenas com a quantia de saída.

Exemplo

Vamos considerar um exemplo seguindo o dinheiro em um cenário onde você envia 0.15 BTC para o Bob.

Como podemos ver, sua carteira não seleciona 15 mil satoshi (0.15 BTC) de uma soma total de 321 milhões satoshi da carteira, ao invés disso, a sua carteira vai selecionar uma das três “saídas” existentes que são candidatas ao gasto. Então ela escolhe (por várias razões que não são importantes agora) a saída de 0.2 BTC. A carteira então desbloqueia a saída de 0.2 BTC e usa o valor total de 0.2 BTC como entrada para a sua nova transação de 0.15 BTC. A saída de 0.2 BTC é “gasta” no processo. – Leia esse parágrafo uma segunda vez.

Bitcoin_Transactions_Bob

Transação Bitcoin Entrada e Saídas / o “troco” do gasto para Bob é retornado para sua carteira como um nova saída

O gasto da transação que sua carteira criou manda 0.15 BTC para o endereço de Bob – onde vai residir na carteira dele como uma saída – esperando eventualmente para ser gasta.

Os 0.05 BTC de diferença (0.2 BTC de entrada menos 0.15 BTC como saída) é chamado de “troco” e a transação vai mandá-lo de volta para a sua carteira através de um endereço recém criado. Os 0.05 BTC de troco vão constar na sua carteira como uma nova saída – esperando eventualmente para ser gasta.

Então, agora, uma espiada virtual de dentro da carteira revela o seguinte:

Bitcoin_Transactions_summary

Gastar bitcoins consome UTXOs e cria outras / enviando 0.15 BTC para Bob destroi a saída de valor 0.2 BTC / …e cria uma nova saída de valor BTC 0.05

Cada uma das três saídas que estão “esperando para serem gastas”, está bloqueiada com seu endereço receptor até que chegue a hora que uma ou mais saídas sejam selecionadas como entradas para uma novo gasto de transação.

Por trás das cenas, diferentes carteiras clientes aplicam uma lógica diferente quando selecionando UTXOs como entradas para novas transações. Uma política de carteira é usar primeiro as UTXOs mais velhas, quando possível, mas as implementações diferem. A maneira em que as UTXOs são selecionadas não é um problema para nós no momento, uma vez que o objetivo tem sido o de enfatizar o ponto em que as quantias recebidas em nossas carteiras permanecem separadas e distintas.

Resumo de como uma transação Bitcoin funciona

Muitas quantias recebidas não se misturam como numa carteira física. Ao invés disso, os montantes recebidos (UTXOs) são usados individualmente (ou em combinação) no momento que nós gastamos os bitcoins. Ao criar um gasto de transação nossa carteira seleciona as UTXOs (de valores suficientes para satisfazer o montante que queremos enviar) e tipicamente cria duas novas saídas: uma para o receptor e outra para o troco que recebemos de volta para nossa carteira. O troco se torna uma nova UTXO em nossa carteira, e o valor que mandamos se torna uma UTXO bloqueada ao endereço destinatário – que pode ou não ser associado com a carteira, como por exemplo no armanazenamento frio (cold storage). A UTXO original usada como entrada para o gasto da transação ser “gasto” e destruído para sempre.

Isso foi uma introdução a como saídas (UTXOs) são tratadas pelo software da carteira. Uma vez que a UTXO é selecionada para ser gasta, ela requer que a chave privada associada com o endereço destinatário. Essa chave privada resgata a UTXO e permite que ela se torne uma entrada num novo gasto de transação. O mecanismo pelo qual as saídas de transações anteriores sejam reutilizadas como entradas para novas transações é fundamental para a função do protocolo Bitcoin – e exatamente como foi desenhado por Satoshi.

Na próxima, vamos olhar para endereços e como eles contêm scripts que podem resgatar, não bitcoins, mas a posse de quantidades de … nada!

Fonte: Cryptocoin News

Comentários

coinmag

Minerador de bitcoin aposentado (de julho/2011 a abril/2014) e grande entusiasta da criptomoeda, acreditando-a capaz de provocar grandes e favoráveis mudanças no mundo financeiro. Você pode fazer doações (tipping) para Marcus no endereço marcuscoelho.tip.me Marcus mantém também seu próprio blog verdadeproibida.com onde advoga contra a conspiração da Nova Ordem Mundial.