Protocol Mechanics
Matrix Packing
Before a miner can use a partition for storage and mining, the partition is prepared through Matrix Packing.
Matrix Packing embeds miner-specific entropy into the partition, ensuring that each replica is uniquely tied to the miner that stores it.
Data within a partition is divided into 256 KiB chunks. Each chunk is further divided into smaller segments. These segments are hashed sequentially, with each hash depending on the result of the previous segment.
Because of this dependency structure:
- Modifying any segment invalidates the entire chunk
- Producing a valid replica requires performing the full hashing process using the miner's embedded entropy
- Replicas cannot be reused across miners
Matrix Packing is parameterized so that unpacking and deserializing a chunk requires a predictable minimum amount of work.
Unpacking is designed to take approximately 3.5 seconds per chunk. This creates a lower bound on how quickly certain proofs can be generated and prevents "instant" reconstruction strategies during verification.
Storage proofs remain enforceable because generating valid proofs requires performing this bounded amount of work.
Implementation note
To avoid repacking entire partitions when new data is added, the protocol supports incremental integration of new data into prepared storage. This reduces upload latency while preserving the verification properties established during packing.