Riferimento per sviluppatori
Questo è il livello di riferimento: i tipi di messaggio P2P, gli opcode degli script, i nomi dei campi RPC e le strutture del protocollo che incontri leggendo il codice del bitcoin o decodificando una transazione grezza, e non mentre compri qualcosa.
Esiste perché il glossario per sviluppatori di Bitcoin Core, dove la maggior parte di questi termini si cerca ancora, non è quasi cambiato dal 2021, e diverse sue voci non descrivono più il software. Il protocollo di pagamento BIP70 che documenta è stato eliminato da Bitcoin Core nella versione 0.20.0. Le sue voci sui bloom filter descrivono un meccanismo che Core ha smesso di offrire per impostazione predefinita nella 0.19.0. Ognuna è ricostruita qui in base a ciò che il codice fa oggi, con la correzione dichiarata e non applicata in silenzio.
I termini si dividono in gruppi. Tipi di messaggio come inv, getdata e MSG_FILTERED_WITNESS_BLOCK appartengono al protocollo peer-to-peer. Opcode come OP_RETURN e OP_CHECKSIG appartengono a Script. I flag dell'hash della firma, i numeri di sequenza e il locktime stabiliscono a che cosa una firma si impegni davvero. Le voci su X509 e sulle richieste di pagamento sono storiche, e lo dicono.
La maggior parte dei lettori non avrà mai bisogno di questa sezione, e va bene così. È qui perché la ricerca di un nome di campo esatto arrivi a una pagina che lo spiega con precisione invece che a un abbozzo di una riga.
47 termini. Ultima revisione: 24 settembre 2026.
Termini: Riferimento per sviluppatori
- Bitcoin Scriptanche ScriptBitcoin Script è il piccolo linguaggio basato su stack che ogni output di bitcoin porta con sé, e che stabilisce le condizioni che qualcuno deve soddisfare prima che quei bitcoin possano essere spesi di nuovo.
- Catena di certificatiUna catena di certificati è la lista ordinata di certificati che collega quello presentato da un server a una radice di cui il tuo dispositivo si fida già, con ogni anello firmato dal successivo.
- Certificato fogliaIl certificato foglia è il certificato di entità finale presentato dal server a cui ti sei effettivamente connesso, e dimostra il controllo di un nome di dominio, nulla sulle persone che vi sono dietro.
- Certificato intermedioUn certificato intermedio si colloca tra una radice e una foglia: è firmato dalla radice e firma la foglia, così la chiave privata della radice può restare offline e inutilizzata.
- Certificato radiceUn certificato radice è l'ancora di fiducia autofirmata in cima a una catena di certificati, e gode di fiducia solo perché il fornitore del tuo sistema operativo o del tuo browser lo ha inserito lì.
- Certificato X.509anche certificati X.509Un certificato X.509 è un file firmato che associa una chiave pubblica a un nome e a un periodo di validità, ed è il formato alla base di ogni connessione HTTPS che apri verso un exchange.
- Checksum del descrittoreIl checksum del descrittore è il codice di otto caratteri che segue il cancelletto in un descrittore di output, un codice BCH che intercetta gli errori di battitura e di copia prima che un wallet importi le chiavi sbagliate.
- Codice QR URIUn codice QR URI è il motivo quadrato in bianco e nero che codifica un URI bitcoin:, così una fotocamera può leggere l'indirizzo e l'importo che altrimenti andrebbero digitati.
- CompactSizeanche Compact size unsigned integer, VarIntCompactSize è l'intero a lunghezza variabile con cui bitcoin antepone conteggi e lunghezze nei dati serializzati, e costa un byte per i valori inferiori a 253 e fino a nove per gli altri.
- EtichettaL'etichetta in un URI Bitcoin indica la persona o l'azienda che riceve il pagamento e, in un wallet, è la nota privata che alleghi a un indirizzo o a una transazione.
- Firma SSLLa firma SSL è il nome che BIP70 ha dato ai byte che firmano un PaymentRequest con la chiave del certificato di un server web, e l'etichetta era già impropria quando fu scritta.
- Funzione di puntoLa funzione di punto trasforma una chiave privata in una chiave pubblica moltiplicando il punto generatore di secp256k1 per quel numero, ed è il passo unidirezionale su cui si costruisce ogni indirizzo bitcoin.
- Importo PPL'importo PP era il campo in satoshi all'interno di un output BIP70, impostato a zero quando il commerciante voleva che fosse il pagatore a scegliere quanto inviare.
- MSG_BLOCKMSG_BLOCK è il tipo di inventario 2, il codice che un nodo inserisce in un messaggio getdata per chiedere a un peer un blocco completo tramite il suo hash.
- MSG_CMPCT_BLOCKMSG_CMPCT_BLOCK, tipo di inventario 4, è un codice riservato alle richieste: non compare mai in un annuncio ed è valido solo all'interno di un messaggio getdata inviato a un peer che lo ha prima accettato.
- MSG_FILTERED_WITNESS_BLOCKIl tipo di blocco filtrato con witness figura nella lista riservata del BIP144 e nell'enum del codice sorgente di Bitcoin Core, senza alcuna implementazione dietro in nessuno dei due casi.
- MSG_TXMSG_TX contrassegna una voce dell'inventario come transazione, con codice di tipo 1, ed è il modo in cui il tuo pagamento non confermato viene annunciato ai peer prima che nessuno di loro ne abbia visto il contenuto.
- MSG_WITNESS_BLOCKIl tipo di inventario witness block è il modo in cui un nodo che gestisce segwit richiede un blocco nella serializzazione estesa, con tutte le firme allegate invece che rimosse.
- MSG_WITNESS_TXUna richiesta di transazione con witness, inviata come getdata, indica a un peer di restituire la transazione indicata con i dati di firma ancora allegati invece che rimossi.
- OP_CHECKMULTISIGOP_CHECKMULTISIG verifica un gruppo di firme rispetto a un elenco di chiavi pubbliche in un solo passaggio, e i pagamenti Taproot non possono usarlo affatto perché blocca la verifica in batch.
- OP_CHECKSIGOP_CHECKSIG prende dalla pila una chiave pubblica e una firma e verifica che la firma copra questa transazione: è il controllo che dimostra davvero che i bitcoin sono tuoi.
- OP_DUPOP_DUP copia l'elemento in cima alla pila così da poterlo usare due volte, ed è per questo che lo script standard pay-to-public-key-hash può sia calcolare l'hash della tua chiave pubblica sia usarla per la verifica.
- OP_EQUALOP_EQUAL confronta byte per byte i due elementi in cima alla pila e ne mette in cima il risultato, vero o falso, ed è l'ultimo opcode di ogni output pay-to-script-hash.
- OP_EQUALVERIFYOP_EQUALVERIFY confronta i due elementi in cima alla pila e interrompe subito lo script se differiscono: è così che una spesa legacy dimostra di aver presentato la chiave pubblica corretta.
- OP_HASH160OP_HASH160 applica SHA-256 all'elemento in cima allo stack e poi RIPEMD-160 a quel risultato, lasciando un digest di 20 byte, la stessa impronta contenuta in ogni indirizzo che inizia con 1 o 3.
- OP_RETURNOP_RETURN è l'opcode che rende un output di transazione dimostrabilmente non spendibile, il che consente di scrivere sulla blockchain una piccola quantità di dati arbitrari senza appesantire l'insieme degli UTXO attivi.
- OP_VERIFYOP_VERIFY rimuove l'elemento in cima alla pila e interrompe l'intero script a meno che quell'elemento sia vero, trasformando qualsiasi verifica in Bitcoin Script in un requisito inderogabile.
- Opcodeanche Opcode che spingono dati, Opcode che non spingono datiUn opcode è un singolo byte di Bitcoin Script che indica a un nodo di validazione cosa fare dopo, ovvero inserire dati sullo stack o eseguire un'operazione su ciò che è già presente.
- Ordine dei byte internoL'ordine dei byte interno è la disposizione che bitcoin usa all'interno delle strutture serializzate: i numeri interi scritti con il byte meno significativo per primo e i digest degli hash scritti nell'ordine in cui li ha prodotti SHA-256.
- Ordine dei byte RPCL'ordine dei byte RPC è il modo invertito in cui il software bitcoin mostra gli hash di 32 byte, ed è la forma di ogni ID di transazione che copi da un wallet o da un block explorer.
- Parametro rIl parametro r è l'aggiunta del BIP72 a un URI bitcoin che sostituisce l'indirizzo di pagamento con un URL da cui il tuo wallet dovrebbe recuperare una richiesta firmata.
- PaymentDetailsPaymentDetails è il messaggio interno del BIP70 che descriveva davvero un pagamento: a quali output pagare, quanto, quando scade la richiesta e dove inviare la transazione firmata.
- PaymentRequestPaymentRequest è l'involucro esterno del BIP70: racchiude un blob serializzato di PaymentDetails insieme a una catena di certificati e a una firma, così il pagatore poteva verificare chi stava facendo la richiesta.
- PKIanche Infrastruttura a chiave pubblicaLa PKI, o infrastruttura a chiave pubblica, è il sistema di autorità di certificazione, certificati e trust store che permette al software di stabilire se una chiave pubblica appartiene davvero al nome a cui è associata.
- PP expiresPP expires era il timestamp Unix opzionale di un messaggio PaymentDetails di BIP70 che indicava a un wallet di smettere di onorare la richiesta una volta passato quel momento.
- PP memoPP memo era la nota di testo libero in UTF-8 che BIP70 permetteva a un commerciante, a un pagatore o a un server che confermava la ricezione di allegare a un pagamento perché una persona la leggesse.
- PP merchant dataPP merchant data era una stringa di byte opaca che un esercente BIP70 inseriva in una richiesta di pagamento e riceveva indietro inalterata, così i bitcoin in arrivo potevano essere associati a un ordine.
- PP pki dataPP pki data era il campo di una richiesta di pagamento BIP70 che conteneva i certificati del commerciante, codificati in DER, con il certificato foglia per primo, gli eventuali intermedi dietro di esso e il certificato radice escluso.
- PP pki typePP pki type era la stringa di una sola parola, in una richiesta di pagamento BIP70, che indicava come il commerciante l'aveva firmata: none, x509 con SHA-256 oppure x509 con SHA-1.
- Protocollo di pagamento (BIP70)anche Protocollo di pagamento, BIP70Il protocollo di pagamento (BIP70) è stato il tentativo di bitcoin di sostituire i semplici indirizzi con richieste di pagamento firmate e corredate di certificati, e Bitcoin Core ha rimosso l'ultimo residuo del suo supporto nella versione 0.20.0.
- RicevutaUna ricevuta in bitcoin è qualsiasi prova che conservi del fatto che un pagamento è avvenuto: in BIP70 era una conferma di ricezione firmata dal venditore e, in pratica, è l'ID della transazione.
- Script di bloccoanche Pubkey script, scriptPubKey, Locking scriptLo script di blocco, o pubkey script, è il breve frammento di Bitcoin Script allegato a ogni output di transazione, che stabilisce le condizioni da soddisfare prima che i bitcoin di quell'output possano muoversi di nuovo.
- Script di riscattoanche Redeem scriptUno script di riscatto è il contratto di spesa completo nascosto dietro un output pay-to-script-hash, fornito da chi spende alla fine dello script di firma e di cui si calcola l'hash per verificare che corrisponda.
- Script PPLo script PP era il campo obbligatorio di un output BIP70 che conteneva lo script di blocco grezzo che il pagatore doveva riprodurre, gli stessi byte che finiscono in un output di transazione.
- Signature scriptanche scriptSig, Script di sblocco, Script di firmaIl signature script è il dato di sblocco che un input porta con sé per soddisfare il pubkey script dell'output che spende e, sugli input SegWit moderni, è vuoto.
- URI Bitcoinanche BIP21Un URI Bitcoin raccoglie i dettagli di un pagamento in un'unica stringa cliccabile che inizia con bitcoin: e può contenere un indirizzo, un importo e un'etichetta.
- Witness scriptIl witness script contiene le reali condizioni di spesa di un output P2WSH e viaggia nel witness, dove i suoi byte pesano un quarto del costo abituale.
Le altre 13 sezioni
- Nozioni di baseChe cos'è il bitcoin, che cos'è un satoshi e le poche idee su cui si regge il resto del glossario.
- Indirizzi e chiaviDove vengono inviati i bitcoin, su che cosa dà davvero il controllo una chiave privata e come un solo seed produce migliaia di indirizzi.
- Wallet e custodiaHot, cold, custodiali e multisig, e che cosa cambia ciascuno rispetto a chi può spostare i tuoi bitcoin.
- Privacy e sicurezzaGli attacchi che portano via i bitcoin alle persone, e le abitudini e gli strumenti che li fermano.
- Transazioni e commissioniDi che cosa è fatta una transazione bitcoin, perché costa quanto costa e come sbloccarne una.
- Acquisto ed exchangeTipi di ordine, spread e listini delle commissioni: il vocabolario che un exchange usa mentre ti addebita dei costi.
- Mercati e investimentiCapitalizzazione di mercato, volatilità ed ETF spot. Il linguaggio del prezzo, senza previsioni sul prezzo.
- Mining e consensoCome si creano i nuovi blocchi, che cosa viene regolato dalla difficoltà e perché le regole reggono senza nessuno al comando.
- Protocollo e aggiornamentiSegWit, Taproot, soft fork e BIP: come cambia il bitcoin e chi decide.
- Lightning e layer 2Canali di pagamento, fatture e routing, per spostare bitcoin senza pagare per lo spazio in un blocco.
- Regolamentazione e imposteKYC, la Travel Rule, MiCA e plusvalenze: le regole che arrivano al tuo conto e alla tua dichiarazione dei redditi.
- Cultura e storiaMt. Gox, il blocco genesi, HODL, e gli eventi e lo slang che hanno plasmato il modo di parlare del bitcoin.
- Nodi e softwareBitcoin Core, full node, pruning e RPC: il software che fa rispettare le regole.
Domande frequenti
Per chi è questa sezione?
Per chiunque legga il sorgente del bitcoin, decodifichi una transazione grezza o lavori con il protocollo P2P e l'interfaccia RPC. È il livello di riferimento e non quello dell'acquisto, e niente di ciò che contiene serve per possedere o spendere bitcoin.
Che cos'è Bitcoin Script?
Il piccolo linguaggio basato su stack che decide se un bitcoin può essere speso. Non ha cicli, di proposito, il che rende prevedibile il costo di ogni script prima che venga eseguito. La maggior parte delle transazioni usa uno di una manciata di schemi standard.
Perché l'ordine dei byte continua a cambiare?
Perché il bitcoin mostra gli hash nell'ordine opposto a quello in cui li memorizza. L'ordine interno dei byte è quello che usa il protocollo, mentre l'output RPC e i block explorer lo invertono. Mescolare i due è il classico primo bug.
Dove si trova la documentazione autorevole?
Nel sorgente e nei BIP e non su un singolo sito. Le voci qui citano la specifica dove esiste e correggono la vecchia documentazione per sviluppatori dove è diventata obsoleta, invece di ripeterla.