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 SAS, una società iscritta nel Registro del Commercio e delle Società di Aix-en-Provence con il numero 899 125 090, con il nome commerciale Bitstack, è registrata come agente di Xpollens - un istituto di moneta elettronica approvato dall'ACPR (CIB 16528 - RCS Nanterre n. 501586341, 110 Avenue de France 75013 Parigi) - presso l'Autorità di controllo e risoluzione prudenziale («ACPR»).») con il numero 747088 e approvato come Crypto-Asset Service Provider («PSCA») presso l'Autorité des Marchés Financiers («AMF») come scambio di criptovalute con fondi, lo scambio di criptoasset per altri cryptoasset, esecuzione di ordini di criptoasset per conto dei clienti, custodia e amministrazione di criptoasset per conto dei clienti e fornitura di servizi di trasferimento di criptovalute per conto dei clienti con il numero A2025-003, la cui sede principale si trova al 100 Impasse des Houillères 13590 Meyreuil.

L'investimento in asset digitali comporta il rischio di perdita parziale o totale del capitale investito.
Le performance passate non sono garanzia di performance future.
SCARICA
Bitstack