Bitcoin
Corso Avanzato
// Livello medio-esperto
// 8 moduli · 40+ concetti · quiz per ogni modulo
Il modello UTXO
In Bitcoin non esiste il concetto di “saldo di un indirizzo”. Quello che esiste è un insieme di output non spesi — pezzi di bitcoin ricevuti in transazioni precedenti che non sono ancora stati usati come input. Il tuo “saldo” è semplicemente la somma degli UTXO che puoi spendere con le tue chiavi private.
Ogni UTXO è atomico: deve essere speso interamente. Se hai un UTXO da 0.5 BTC e vuoi inviare 0.2 BTC, devi consumare l’intero UTXO e restituirti il resto (change) come nuovo UTXO.
| aspetto | Bitcoin (UTXO) | Ethereum (Account) |
|---|---|---|
| privacy | migliore — indirizzo unico per transazione | inferiore — indirizzo riusato |
| parallelizzazione | ottima — UTXO indipendenti | difficile — stato condiviso |
| verifica | semplice — controlla UTXO non speso | complessa — esegui smart contract |
| stato globale | UTXO set ~8 GB | State trie ~120 GB |
| doppia spesa | impossibile — UTXO marcato speso | gestita con nonce |
Gli UTXO molto piccoli (sotto i ~546 satoshi) sono chiamati dust — sono economicamente non spendibili perché la fee per includerli supera il loro valore. Accumularsi di dust grava sull’UTXO set.
La UTXO consolidation è la pratica di combinare molti piccoli UTXO in uno grande durante periodi di basse fee, per ridurre il costo futuro delle transazioni.
Curve ellittiche e secp256k1
Una curva ellittica è definita dall’equazione y² = x³ + ax + b. Bitcoin usa la curva secp256k1 dove a=0 e b=7: y² = x³ + 7 su un campo finito primo p.
La sicurezza deriva dal Problema del Logaritmo Discreto su Curve Ellittiche (ECDLP): dato il punto pubblico Q = k·G (dove G è il punto generatore e k è la chiave privata), è computazionalmente impossibile ricavare k da Q con computer classici.
| aspetto | ECDSA | Schnorr (BIP340) |
|---|---|---|
| firma singola | ~71 byte | 64 byte (−10%) |
| aggregazione | impossibile | MuSig2 — n firme = 1 |
| linearità | Non lineare | Lineare — batch verify |
| privacy multisig | visibile on-chain | indistinguibile da singola firma |
| sicurezza | Provata nella pratica | Provata per riduzione |
L’algoritmo di Shor su un computer quantistico fault-tolerant potrebbe risolvere l’ECDLP in tempo polinomiale, rendendo derivabile la chiave privata dalla chiave pubblica. La vulnerabilità è attiva solo quando la chiave pubblica è esposta — cioè dopo aver speso da un indirizzo per la prima volta.
Gli indirizzi bc1p (Taproot, P2TR) nascondono la chiave pubblica dietro un hash fino alla spesa, offrendo protezione parziale. La vera soluzione richiede l’adozione di algoritmi post-quantum come CRYSTALS-Dilithium via soft fork.
Mempool e fee market
Ogni full node mantiene la propria mempool locale — un insieme di transazioni che ha ricevuto e validato ma che non sono ancora state incluse in un blocco. Le mempool di nodi diversi non sono identiche: dipendono da quando hanno ricevuto le transazioni e dalle loro policy locali.
Con SegWit (BIP141), Bitcoin ha introdotto il concetto di virtual byte (vByte) per calcolare il peso di una transazione. I dati witness (firme) contano solo ¼ rispetto ai dati non-witness, incentivando l’uso di SegWit.
Una transazione tipica P2WPKH (1 input, 2 output) pesa circa 141 vByte contro i 192 byte di una P2PKH legacy — un risparmio del 27%. Un Taproot keypath spend pesa solo ~57 vByte per input (firma Schnorr 64 byte).
Replace-By-Fee (RBF, BIP125): se hai segnalato una transazione come rimpiazzabile (nSequence < 0xFFFFFFFE), puoi inviare una versione con fee più alta che “sovrascrive” la precedente nella mempool. Utile se la fee originale era troppo bassa.
Child-Pays-For-Parent (CPFP): se una tua transazione è bloccata in mempool per fee basse, crea una nuova transazione che spende l’output non confermato con una fee alta. I miner devono includere il “genitore” per prendere la fee del “figlio” — il fee rate viene calcolato in aggregato sull’intero package.
Proof of Work avanzato
Ogni 2016 blocchi (circa 2 settimane), il protocollo ricalcola la difficoltà target per mantenere un tempo medio di 10 minuti per blocco. La formula è:
Se i miner aumentano l’hashrate, i blocchi arrivano più veloci → alla prossima epoch la difficoltà aumenta. Se miner si disconnettono (es. blackout in Kazakhstan 2021), i blocchi rallentano → la difficoltà scende. È un sistema di feedback negativo che mantiene la rete stabile.
Un miner con più del ~33% dell’hashrate può attuare la strategia di selfish mining: trovare un blocco e non annunciarlo immediatamente, accumulando un vantaggio segreto. Se trova un secondo blocco prima che la rete trovi il suo, pubblica entrambi — la catena della rete viene scartata e il selfish miner vince due ricompense.
In pratica, un attacco 51% su Bitcoin costa miliardi di dollari al giorno in hardware e energia, e la ricompensa finanziaria è limitata rispetto al danno alla propria custodia di BTC. La sicurezza di Bitcoin è incentrata sulla teoria dei giochi, non solo sulla crittografia.
A differenza di sistemi BFT (es. Tendermint/Cosmos), Bitcoin non ha finality deterministica. La sicurezza cresce esponenzialmente con il numero di conferme. Dopo 6 blocchi (~1 ora), la probabilità che un attaccante con x% dell’hashrate riorganizzi la catena è:
Script Bitcoin e Taproot
Script è un linguaggio a stack, eseguito da destra a sinistra. Ogni UTXO ha un scriptPubKey (locking script) e viene speso fornendo uno scriptSig (unlocking script) o un witness che lo soddisfa.
P2SH (Pay-to-Script-Hash): invece di rivelare il script complesso nel scriptPubKey, si mette solo il suo hash. Il redeemScript viene rivelato solo al momento della spesa — migliora la privacy e riduce le fee del mittente.
MAST (Merklized Abstract Syntax Tree): per script con molte condizioni alternative (es. “spendibile da A, o da B+C dopo 1 anno, o da A+B+C+D in qualsiasi momento”), MAST inserisce solo la radice di un Merkle tree di tutti gli script. Al momento della spesa, si rivela solo il ramo utilizzato — gli altri restano privati.
OP_CHECKLOCKTIMEVERIFY (CLTV): l’UTXO non può essere speso prima di un certo block height o timestamp assoluto. Usato nei canali Lightning per force-close sicuro.
OP_CHECKSEQUENCEVERIFY (CSV): blocca la spesa per un numero relativo di blocchi dopo la conferma della transazione che ha creato l’UTXO. Fondamentale per i canali Lightning — il CSV sul commitment transaction impedisce la pubblicazione di stati vecchi.
Lightning Network
Un canale Lightning è una transazione 2-di-2 multisig su Bitcoin (funding transaction) che blocca fondi. Le parti si scambiano commitment transaction off-chain — ognuna è una transazione Bitcoin valida ma non pubblicata, che riflette lo stato corrente del canale.
La sicurezza è garantita da revocation keys: quando si aggiorna il canale, il vecchio stato diventa “revocato”. Se qualcuno tenta di pubblicare un vecchio commitment, il controparte può pubblicare una justice transaction che prende tutti i fondi.
Gli HTLC permettono di instradare pagamenti attraverso nodi intermedi senza fidarsi di loro. Un HTLC dice: “paga X satoshi a chi rivela il preimage r tale che SHA256(r) = H, oppure rimborsa dopo T blocchi”.
Il destinatario finale genera il preimage r casuale, calcola H = SHA256(r) e lo comunica al mittente nell’invoice. Il mittente invia il pagamento lungo il percorso: ogni nodo crea un HTLC per il prossimo con lo stesso H. Quando il destinatario rivela r, la catena di HTLC si risolve backwards.
Lightning usa onion routing (simile a Tor): il mittente cifra a strati il percorso. Ogni nodo sa solo da chi ha ricevuto e a chi inviare — non conosce mittente finale né destinatario. La privacy dei pagamenti è intrinsecamente superiore a on-chain.
Il problema critico di LN è la liquidità: un canale con 1 BTC da Alice a Bob può instradare fino a 1 BTC verso Bob, ma zero verso Alice. Il loop out (aprire un canale + submarine swap per “riequilibrare”) e i liquidity provider sono soluzioni comuni.
Analytics on-chain
SOPR (Spent Output Profit Ratio): rapporto tra il prezzo a cui un UTXO è stato venduto e il prezzo a cui era stato comprato. SOPR > 1 = i holder vendono in profitto. SOPR < 1 = vendono in perdita. Un SOPR che torna a 1 dopo un bear è il classico segnale di “capitolazione completata”.
MVRV (Market Value to Realized Value): rapporto tra capitalizzazione di mercato corrente e Realized Cap (valore dell’intera supply al prezzo dell’ultimo movimento di ogni BTC). MVRV > 3.5 storicamente segnala zone di picco. MVRV < 1 segnala capitolazione estrema.
NVT (Network Value to Transactions): capitalizzazione divisa per il volume on-chain giornaliero in BTC. È il “P/E ratio di Bitcoin”: NVT alto = rete sopravvalutata rispetto all’utilizzo.
Il Realized Price è il prezzo medio ponderato per coin al quale tutta la supply si è mossa l’ultima volta. Rappresenta il “costo medio” aggregato del mercato. Quando il prezzo di mercato scende sotto il Realized Price, la maggior parte degli holder è in perdita — una condizione rara e tipicamente coincide con i fondi di mercato.
Le HODL Waves mostrano la distribuzione dell’età degli UTXO nel tempo. Quando la fascia “1+ anni” cresce, significa accumulo di long-term holder. Quando si contrae bruscamente, vecchi BTC vengono spesi — tipicamente nei picchi di bull market.
% Supply in Profit: percentuale di UTXO il cui prezzo di acquisto era inferiore al prezzo corrente. Storicamente, valori >95% coincidono con picchi, valori <50% con fondi.
CDD (Coin Days Destroyed): misura l’attività dei “dormant holder”. Un BTC tenuto 365 giorni che viene speso distrugge 365 “coin days”. Picchi di CDD indicano movimenti di grandi holder o early adopters — spesso accompagnano distribuzioni di top.
Modelli di valutazione
La legge di potenza descrive la crescita di Bitcoin come funzione del tempo trascorso dal genesis block. Con R²=0.951 su 15+ anni, è il modello con il fitting più robusto disponibile.
Limite principale: il coefficiente β=5.84 è calibrato su dati storici e potrebbe decelerare con la saturazione della rete. Non cattura i cicli — solo la traiettoria centrale.
Il valore di una rete cresce come V ∝ N^β con β=1.75 per Bitcoin (tra Metcalfe puro N² e legge di Sarnoff N). Con ~50 milioni di indirizzi attivi nel 2026, siamo al 50% della capacità stimata (K=100M) — ancora in fase di crescita accelerata.
Il modello Stock-to-Flow (S2F) di PlanB confronta lo stock esistente di un asset con il suo flusso di produzione annuale. Bitcoin ha S2F ≈ 120 dopo l’halving del 2024 — superiore all’oro (~60).
Critica fondamentale: S2F è un modello di scarsità, non di domanda. Non incorpora l’adozione, la liquidità, la regolamentazione né i cicli. Il suo R² elevato negli anni 2018-2020 era parzialmente spurio — correlazione senza causalità robusta. Usato come unico strumento, ha generato previsioni eccessivamente ottimiste nel 2021-2022.
I modelli Log-Periodic Power Law (Sornette) catturano la struttura oscillatoria nei residui della legge di potenza. I cicli di Bitcoin mostrano una struttura log-periodica con parametro di scala λ ≈ 2.56 nei cicli 2011-2017, che si sta contraendo verso λ ≈ 1.44 per il ciclo 2025-2028 — segnale di maturazione della rete.
Cryptograssini.com · Elite Scientist Series
Hai completato tutti gli 8 moduli del corso Bitcoin avanzato.
UTXO · Crittografia · Mempool · PoW · Script · Lightning · On-chain · Valutazione
