Solution Overview
Core Principles
1. Client-Side Encryption
All encryption and decryption happens in the user's browser or application. The server only ever sees encrypted ciphertext. Users control their keys through:
Password-derived keys (PBKDF2 with 100,000 iterations)
Hardware wallet integration (Ledger, Trezor)
Solana wallet signatures (decentralized key management)
2. Zero-Knowledge Proofs
Users can prove properties about their data without revealing the data itself:
"This dataset passed schema validation"
"This file is under 100MB"
"This document was created before date X"
"This data satisfies condition Y"
3. Hybrid Storage
ZKFile uses a multi-layered storage approach:
IPFS: Content-addressed, decentralized primary storage
Cloud Backup: Encrypted redundancy on AWS S3/Cloudflare R2
Blockchain Metadata: Immutable records on Solana
4. Cryptographic Access Control
Access permissions are managed through digital signatures, not centralized databases:
Time-locked access grants
Usage-limited sharing
Revocable permissions
Audit trails
Last updated