Questo glossario comprende molti dei termini usati con riferimento al bitcoin. Si tratta di parole usate di frequente quindi si consiglia di memorizzarle per una iniziare a prendere confidenza coi concetti base del mondo Bitcoin.
indirizzo
Un indirizzo bitcoin si presenta come segue: 1DSrgJdB2AmWaFNgSbv3MZC3m74996KafV. Consiste in una stringa di lettere e numeri ed è essenzialmente una versione criptata base58check dell’hash a 160 bit di una chiave pubblica. Proprio come chiedi ad altri di inviare una e-mail al tuo indirizzo e-mail, chiedi ad altri di inviarti bitcoin a uno dei tuoi indirizzi bitcoin.
bip
Proposte di miglioramento per il Bitcoin. Un’insieme di proposte che i membri della comunità bitcoin hanno presentato per migliorare i bitcoin. Ad esempio, BIP-21 è una proposta per migliorare lo schema dell’uniform resource identifier (URI).
bitcoin
Il nome dell’unità di valuta (la moneta), il network e il software.
blocco
Un gruppo di transazioni, marcate da un timestamp e dall’impronta univoca del blocco precedente. Per poter fornire una proof of work, è necessario calcolare l’header del blocco, e successivamente validare le transazioni. I blocchi validi sono inseriti all’interno della blockchain principale mediante il consenso della rete.
blockchain
Una lista di blocchi validati, ognuno che collega il precedente fino al blocco di origine (genesis block).
Problema dei Generali Bizantini
Un sistema informatico affidabile deve essere in grado di far fronte al fallimento di uno o più dei suoi componenti. Un componente guasto può presentare un tipo di comportamento che viene spesso trascurato, ovvero inviare informazioni in conflitto a parti diverse del sistema. Il problema di affrontare questo tipo di fallimento è espresso in modo astratto come il Problema dei Generali Bizantini.
coinbase
Un campo speciale utilizzato come unico input per le transazioni coinbase. Il coinbase consente di richiedere il premio del blocco e fornisce fino a 100 byte per dati arbitrari. Da non confondere con la transazione Coinbase.
coinbase transaction
La prima transazione di un blocco. Viene sempre generata da un miner, include un singolo coinbase. Da non confondere con l’exchange Coinbase.
cold storage
Si riferisce a mantenere una riserva di bitcoin offline. Il cold storage si ottiene quando le chiavi private Bitcoin vengono create ed archiviate in un ambiente offline sicuro. Il cold storage è importante per chiunque abbia aziende che operano in bitcoin. I computer online sono vulnerabili ad attacchi hacker e non dovrebbero essere utilizzati per memorizzare una quantità significativa di bitcoin.
colored coins
Un protocollo Bitcoin 2.0 open source che consente agli sviluppatori di creare risorse digitali sulla blockchain di bitcoin utilizzando le sue funzionalità oltre alla valuta.
conferme
Quando una transazione viene inclusa in un blocco, ha una conferma. Non appena un altro blocco verrà validato nella stessa blockchain, la transazione avrà due conferme, e così via. Sei o più conferme sono considerate una prova sufficiente che la transazione non possa essere annullata.
consensus
Quando più nodi, di solito la maggior parte dei nodi sulla rete, hanno tutti gli stessi blocchi nella loro migliore blockchain validata localmente. Da non confondere con le regole del consensus.
regole del consensus
Le regole di convalida dei blocchi che seguono i full node per restare in consenso con gli altri nodi. Da non confondere con il consenso.
difficoltà
Un’impostazione valida per tutta la rete, che regolamenta quanta potenza computazionale è necessaria per produrre una soluzione proof of work.
retargeting del livello di difficoltà
Un ricalcolo della difficoltà per tutta la rete, che si verifica ogni 2016 blocchi, e tiene in considerazione la potenza di calcolo dei 2016 blocchi precedenti.
livello di difficoltà
La difficoltà a cui tutta la potenza computazionale della rete troverà nuovi blocchi approssimativamente ogni 10 minuti.
double-spending
Il double spending è il risultato di spendere dei bitcoin con successo più di una volta. Bitcoin protegge dalla doppia spesa verificando ogni transazione aggiunta alla catena di blocchi per garantire che gli input per la transazione non siano stati già spesi in precedenza.
ECDSA
Elliptic Curve Digital Signature Algorithm o ECDSA è un algoritmo crittografico utilizzato da Bitcoin per garantire che i fondi possano essere spesi solo dai legittimi proprietari.
extra nonce
Mano a mano che aumentava la difficoltà, i minatori spesso passavano attraverso tutti i 4 miliardi di valori del nonce senza trovare un blocco. Poiché lo script coinbase può archiviare tra 2 e 100 byte di dati, i minatori hanno iniziato a utilizzare quello spazio come spazio extra nonce, consentendo loro di esplorare una gamma molto più ampia di valori di intestazione di blocco per trovare blocchi validi.
commissioni
Il mittente di una transazione, spesso include il pagamento di una tariffa per la rete, che processerà la transazione richiesta. La maggior parte delle transazioni richiede il pagamento di una tariffa minima di 0.5 mBTC.
fork
La fork, nota anche come accidental fork, si verifica quando due o più blocchi condividono la stessa altezza del blocco, dividendo la blockchain in due parti. Tipicamente si verifica quando due o più minatori trovano blocchi quasi nello stesso istante. Può anche essere considerata come parte di un attacco.
genesis block
Il primo blocco della blockchain, utilizzato per inizializzare la criptovaluta.
hard fork
L’hard fork, noto anche come Hard-Forking Change, è una divergenza permanente nella blockchain che si verifica quando i nodi non aggiornati non possono convalidare i blocchi creati dai nodi aggiornati che seguono le nuove regole di consenso. Da non confondere con la fork, la soft fork, la software fork o la fork Git.
hardware wallet
Un portafoglio hardware è una tipologia speciale di portafoglio bitcoin che memorizza le chiavi private dell’utente in un dispositivo hardware sicuro.
hash
L’impronta digitale di un certo input binario.
hashlocks
Un hashlock limita la spesa di un output finché non viene rivelato pubblicamente un certo dato. Gli hashlock hanno la proprietà utile che, una volta che un hashlock viene aperto pubblicamente, è possibile aprire qualsiasi altro hashlock protetto usando la stessa chiave. Ciò rende possibile creare più output che sono tutti legati dallo stesso hashlock e che diventano tutti spendibili allo stesso tempo.
HD protocol
La creazione di chiavi tramite Hierarchical Deterministic (HD) e il trasferimento (BIP32), che consente di creare chiavi ‘figlie’ da chiavi principali in una gerarchia ordinata.
HD wallet
Wallet che utilizzano il protocollo di trasferimento (BIP32) e creazione di chiavi Hierarchical Deterministic (protocollo HD).
HD wallet seed
Il seed di un wallet o il root seed è un valore corto (solitamente una serie di parole) utilizzato come seme per generare la chiave privata principale e il master chain code di un wallet HD.
HTLC
Un Hashed TimeLock Contract o HTLC è una classe di pagamenti che utilizza hashlock e timelock per richiedere che il destinatario di un pagamento riconosca di aver ricevuto il pagamento prima di una scadenza generando una prova di pagamento crittografica o revocando la possibilità di richiedere il pagamento, restituendolo al mittente.
KYC
Know Your Customer (KYC) è il processo di un’azienda che identifica e verifica l’identità dei propri clienti. Il termine è anche usato per riferirsi al regolamento bancario che regola queste attività.
LevelDB
LevelDB è un archivio di valori-chiave su disco open source. LevelDB è una libreria leggera, per uso singolo e per la persistenza, con collegamenti a molte piattaforme.
Lightning Network
Lightning Network è un’implementazione degli Hashed Timelock Contracts (HTLCs) con canali di pagamento bidirezionali che consente di instradare in modo sicuro i pagamenti su più canali di pagamento peer-to-peer. Ciò consente la formazione di una rete in cui qualsiasi peer sulla rete stessa può pagare qualsiasi altro peer anche se non hanno un canale aperto tra loro.
Locktime
Locktime, o più tecnicamente nLockTime, è la parte di una transazione che indica il primo momento o il primo blocco in cui tale transazione può essere aggiunta alla blockchain.
mempool
Il bitcoin Mempool (pool di memoria) è una raccolta di tutti i dati delle transazioni in un blocco che sono stati verificati dai nodi bitcoin, ma che non sono ancora stati confermati.
merkle root
Il nodo radice di un merkle tree, un discendente di tutte le coppie hash nel tree. Le intestazioni dei blocchi devono includere un merkle root valido derivante da tutte le transazioni in quel blocco.
merkle tree
Un tree costruito da hashing di dati accoppiati (le ‘leaves’, foglie), dove vengono associati ed viene effettuato l’hashing dei risultati fino a quando rimane un singolo hash, ovvero il merkle root. In Bitcoin, le foglie (leaves) sono quasi sempre transazioni da un singolo blocco.
miner
Un nodo della rete che trova soluzioni valide alla proof of work per i nuovi blocchi mediante numerosi calcoli
multisignature
Multisignature (multisig) si riferisce a richiedere più di una chiave per autorizzare una transazione bitcoin.
rete
Una rete peer-to-peer che propaga le transazioni e i blocchi a tutti i nodi bitcoin della stessa.
nonce
Il “nonce” in un blocco bitcoin è un campo a 32 bit (4 byte) il cui valore è impostato in modo che l’hash del blocco contenga una serie di zeri iniziali. Il resto dei campi non può essere modificato, in quanto hanno un significato definito.
transazioni off-chain
Una transazione off-chain è il movimento di valore al di fuori della blockchain. Mentre una transazione sulla blockchain, solitamente indicata semplicemente come una transazione, modifica la blockchain e dipende dalla blockchain per determinarne la validità, una transazione off-chain si basa su altri metodi per registrare e convalidare la transazione stessa.
opcode
Codici operativi dal linguaggio Bitcoin Script che trasmettono dati o eseguono funzioni all’interno di un pubkey script o signature script.
Open Assets protocol
L’Open Assets Protocol è un protocollo semplice e potente basato sulla blockchain di Bitcoin. Permette l’emissione ed il trasferimento di risorse create dall’utente. Il protocollo Open Assets è un’evoluzione del concetto dei colored coin
OP_RETURN
Un codice operativo utilizzato in uno degli output in una transazione OP_RETURN. Da non confondere con la transazione OP_RETURN.
transazione OP_RETURN
Un tipo di transazione che aggiunge dati arbitrari ad uno script pubkey che i nodi completi non devono memorizzare nel loro database UTXO. Da non confondere con l’opcode OP_RETURN.
blocco orfano (orphan block)
Blocchi il cui il blocco padre (parent block) non è stato elaborato dal nodo locale, quindi non possono ancora essere completamente convalidati. Da non confondere con il stale block.
transazioni orfane (orphan transactions)
Transazioni che non possono entrare nella pool a causa di una o più transazioni di input mancanti.
output
Output, output di transazione (transaction output) o TxOut è un output in una transazione che contiene due campi: un campo valore per il trasferimento di zero o più satoshi e uno script pubkey per indicare quali condizioni devono essere soddisfatte per quei spendere nuovamente quei satoshi.
P2PKH
Transazioni che pagano un indirizzo bitcoin P2PKH o script Pay To Pubkey Hash. Un output bloccato da uno script P2PKH può essere sbloccato (speso) presentando una chiave pubblica ed una firma digitale creata dalla chiave privata corrispondente.
P2SH
P2SH o Pay-to-Script-Hash è una nuova e potente tipologia di transazione che semplifica in maniera massiccia l’uso di transaction script complessi. Con P2SH lo script complesso che indica la condizione per spendere l’output (redeem script) non è presente nel locking script. Invece, solo un hash di quest’ultimo è presente nel locking script.
indirizzo P2SH
Gli indirizzi P2SH sono codifiche Base58Check dell’hash da 20 byte di uno script, gli indirizzi P2SH utilizzano il prefisso di versione “5”, che risulta in indirizzi codificati Base58Check che iniziano con un “3”. Gli indirizzi P2SH nascondono tutta la complessità, in modo che la persona che effettua un pagamento non veda lo script.
P2WPKH
La firma di un P2WPKH (Pay-to-Witness-Public-Key-Hash) contiene le stesse informazioni di una spesa P2PKH, ma si trova nel campo testimone (witness) invece del campo scriptSig. Anche lo scriptPubKey viene modificato.
P2WSH
La differenza tra P2SH e P2WSH (Pay-to-Witness-Script-Hash) riguarda la modifica della posizione di prova crittografica dal campo scriptSig al campo witness e lo scriptPubKey che viene modificato.
paper wallet
In un senso più specifico, un paper wallet (portafoglio di carta) è un documento contenente tutti I dati necessari per generare un qualsiasi numero di chiavi private di Bitcoin, formando un wallet di chiavi multiple. Tuttavia, molto spesso le
persone utilizzano questo termine per indicare qualsiasi modalità di gestione di bitcoin offline sotto un documento fisico. Questa seconda definizione include inoltre I paper key e I codici sotto forma di codici riscattabili.
payment channels
Un micropayment channel (canale di micropagamento) o payment channel (canale di pagamento) è una classe di tecniche pensate per dare la possibilità agli utenti di effettuare transazioni multiple senza doverle registrare tutte nella blockchain di Bitcoin. In un payment channel tipico, solamente due transazioni vengono aggiunte nella blockchain ma un numero potenzialmente infinito può essere effettuato dai partecipanti.
pooled mining
Il pooled mining è un tipologia di mining dove più client contribuiscono alla generazione di un blocco, e successivamente si dividono il block reward in base alla potenza computazionale data in contributo al gruppo.
Proof-of-Stake
Proof-of-Stake (PoS) è un metodo grazie a cui un network alla base di una criptovaluta punta a raggiungere un consenso distribuito. Proof-of-Stake chiede agli utenti di provare il possesso di un certo ammontare di valuta (il loro ‘stake’ della valuta stessa).
Proof-of-Work
Una porzione di dati che richiede un significativo sforzo computazionale, per essere trovata. In bitcoin, i minatori devono trovare una soluzione numerica all’algoritmo SHA256 che soddisfa un obiettivo stabilito dall’intera rete, la difficoltà calcolata.
ricompensa
Un ammontare, incluso in ogni nuovo blocco, quale ricompensa dalla rete per il minatore che troverà la soluzione Proof-Of-Work. Al momento è pari a 25BTC per blocco.
RIPEMD-160
RIPEMD-160 è una funzione di hash crittografica a 160 bit. RIPEMD-160 è una versione rafforzata di RIPEMD con un risultato hash di 160 bit e dovrebbe essere sicuro per i prossimi dieci anni o più.
satoshi
Un satoshi è la più piccola denominazione di un bitcoin che può essere registrata sulla blockchain. È l’equivalente di 0.00000001 bitcoin e prende il nome del creatore di Bitcoin, Satoshi Nakamoto.
Satoshi Nakamoto
Satoshi Nakamoto è il nome utilizzato da una persona o gruppo di persone che ha pensato e creato il design di Bitcoin e la propria originale implementazione di referenza, Bitcoin Core. Come parte dell’implementazione, lui,lei o loro (Satoshi Nakamoto) hanno creato la prima definizione di database blockchain. Nel processo sono stati I primi a risolvere il problema del double-spending nelle valute digitali. La loro identità rimane ad oggi misteriosa.
Script
Bitcoin utilizza un sistema di scripting per le transazioni. Script è semplice, stack- based e processato da sinistra e destra. È per scelta non-Turing complete, con nessun ciclo.
ScriptPubKey (aka pubkey script)
ScriptPubKey o pubkey script, è uno script incluso negli output che detta le condizioni che devono essere seguite da un certo numero di satoshi per essere spesi. Il dato per seguire tali condizioni può essere inserito in un signature script.
ScriptSig (aka signature script)
ScriptSig o signature script, è il dato generato dal mittente, ed è quasi sempre utilizzato come una variabile per soddisfare un pubkey script.
chiave segreta (o chiave privata)
Un numero segreto che sblocca i bitcoin inviati all’indirizzo corrispondente. Una chiave segreta è rappresentata da una stringa alfanumerica simile a: 6J56sF8L4jTtzE96r66Sf8cka9y44wdpJjMwCxR3tzLh3ibVPxh
Segregated Witness
Segregated Witness è una proposta di aggiornamento del protocollo Bitcoin la cui innovazione tecnologica separa la signature data dalle transazioni bitcoin. Segregated Witness è una proposta di soft fork; un cambio che, tecnicamente, rende le regole del protocollo Bitcoin più restrittive.
SHA
Il Secure Hash Algorithm o SHA è una famiglia di funzioni hash crittografiche pubblicate dal National Institute of Standards and Technology (NIST).
Simplified Payment Verification (SPV)
SPV o Simplified Payment Verification è un metodo per verificare che delle particolari transazioni siano state inserite in un blocco senza la necessità di scaricare l’intero blocco. Questo metodo è utilizzato da una serie di client Bitcoin ‘lightweight’ (leggeri).
soft fork
soft fork o Soft-Forking Change è una fork temporanea nella blockchain che si verifica comunemente quando i minatori che utilizzano nodi non aggiornati non seguono una nuova regola di consenso di cui i nodi non sono a conoscenza. Da non confondere con fork, hard fork, software fork o Git fork.
stale block
Un blocco che è stato minato con successo ma che non è ancora stato incluso nella migliore e più attuale blockchain, probabilmente perché un qualche altro blocco alla stessa altezza ha avuto la propria catena estesa per prima. Da non confondere con orphan block.
timelocks
Un timelock limita la spesa di alcuni bitcoin fino a una specifica ora futura o all’altezza del blocco. I timelocks sono di rilievo in molti contratti di Bitcoin, compresi i canali di pagamento e i gli hashed timelock contracts.
transazione
In parole povere, un trasferimento di bitcoin da un indirizzo ad un altro. Più precisamente, una transazione è una struttura di dati che esprime un trasferimento di valore. Le transazioni sono trasmesse attraverso la rete bitcoin, raggruppate dai minatori ed incluse all’interno di blocchi, registrati permanentemente nella blockchain.
transaction pool
Una serie disordinata di transazioni che non sono ancora incluse in un blocco nella catena principale, ma per cui abbiamo gli input di transazione.
Turing completeness
Un linguaggio di programmazione è chiamato “Turing complete” quando può avviare un qualsiasi programma che una macchina di Turing può avviare, garantendone abbastanza tempo e memoria.
unspent transaction output (UTXO)
UTXO è un output di transazione non speso che può essere speso come un input in una nuova transazione.
wallet
Software che detiene tutti I tuoi indirizzi bitcoin e le relative chiavi private. Viene utilizzato per inviare, ricevere e gestire I tuoi bitcoin.
Wallet Import Format (WIF)
WIF o Wallet Import Format è un formato di interscambio di dati pensato per permettere l’esportazione e l’importazione di una private key con un valore indicante se utilizza o meno una public key compressa.