Script, condizioni, firme... Come vengono protetti i bitcoin?

Disponibile come podcast
Condividi l'articolo:

Bitcoin è un sistema monetario peer-to-peer in cui gli utenti possono scambiare valore senza passare attraverso un intermediario di fiducia. Per effettuare transazioni, viene utilizzato un indirizzo di ricezione per ricevere bitcoin e quindi la chiave privata associata viene utilizzata per spendere questi fondi. Ma come interagiscono concretamente tutti questi elementi in una transazione?

In questo articolo, daremo uno sguardo approfondito ai meccanismi fondamentali di Bitcoin. Scoprirai in dettaglio come i BTC sono rappresentati nel sistema, come vengono bloccati e sbloccati e come funzionano le transazioni.

Come vengono rappresentati i bitcoin?

Su Bitcoin, le unità monetarie non sono gestite secondo un modello di conto come nel sistema bancario. Invece, i bitcoin sono rappresentati da UTXO (Output delle transazioni non spesi), che sono essenzialmente deflussi da transazioni non ancora spese. Ogni UTXO rappresenta una quantità specifica di bitcoin di una transazione precedente disponibile per la spesa.

Un UTXO può essere pensato come il supporto monetario su Bitcoin, proprio come le banconote fisiche nel sistema monetario classico. Un singolo UTXO può quindi rappresentare qualsiasi valore, da un satoshi (= 0,00000001 BTC) a diversi bitcoin.

Per capire meglio, confrontiamolo con un conto bancario. Sul tuo conto, le tue transazioni si riflettono direttamente nel tuo saldo. Ogni acquisto o prelievo riduce il saldo e ogni deposito lo aumenta. Su Bitcoin, non esiste un saldo del conto, ma piuttosto una serie di UTXO che rappresentano le varie quantità di bitcoin disponibili.

Quando vuoi effettuare una transazione Bitcoin, usi gli UTXO che possiedi come input (Ingressi) per generare nuovi UTXO in cambio di output (Uscite). Una transazione consuma quindi UTXO come input e crea nuovi UTXO come output.

Tuttavia, è importante notare che un UTXO non può essere consumato parzialmente: se viene utilizzato in una transazione, deve essere consumato per intero. È simile a come funzionano le banconote: se vuoi spendere 5€ ma avere solo una banconota da 10€, non puoi semplicemente dimezzarla. Sei obbligato a versare 10€ al destinatario che ti darà 5€ in cambio.

Nel caso di una transazione Bitcoin, funziona allo stesso modo. Se il valore dell'UTXO utilizzato supera l'importo da pagare, il pagatore riceve un nuovo UTXO come output, che rappresenta la differenza tra l'UTXO utilizzato come input e la somma destinata al beneficiario. L'UTXO che spetta al pagatore è chiamato «scambio».

Ad esempio, se Alice ha un UTXO di 2 BTC e desidera acquistare un prodotto per 0,5 BTC, utilizzerà questo UTXO come input per creare 2 nuovi UTXO come output: uno da 0,5 BTC per il pagamento e un altro da 1,5 BTC per lo scambio che le è dovuto.

Comprendere gli script Bitcoin

Per garantire la sicurezza degli UTXO appartenenti a ciascun utente, è necessario disporre di un meccanismo per bloccarli in modo sicuro, consentendo al contempo all'utente legittimo di sbloccarli. Questo viene fatto tramite script.

Uno script ci consente di porre condizioni agli UTXO che ci appartengono per controllarne la spesa. In genere, la condizione richiede che l'utente fornisca una firma digitale creata con una chiave privata che solo l'utente conosce. È qui che entra in gioco il portafoglio Bitcoin, che viene utilizzato per proteggere tutte le tue chiavi private. Durante una transazione, l'utente presenterà l'UTXO che desidera utilizzare e la firma richiesta per soddisfare la condizione di spesa stabilita dallo script. I nodi della rete Bitcoin sono quindi responsabili della verifica della validità di questa firma per consentire l'aggiunta della transazione alla blockchain.

In ogni transazione Bitcoin, ci sono due tipi di script: il» ScriptPub Key », che blocca l'UTXO, e il» Script SIG », che ne consente lo sblocco.

Come posso bloccare un UTXO?

