Récupérer de l'espace disque (Reclaiming Disk Space)
Une fois qu’une transaction récente a été suffisamment enfouie sous plusieurs blocs, les transactions antérieures dépensées peuvent être éliminées afin de libérer de l’espace disque. Pour y parvenir sans modifier l’empreinte numérique du bloc, on regroupe les transactions sous forme d’arbre de Merkle [7][2][5], dont seule la racine est incluse dans le hachage du bloc. Les blocs plus anciens peuvent alors être allégés en supprimant les branches inutiles de cet arbre, et il devient inutile de conserver les hachages internes.

Block: Bloc
Block Header(Block Hash): En-tête de bloc (Hash de bloc)
Prev Hash: Hash du bloc précédent
Nonce: Valeur temporaire
Root Hash: Hash racine
Hash[N]: Hash[N]
Tx[N]: Transaction[N]
Transactions Hashed in a Merkle Tree: Transactions hachées dans un arbre
de Merkle
After Pruning Tx0-2 from the Block: Après l’élagage des transactions
Tx0-2 du bloc
Un en-tête de bloc dépourvu de transactions pèserait autour de 80 octets. En prenant l’hypothèse que les blocs sont générés toutes les dix minutes, cela nous donne 80 octets * 6 * 24 * 365 ≈ 4,2 Mo par an. Étant donné qu’en 2008, les ordinateurs étaient généralement commercialisés avec 2 Go de RAM et que la loi de Moore prévoit une augmentation annuelle d’environ 1,2 Go, il n’y aurait pas de difficulté de stockage, même en conservant tous les en-têtes de blocs en mémoire.