Module pos

Module pos 

Source
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§

AuditSession
Audit session for periodic storage verification.
Challenge
A challenge for proving storage.
StorageProof
A proof of storage.
StorageProver
Storage prover that generates proofs of data possession.
StorageVerifier
Storage verifier that checks proofs of storage.

Enums§

ProofOfStorageError
Error types for proof of storage operations.

Constants§

DEFAULT_CHUNK_SIZE
Default chunk size for splitting data (4KB).

Type Aliases§

PosResult