Script di Bitcoin e verifica delle firme UTXO
Segua gli script pay-to-public-key-hash (P2PKH) e la firma ECDSA.
Script di Bitcoin e verifica delle firme UTXO è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.
Modello UTXO
Bitcoin utilizza gli output di transazione non spesi (UTXO). Ogni UTXO è una moneta con uno script di blocco (scriptPubKey). Per spenderlo, chi effettua la spesa fornisce uno script di sblocco (scriptSig) che soddisfa lo script di blocco. Gli UTXO sono atomici: o vengono spesi o non vengono spesi, mai parzialmente.
Bitcoin Script
Bitcoin Script è un linguaggio basato su stack e non completo secondo Turing. Gli script vengono eseguiti inserendo dati nello stack ed eseguendo opcode. Non ci sono cicli né ricorsione: gli script terminano sempre. Questa limitazione intenzionale previene gli attacchi di tipo denial-of-service e rende la verifica dello script O(n) rispetto alla sua lunghezza.
P2PKH: pagamento all'hash della chiave pubblica
È il tipo di output più comune. scriptPubKey: OP_DUP OP_HASH160
Traccia di esecuzione di P2PKH
Traccia dello stack per P2PKH: inserisce
ECDSA in Bitcoin
Bitcoin utilizza ECDSA su secp256k1 (curva di Koblitz, y^2 = x^3 + 7 mod p). La chiave privata è d ∈ [1, n-1]. La chiave pubblica è Q = d*G. Sign(m): k casuale; r = (k*G).x mod n; s = k^{-1}(H(m)+r*d) mod n. La firma è (r, s). Viene codificata in DER nello scriptSig.
Tipi SIGHASH
Le firme Bitcoin vincolano parti specifiche della transazione: SIGHASH_ALL (predefinito): firma tutti gli input e gli output. SIGHASH_SINGLE: firma solo l'output corrispondente. SIGHASH_NONE: non firma alcun output (pericoloso). SIGHASH_ANYONECANPAY: firma solo il proprio input e consente transazioni collaborative.
P2SH: pagamento all'hash dello script
P2SH consente di nascondere condizioni di spesa complesse dietro un hash. scriptPubKey: OP_HASH160
Multifirma (2-di-3)
redeemScript: OP_2
SegWit e P2WPKH
Segregated Witness (SegWit, BIP-141) sposta le firme fuori da scriptSig, inserendole in un campo witness separato. Risolve la malleabilità delle transazioni, per cui l'ID cambia se cambia scriptSig. scriptPubKey di P2WPKH: OP_0 <20-byte pubKeyHash>. Witness: [
Taproot (P2TR)
Taproot (BIP-340/341/342) utilizza firme Schnorr e alberi sintattici astratti merkelizzati (MAST). La spesa predefinita consiste in una singola firma Schnorr, indistinguibile da una spesa tramite keypath. Le condizioni complesse sono nascoste in un albero di Merkle e vengono rivelate solo se utilizzate. Più privacy ed efficienza.
Verifica degli script nel codice
Bitcoin Core convalida gli script tramite un interprete basato su stack. CheckSig chiama VerifyScript, che esegue lo script combinato scriptSig+scriptPubKey. Per ogni opcode CHECKSIG, chiama CheckECDSASignature, che verifica la firma codificata in DER (r,s) rispetto all'hash della transazione utilizzando secp256k1.
Verifica rapida
Che cosa verifica OP_CHECKSIG in uno script P2PKH?
Riepilogo
Gli UTXO utilizzano Bitcoin Script, basato su stack. P2PKH: il modello di spesa più comune: verifica l'hash di una chiave pubblica, quindi controlla la firma ECDSA. SegWit risolve la malleabilità; Taproot aggiunge Schnorr e MAST. Prossimo argomento: crittanalisi differenziale.
Impara Cryptology Academy con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 67
- Lezioni
- 261
Domande Frequenti
La lezione «Script di Bitcoin e verifica delle firme UTXO» è gratuita?
Sì — il testo completo di «Script di Bitcoin e verifica delle firme UTXO» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.
Cosa imparerò in «Script di Bitcoin e verifica delle firme UTXO»?
Segua gli script pay-to-public-key-hash (P2PKH) e la firma ECDSA. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cryptology Academy?
Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Script di Bitcoin e verifica delle firme UTXO»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?
Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Catene di hash e collegamento dei blocchi
- Alberi di Merkle: integrità delle transazioni su larga scala
- Proof of Work: mining e adeguamento della difficoltà
- Script di Bitcoin e verifica delle firme UTXO