Skip to main content

Storage Proofs

Pakit anchors storage claims on-chain through the StorageProof pallet (runtime index 38). This page documents precisely what is verifiable today.

Honest Status

Proof typeStatus
Merkle proofs✅ Fully verifiable on-chain
Groth16 (zkSNARK)⛔ Not accepted on-chain — planned (Stage B)
PLONK⛔ Not accepted on-chain — planned (Stage B)
zkSTARK⛔ Not accepted on-chain — planned (Stage B)

The pallet rejects non-Merkle proof types with Groth16NotYetAccepted, and the Pakit connector refuses to submit them. Any documentation suggesting otherwise should be treated as describing the planned interface, not shipped behavior.

The Verifiable Path: Merkle Proofs

Pakit's DAG is a Merkle tree of content-addressed blocks. A Merkle proof demonstrates that a specific piece of content exists within a committed DAG structure:

  1. Commit — Pakit constructs the Merkle tree and computes the root hash for the content
  2. Prove — a proof is generated for the content ID against the root
  3. Verify — the on-chain pallet verifies the proof path cryptographically
  4. Record — the verified proof anchors the storage claim on-chain
from core.zk_storage_proofs import StorageProofGenerator

generator = StorageProofGenerator()

proof = generator.generate_storage_proof(
    content_id="abc123...",
    data_size=1024,
    storage_location="dag",
    proof_type="merkle",
)

is_valid = generator.verify_proof(proof)

Batch proofs

Proofs can be generated for many content items at once, which is more efficient than individual proofs:

batch_proof = generator.generate_batch_proof(
    content_list=[
        {"content_id": "hash1", "data_size": 1024},
        {"content_id": "hash2", "data_size": 2048},
    ],
    storage_location="dag",
    proof_type="merkle",
)

Why Zero-Knowledge Proofs Are Stage B

Real zkSNARK proofs (Groth16/PLONK) and zkSTARKs require proving circuits and trusted setups that are not yet finalized. Rather than ship simulated proofs presented as cryptography, Pakit:

  • Verifies Merkle proofs fully today
  • Rejects other proof types at both the connector and the pallet
  • Tracks production-grade ZK provers as a future work item

Related