Scripts, condições, assinaturas... Como os bitcoins são protegidos?

Disponível como podcast
Compartilhe o artigo:

O Bitcoin é um sistema monetário peer-to-peer em que os usuários podem trocar valor sem passar por um intermediário confiável. Para fazer transações, um endereço de recebimento é usado para receber bitcoins e, em seguida, a chave privada associada é usada para gastar esses fundos. Mas como todos esses elementos interagem em termos concretos em uma transação?

Neste artigo, analisaremos detalhadamente os mecanismos fundamentais do Bitcoin. Você aprenderá como o BTC é representado no sistema, como eles são bloqueados e desbloqueados e como as transações funcionam em detalhes.

Como os bitcoins são representados?

No Bitcoin, as unidades monetárias não são gerenciadas de acordo com um modelo de conta, como no sistema bancário. Em vez disso, os bitcoins são representados por UTXOs (Saídas de transações não gastas), que são essencialmente saídas de transações que ainda não foram gastas. Cada UTXO representa uma quantidade específica de bitcoin de uma transação anterior que está disponível para gastos.

Um UTXO pode ser considerado o suporte monetário do Bitcoin, assim como as notas físicas no sistema monetário clássico. Um único UTXO pode, portanto, representar qualquer valor, variando de um satoshi (= 0,00000001 BTC) a vários bitcoins.

Para entender melhor, vamos compará-la a uma conta bancária. Em sua conta, suas transações são refletidas diretamente em seu saldo. Cada compra ou retirada reduz seu saldo e cada depósito o aumenta. No Bitcoin, não há saldo de conta, mas sim uma série de UTXOs representando as várias quantidades de bitcoin disponíveis.

Quando você quer fazer uma transação de Bitcoin, você usa UTXOs que você possui como entradas (Entradas) para gerar novos UTXOs em troca de saídas (Saídas). Portanto, uma transação consome UTXOs como entradas e cria novos UTXOs como saídas.

No entanto, é importante observar que um UTXO não pode ser consumido parcialmente: se for usado em uma transação, ele deve ser consumido integralmente. É semelhante à forma como as notas funcionam: se você quer gastar €5, mas tem apenas uma nota de €10, não pode simplesmente cortar a conta pela metade. Você é obrigado a dar €10 ao destinatário, que lhe dará €5 em troco.

No caso de uma transação de Bitcoin, ela funciona da mesma maneira. Se o valor do UTXO usado exceder o valor a ser pago, o pagador receberá um novo UTXO como saída, representando a diferença entre o UTXO usado como entrada e a soma destinada ao beneficiário. Esse UTXO que cabe ao pagador é chamado de “troca”.

Por exemplo, se Alice tiver um UTXO de 2 BTC e quiser comprar um produto por 0,5 BTC, ela usará esse UTXO como entrada para criar 2 novos UTXOs como saídas: um de 0,5 BTC para pagamento e outro de 1,5 BTC para a troca que lhe é devida.

Entendendo os scripts do Bitcoin

Para garantir a segurança dos UTXOs pertencentes a cada usuário, precisamos ter um mecanismo para bloqueá-los com segurança, permitindo que o usuário legítimo os desbloqueie. Isso é feito por meio de scripts.

Um script nos permite impor condições aos UTXOs pertencentes a nós para controlar seus gastos. Normalmente, a condição exige que o usuário forneça uma assinatura digital feita com uma chave privada que somente o usuário conhece. É aqui que entra a carteira Bitcoin, que é usada para proteger todas as suas chaves privadas. Durante uma transação, o usuário apresentará o UTXO que deseja usar e a assinatura necessária para satisfazer a condição de despesa estabelecida pelo script. Os nós da rede Bitcoin são então responsáveis por verificar a validade dessa assinatura para permitir que a transação seja adicionada ao blockchain.

Em cada transação de Bitcoin, existem dois tipos de scripts: o” Script PubKey ”, que bloqueia o UTXO e o” ScriptSig ”, o que permite que ele seja desbloqueado.

Como faço para bloquear um UTXO?

Quando você recebe bitcoin, o processo envolve o remetente criando uma transação. Neste, ele inserirá um UTXO pertencente a ele que será consumido, enquanto um novo UTXO é criado para você como saída. Neste ponto, seu UTXO está bloqueado usando seu endereço de recebimento.

Esta operação é realizada usando um Script PubKey. Esse script é integrado à saída da transação que cria o UTXO. Ele especifica as regras que qualquer usuário futuro deve seguir para desbloquear e gastar UTXO.

