Expand description
Proof of Storage (PoS) for verifiable content retention.
This module provides a challenge-response protocol for proving that data is being stored without revealing the actual data. This is essential for P2P storage networks where nodes need to prove they’re storing content.
§Features
- Challenge-response protocol for storage proofs
- Efficient verification without requiring full data
- Support for periodic auditing
- Merkle tree-based proofs for large files
- Tamper detection
§Example
use chie_crypto::pos::{StorageProver, StorageVerifier, Challenge};
// Alice stores some data
let data = b"Important data to store in P2P network";
let prover = StorageProver::new(data);
// Bob wants to verify Alice is storing the data
let mut verifier = StorageVerifier::from_data_hash(*prover.data_hash());
verifier.set_merkle_root(*prover.merkle_root());
// Bob creates a challenge
let challenge = verifier.create_challenge_for_chunks(prover.num_chunks());
// Alice generates a proof
let proof = prover.generate_proof(&challenge).unwrap();
// Bob verifies the proof
assert!(verifier.verify_proof(&challenge, &proof).unwrap());Structs§
- Audit
Session - Audit session for periodic storage verification.
- Challenge
- A challenge for proving storage.
- Storage
Proof - A proof of storage.
- Storage
Prover - Storage prover that generates proofs of data possession.
- Storage
Verifier - Storage verifier that checks proofs of storage.
Enums§
- Proof
OfStorage Error - Error types for proof of storage operations.
Constants§
- DEFAULT_
CHUNK_ SIZE - Default chunk size for splitting data (4KB).