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

Bitstack Digital Assets SAS, société immatriculée au registre du commerce et des sociétés de Aix-en-Provence sous le numéro 899 125 090, exploitant le nom commercial Bitstack, est enregistré en tant qu’agent de Xpollens - établissement de monnaie électronique agréé par l’ACPR (CIB 16528 - RCS Nanterre n°501586341, 110 Avenue de France 75013 Paris) - auprès de l’Autorité de Contrôle Prudentiel et de Résolution (“ACPR”) sous le numéro 747088 et agréé en tant que Prestataire de Services sur Crypto-Actif (“PSCA”) auprès de l’Autorité des Marchés Financiers (“AMF”) au titre d’échange de crypto-actifs contre des fonds, d’échange de crypto-actifs contre d’autres crypto-actifs, d’exécution d’ordres sur crypto-actifs pour le compte de clients, la conservation et l’administration de crypto-actifs pour le compte de clients et la fourniture de services de transfert de crypto-actifs pour le compte de clients sous le numéro A2025-003, dont le siège social est situé 100 impasse des Houillères 13590 Meyreuil.

L'investissement dans les actifs numériques comporte un risque de perte partielle ou totale du capital investi.
Les performances passées ne préjugent pas des performances futures.
BAIXAR
Bitstack