"Airbnb for data storage: A decentralized platform for secure, encrypted data sharing using blockchain and zero-knowledge proofs."
ShareVault is a decentralized data storage platform that allows users to securely share and retrieve data. By leveraging blockchain technology, encryption, and zero-knowledge proofs, ShareVault ensures:
- Data Privacy: Files are encrypted and fragmented for secure storage.
- Data Integrity: Zero-Knowledge Proofs (ZKPs) verify storage without exposing content.
- Decentralization: Data fragments are distributed across peer-to-peer storage nodes.
- Fair Compensation: Storage providers earn cryptocurrency for securely hosting data.
- Encrypted Fragmentation: Files are split into encrypted fragments using erasure coding techniques.
- Zero-Knowledge Proofs: Ensure storage without revealing data content.
- Blockchain Integration: Payments and metadata storage powered by Ethereum/Polygon.
- Decentralized Storage: IPFS/Filecoin for distributed, resilient data storage.
- Redundancy & Resilience: Redundant data fragments ensure reliable retrieval.
- Frontend: React.js, Next.js
- Backend: Node.js
- Blockchain: Ethereum, Polygon, Solidity Smart Contracts
- Storage Layer: IPFS/Filecoin
- Zero-Knowledge Proofs: zk-SNARKs/zk-STARKs Libraries
- Data Encoding: Reed-Solomon Codes
- Data Upload:
- Files are uploaded and split into encrypted fragments.
- Fragment Distribution:
- Fragments are distributed across decentralized storage nodes.
- Proof of Storage:
- Nodes use ZKPs to prove they securely store fragments.
- Data Retrieval:
- Users retrieve encrypted fragments, which are reassembled and decrypted.
- Payment Mechanism:
- Storage providers earn cryptocurrency for their contributions.
- Node.js and npm/pnpm
- Truffle
- Ganache or a testnet (e.g., Polygon Mumbai)
- IPFS/Filecoin Node
-
Clone the repository:
git clone https://github.com/your-username/sharevault.git cd sharevault
-
Install dependencies:
pnpm install
-
Configure the Truffle project:
- Update truffle-config.js with your blockchain network details (e.g., Polygon Mumbai).
-
Deploy the smart contracts:
truffle migrate --network <network_name>
-
Start the frontend: (WIP)
npm run dev
ShareVault employs:
- AES Encryption: Protects data fragments, ensuring only authorized users can decrypt them.
- zk-SNARKs: Validates secure storage without revealing fragment contents.
- Smart Contracts: Ensures tamper-proof metadata management and payment processing.
- Scalability: Integrate advanced zk-STARKs for improved performance on large datasets.
- Mobile Support: Develop cross-platform mobile applications for easier access.
- Real-Time Monitoring: Introduce enhanced redundancy and monitoring mechanisms to track data availability.
This project is licensed under the MIT License. See the LICENSE
file for details.