L'articolo menziona 9 strati di file zip, quindi non è un semplice caso di zippare un mucchio di zeri. Perché 9, perché 10 file in ciascuno?
Prima di tutto, l'articolo di Wikipedia attualmente dice 5 livelli con 16 file ciascuno. Non sono sicuro da dove provenga la discrepanza, ma non è poi così rilevante. La vera domanda è perché usare la nidificazione in primo luogo.
DEFLATE, l'unico metodo di compressione comunemente supportato per i file zip *, ha un rapporto di compressione massimo di 1032. Ciò può essere ottenuto asintoticamente per qualsiasi sequenza ripetuta di 1-3 byte. Indipendentemente da ciò che fai in un file zip, purché utilizzi solo DEFLATE, la dimensione decompressa sarà al massimo 1032 volte la dimensione del file zip originale.
Pertanto, è necessario utilizzare file zip nidificati per ottenere rapporti di compressione davvero oltraggiosi. Se hai 2 livelli di compressione, il rapporto massimo diventa 1032 ^ 2 = 1065024. Per 3, è 1099104768 e così via. Per i 5 strati utilizzati in 42.zip, il rapporto di compressione massimo teorico è 1170572956434432. Come puoi vedere, il 42.zip effettivo è lontano da quel livello. Parte di questo è il sovraccarico del formato zip, e parte di esso è che a loro non importava.
Se dovessi indovinare, direi che 42.zip è stato creato semplicemente creando un grande file vuoto e ripetutamente zippandolo e copiandolo. Non c'è alcun tentativo di spingere i limiti del formato o massimizzare la compressione o altro: hanno scelto arbitrariamente 16 copie per livello. Il punto era creare un grande carico utile senza troppi sforzi.
Nota: altri formati di compressione, come bzip2, offrono rapporti di compressione massima molto, molto, molto più grandi. Tuttavia, la maggior parte dei parser zip non li accetta.
PS È possibile creare un file zip che verrà decompresso in una copia di se stesso (un quine). Puoi anche crearne uno che decomprime su più copie di se stesso. Pertanto, se si decomprime in modo ricorsivo un file per sempre, la dimensione massima possibile è infinita. L'unica limitazione è che può aumentare al massimo di 1032 su ogni iterazione.
PPS La figura 1032 presuppone che i dati del file nella zip siano disgiunti. Una stranezza del formato di file zip è che ha una directory centrale che elenca i file nell'archivio e esegue l'offset ai dati dei file. Se si creano più voci di file che puntano agli stessi dati, è possibile ottenere rapporti di compressione molto più elevati anche senza annidamento, ma è probabile che tale file zip venga rifiutato dai parser.