Struttura di Bitcoin

Blocco e Header

Sono strutture (struct) nel senso del Linguaggio C, in cui Bitcoin è scritto.

Sono relativamente semplici.

Bithead

Merkle Tree

Un albero di Merkle è un albero in cui ogni nodo foglia è etichettato con l'hash crittografico di un blocco di dati e ogni nodo non foglia è etichettato con l'hash crittografico delle etichette dei suoi nodi figli. Gli alberi hash consentono una verifica efficiente e sicura dei contenuti di grandi strutture di dati.

Merkle

Il Merkle Hash punta al nodo radice di un Albero di Merkle in cui sono organizzate le transazioni.

Transazioni

Bitcoin è un metodo di registrazione permanente di transazioni monetarie.

La struttura di una transazione è la seguente.

Bittrans

Il Lock Time indica il numero di blocchi o il timestamp del blocco prima che la transazione possa considerarsi valida.

Valida vuol dire che può essere spesa.

La prima transazione si chiama Coinbase e non è considerata valida se non sono stati prodotti almeno 100 blocchi.

Inputs e Outputs

Una transazione può avere più inputs e più outputs.

Struttura di un input (esempio):

Bitin

Viene importato valore dall'output di indice 0 nella transazione di hash f5d8.... Il campo scriptSig è una procedura codificata per la verifica della firma del generatore della transazione - un algoritmo crittografico complesso.

Nella stessa transazione è incluso un output (esempio):

Bitout

Vengono inviati 50 BTC (5000000000 Satoshi) all'indirizzo esadecimale 4043..., con ulteriori flags di specifica di trattamento.

I valori sono indicati in Satoshi (1 Bitcoin = 100.000.000 Satoshi) per costringere l'uso di un numero intero.