Quando ricevi bitcoin, il processo prevede che il mittente crei una transazione. In questo, inserirà un UTXO che gli appartiene e che verrà consumato, mentre un nuovo UTXO verrà creato per te come output. A questo punto, il tuo UTXO viene bloccato utilizzando il tuo indirizzo di ricezione.

Questa operazione viene eseguita utilizzando un ScriptPub Key. Questo script è integrato nell'output della transazione che crea l'UTXO. Specifica le regole che ogni futuro utente deve seguire per sbloccare e spendere UTXO.

Le ScriptPub Key utilizza una serie di istruzioni denominate» Codici operativi » per definire queste condizioni. Ad esempio, in una transazione P2PKH standard (Pagamento su Pubkey-Hash), il ScriptPub Key può richiedere una firma valida corrispondente a una chiave pubblica con hash, ad esempio un indirizzo di ricezione. Ecco un esempio di ScriptPub Key P2PKH classico:

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

In questo script:

  • OP_DUP : Duplica la chiave pubblica nello stack;
  • OP_HASH160 : restituisce l'hash della chiave pubblica (con SHA256 quindi RIPEMD160);
  • OP_PUSHBYTES_20 <adresse de réception>: Inserisci l'indirizzo Bitcoin previsto nello stack;
  • OP_EQUALVERIFY : verifica che la chiave pubblica con hash corrisponda all'indirizzo ricevuto fornito;
  • OP_CHECKSIG : verifica la firma utilizzando la chiave pubblica.

In questo ScriptPub Key, l'UTXO è bloccato in modo che solo l'utente con la chiave privata corrispondente all'indirizzo di ricezione specificato possa sbloccare e utilizzare questo UTXO fornendo la firma richiesta. Ciò significa che quando fornisci un indirizzo di ricezione a un pagante per ricevere bitcoin, il portafoglio del pagatore creerà un UTXO. Questo UTXO è protetto da un ScriptPub Key che include l'indirizzo che hai fornito.

➤ Scopri di più sugli indirizzi di ricezione di Bitcoin.

Come faccio a sbloccare un UTXO?

A tua volta, sarai in grado di spendere i tuoi bitcoin in una transazione futura consumando uno (o più) dei tuoi UTXO come input. Ma per farlo, devi prima sbloccare l'UTXO in questione.

Lo sblocco di un UTXO implica il rispetto delle condizioni definite dal ScriptPub Key ad esso associato. Questa operazione viene eseguita utilizzando lo script di sblocco, chiamato anche» Script SIG ». Il Script SIG è quindi inclusa nella registrazione di una transazione Bitcoin. Contiene tutti gli elementi necessari in modo che, se eseguito con ScriptPub Key Corrispondente, il risultato è» vero », il che significa che le condizioni di spesa sono state soddisfatte.

Torniamo al nostro esempio di transazione P2PKH standard: per sbloccare l'UTXO, Script SIG consisterebbe nella firma e nella chiave pubblica corrispondenti all'indirizzo di ricezione:

<signature><clé publique>

Quando viene creata una transazione, Script SIG associata a ciascuna voce commerciale viene eseguita per prima, seguita dall'esecuzione del ScriptPub Key associato all'UTXO utilizzato come input. Se Script SIG fornisce una firma valida che corrisponde alla chiave pubblica prevista dal ScriptPub Key, quindi la condizione di spesa è soddisfatta. Ciò consente di consumare l'UTXO in questione e di spendere i bitcoin che rappresenta.

➤ Scopri come gestire correttamente gli UTXO acquistati in DCA.

Conclusione

Bitcoin opera su un modello UTXO, che sono i vettori che rappresentano le unità monetarie all'interno del sistema. Ogni transazione utilizza gli UTXO esistenti come input e crea nuovi UTXO come output. È così che circola il denaro.

Gli script in Bitcoin determinano le condizioni alle quali questi UTXO possono essere spesi. Le ScriptPub Key viene utilizzato per bloccare i fondi, mentre il Script SIG viene utilizzato per soddisfare il ScriptPub Key e quindi sbloccare il BTC. Questo meccanismo garantisce che solo le persone in possesso delle informazioni necessarie per lo sblocco (solitamente la chiave privata) possano spendere i bitcoin.

Disponibile come podcast

Riepilogo

Condividi l'articolo:

Potrebbero piacerti questi articoli

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.
SCARICA
Bitstack