Learn
MINING ON IRYS
Matrix Packing

Matrix Packing

Packing adds cryptographic fingerprints to stored data, proving miners provide unique resources. This prevents adversarial claims of false storage capacity. Irys introduces Matrix Packing, a novel approach to data verification. This method ensures miners provide unique storage resources while deterring adversarial behavior.

This approach offers several benefits:

  • Scalable performance across devices
  • Lower storage fees
  • Consistent verification times
  • Enhanced security without computational intensity

Here’s how it works:

StepNameDescription
1Data Partitioning

Data is logically partitioned into 16TB partitions, suitable for individual 16TB HDDs.

2Chunk Division

Each partition is divided into 256KiB chunks, which are used during mining to produce hashes.

3Segment Creation

Each 256KiB chunk is further divided into 32-byte segments containing packing entropy from a SHA-256 hash.

4Sequential Hashing

Segments are hashed sequentially; each segment's hash input is the output of the previous segment. Sequential hashing establishes a minimum packing time by requiring 8,192 hashes per chunk.

5Layered Hashing

Repeated sequential hashing creates multiple layers of segments, storing the final layer in the chunk.

Advantages

Irys's Matrix packing operates in parallel, enabling simultaneous chunk processing while maintaining safe individual packing times. This ensures reading packed data is always more economical than packing. Uniquely, Matrix Packing allows fingerprinting of empty capacity, rewarding miners for preparedness. When needed, data is swiftly XOR'd into existing packing, eliminating repacking and ensuring rapid, cost-effective data ingress.

This innovative approach optimizes network efficiency and resource utilization

Blocktimes

The safe minimum time for Matrix Packing and unpacking sets a lower limit on block validation time for miners. This establishes a minimum block time for the network, approximately 3 seconds. However, as Proof of Work block times typically range from 9-12 seconds, this constraint doesn't negatively impact network performance.