Recuperación de Espacio en Disco (Reclaiming Disk Space)
Una vez que la última transacción en una moneda está enterrada bajo suficientes bloques, las transacciones gastadas anteriores pueden descartarse para ahorrar espacio en disco. Para facilitar esto sin romper el hash del bloque, las transacciones se hashean en un Árbol de Merkle [7][2][5], incluyendo solo la raíz en el hash del bloque. Los bloques antiguos pueden entonces compactarse cortando ramas del árbol. Los hashes internos no necesitan ser almacenados.
Block: Bloque
Block Header (Block Hash): Encabezado de Bloque (Hash del Bloque)
Prev Hash: Hash del Bloque Anterior
Nonce: Valor Temporal
Root Hash: Hash de Raíz
Hash[N]: Hash[N]
Tx[N] (Transaction[N]): Tx[N] (Transacción[N])
Transactions Hashed in a Merkle Tree: Transacciones hasheadas en un árbol
de Merkle
After Pruning Tx0-2 from the Block: Después de podar Tx0-2 del bloque
Un encabezado de bloque sin transacciones ocuparía aproximadamente 80 bytes. Si suponemos que se generan bloques cada 10 minutos, 80 bytes * 6 * 24 * 365 = 4.2MB por año. Con sistemas informáticos típicamente vendidos con 2GB de RAM desde 2008, y la Ley de Moore prediciendo un crecimiento actual de 1.2GB por año, el almacenamiento no debería ser un problema incluso si los encabezados de los bloques deben mantenerse en memoria.