Overview
zkStorage provides encrypted file storage on IPFS with zero-knowledge proofs for password verification. Files are encrypted client-side before upload, ensuring only you can access your data.How It Works
- Encrypt: Files are encrypted client-side using AES-256-GCM with a key derived from your password.
- Generate Proof: A Groth16 zkSNARK proof is generated proving you know the password without revealing it.
- Upload: Encrypted file is uploaded to IPFS via Pinata with the proof attached.
- Verify: Download requires verifying the ZK proof to decrypt the file.
Terminal Commands
Show Help
Upload File
List Files
Download File
Share File
File Info
Delete File
API Reference
Upload File
List Files
Download File
Create Share Link
Delete File
Technical Details
Encryption
zkStorage uses AES-256-GCM for file encryption:ZK Proof Generation
Groth16 proofs verify password knowledge using Poseidon hash commitments:IPFS Storage
Files are stored on IPFS via Pinata:- Gateway: gateway.pinata.cloud
- Persistence: Files remain pinned indefinitely
- Redundancy: Multiple IPFS nodes
File Limits
| Limit | Value |
|---|---|
| Max file size | 100 MB |
| Encryption | AES-256-GCM |
| Storage | IPFS via Pinata |
Security Features
- Client-Side Encryption: Files encrypted before leaving your device.
- Zero-Knowledge Proofs: Password verified without revealing it.
- AES-256-GCM: Military-grade authenticated encryption.
- SHA-256 Checksums: Verify file integrity on download.
- Time-Limited Sharing: Share links expire automatically.
Error Handling
| Error | Cause | Solution |
|---|---|---|
Invalid proof | Wrong password | Enter correct password |
CID not found | File unpinned | File no longer available |
Checksum mismatch | File corrupted | Re-upload the file |
Proof generation failed | Circuit error | Check password format |