O Script PubKey usa um conjunto de instruções chamado” Códigos operacionais ” para definir essas condições. Por exemplo, em uma transação P2PKH padrão (Hash de pagamento para Pubkey), o Script PubKey pode exigir uma assinatura válida correspondente a uma chave pública com hash, ou seja, um endereço de recebimento. Aqui está um exemplo de Script PubKey P2PKH clássico:

OP_DUP OP_HASH160 OP_PUSHBYTES_20 <adresse de réception> OP_EQUALVERIFY OP_CHECKSIG

Neste script:

  • OP_DUP : Duplique a chave pública na pilha;
  • OP_HASH160 : retorna o hash da chave pública (com SHA256 e depois RIPEMD160);
  • OP_PUSHBYTES_20 <adresse de réception>: Coloque o endereço Bitcoin esperado na pilha;
  • OP_EQUALVERIFY : verifique se a chave pública com hash corresponde ao endereço recebido fornecido;
  • OP_CHECKSIG : verifique a assinatura usando a chave pública.

Neste Script PubKey, o UTXO é bloqueado para que somente o usuário com a chave privada correspondente ao endereço de recebimento especificado possa desbloquear e gastar esse UTXO fornecendo a assinatura necessária. Isso significa que quando você fornece um endereço de recebimento a um pagador para receber bitcoin, a carteira do pagador cria um UTXO. Este UTXO é protegido por um Script PubKey que inclui o endereço que você forneceu.

➤ Saiba mais sobre os endereços de recebimento de Bitcoin.

Como faço para desbloquear um UTXO?

Por sua vez, você poderá gastar seus bitcoins em uma transação futura consumindo um (ou mais) de seus UTXOs como entrada. Mas para fazer isso, você deve primeiro desbloquear o UTXO em questão.

Desbloquear um UTXO envolve atender às condições definidas pelo Script PubKey associado a ele. Essa operação é executada usando o script de desbloqueio, também chamado de” ScriptSig ”. O ScriptSig é, portanto, incluído na entrada de uma transação de Bitcoin. Ele contém todos os elementos necessários para que, quando executado com o Script PubKey Correspondente, o resultado é” verdade ”, o que significa que as condições de despesa foram atendidas.

Vamos voltar ao nosso exemplo de uma transação P2PKH padrão: para desbloquear o UTXO, o ScriptSig consistiria na assinatura e na chave pública correspondentes ao endereço de recebimento:

<signature><clé publique>

Quando uma transação é criada, o ScriptSig associada a cada entrada de negociação é executada primeiro, seguida pela execução do Script PubKey associado ao UTXO usado como entrada. Se o ScriptSig fornece uma assinatura válida que corresponde à chave pública esperada pelo Script PubKey, então a condição de despesa é atendida. Isso torna possível consumir o UTXO em questão e gastar os bitcoins que ele representa.

➤ Descubra como gerenciar adequadamente os UTXOs adquiridos no DCA.

Conclusão

O Bitcoin opera em um modelo UTXOs, que são as operadoras que representam as unidades monetárias dentro do sistema. Cada transação consome UTXOs existentes como entradas e cria novos UTXOs como saídas. É assim que o dinheiro circula.

Os scripts no Bitcoin determinam as condições sob as quais esses UTXOs podem ser gastos. O Script PubKey é usado para bloquear fundos, enquanto o ScriptSig é usado para satisfazer o Script PubKey e, assim, desbloqueie o BTC. Esse mecanismo garante que somente indivíduos com as informações necessárias para o desbloqueio (geralmente a chave privada) possam gastar os bitcoins.

Disponível como podcast

Resumo

Compartilhe o artigo:

Você pode gostar desses itens

A Bitstack SAS, uma empresa registrada no Registro de Comércio e Empresas de Aix-en-Provence sob o número 899 125 090, operando o nome comercial Bitstack, está registrada como agente da Xpollens - uma instituição de dinheiro eletrônico aprovada pela ACPR (CIB 16528 - RCS Nanterre No. 501586341, 110 Avenue de France 75013 Paris) - com a Autoridade de Controle e Resolução Prudencial (“ACPR”).”) sob o número 747088 e aprovado como provedor de serviços de ativos criptográficos (“PSCA”) pela Autorité des Marchés Financiers (“AMF”) como uma troca de criptoativos por fundos, a troca de criptoativos para outros criptoativos, execução de pedidos sobre ativos criptográficos em nome de clientes, custódia e administração de ativos criptográficos em nome de clientes e prestação de serviços de transferência de ativos criptográficos em nome de clientes sob o número A2025-003, cuja sede está localizada em 100 Impasse des Houillères 13590 Meyreuil.

Investir em ativos digitais envolve o risco de perda parcial ou total do capital investido.
O desempenho passado não é garantia de desempenho futuro.
BAIXAR
Bitstack