Zero-Knowledge Distributed Cloud Memory Pool and Virtual File System
Seamlessly aggregate, encrypt, and pool multiple cloud storage accounts into a unified, secure virtual drive.
Modern cloud storage services offer generous free tiers such as Google Drive's 15 GB allocation per account yet utilizing multiple accounts quickly leads to storage fragmentation, tedious manual file juggling, and awkward credential switching. At the same time, I dislike that facts that current and the future traditional cloud providers retain full visibility into stored files, scanning and indexing user content by default. In simple word, cloud provider will have full access to your cloud-saving content eventhough its your personal area. Therefore this repository exist to restrict that access and unify all of your cloud account as one. If one account have limited space, it could borrow a space from different account. However for all of these features, currently it is only limited to google drive.
CloudPoolZK was created to address these challenges with two core principles:
- Unified Storage Pooling Without Subscriptions: Rather than paying recurring monthly fees or manually splitting large files across separate accounts, CloudPoolZK transparently binds multiple accounts into one cohesive memory pool. When a file exceeds the remaining capacity of one storage node, its remaining parts automatically spill over into the
/remains/partition of another connected node. - Client-Side Zero-Knowledge Privacy: Privacy should not require trusting a third-party server. By performing 256-bit AES-GCM encryption entirely on the local client machine before any byte leaves the system, cloud providers only ever receive opaque, encrypted binary chunks. The master key is derived purely in memory via PBKDF2 and is never transmitted or stored remotely.
CloudPoolZK is a cross-platform desktop application built with C# and .NET 9 Avalonia. It acts as a distributed virtual file system and cryptographic abstraction layer over multi-account cloud storage providers.
Key capabilities include:
- Unified multi-account aggregation into a single pool.
- Automatic file chunking and cross-account spillover storage.
- Client-side Zero-Knowledge AES-256-GCM encryption with PBKDF2 key derivation.
- Windows-style virtual file explorer with sorting, filtering, searching, and media previewing.
- Recursive directory upload, in-app file creation, and instant download reassembly.
The Accounts tab serves as the central dashboard for monitoring collective storage capacity, managing encryption keys, and controlling connected cloud nodes.
- Unified Pool Storage Metric: Live aggregated view displaying total capacity across all connected accounts and real-time utilization percentages.
- Zero-Knowledge Master Passphrase: Configure a custom passphrase derived through PBKDF2 (100,000 SHA-256 iterations) to generate a 256-bit AES-GCM encryption key. Plaintext data and keys are never transmitted to cloud storage.
- Vault Lock and Unlock: Clear master encryption keys from system RAM with one click to protect data during unattended sessions.
- Connected Storage Nodes: Individual account cards displaying primary file counts, remainder spillover chunk counts, and live quota usage progress bars.
- Account Lifecycle Management: Connect new Google Drive accounts via OAuth 2.0 or disconnect existing accounts with automatic local token revocation.
The Manage tab provides a dual-pane file management interface modeled after modern desktop file explorers.
- Dual-Pane Layout:
- Navigation Sidebar: Switch between connected accounts and quickly inspect Root primary storage versus
/remains/spillover allocations. - File Table: Detailed grid presenting file kind badges (
[FILE],[DIR],[CHUNK]), modified timestamps, format descriptions, size, and spillover distribution metadata.
- Navigation Sidebar: Switch between connected accounts and quickly inspect Root primary storage versus
- Interactive Breadcrumbs and Navigation:
- Root navigation shortcut with interactive clickable breadcrumb segments (
Root › Folder › Subfolder). - Instant search bar that filters directory contents in real time.
- Root navigation shortcut with interactive clickable breadcrumb segments (
- Multi-Dimensional Sorting:
- Sort by Name (A-Z / Z-A), Date Modified (Newest / Oldest), Size (Largest / Smallest), Type, and Format with visual selection indicators.
- File Type Filtering:
- Filter by Images, PDF, Video, Text, Folder, Audio, Markdown, and ZIP/Archives.
- Active filter pill with divider line and quick cancellation button.
- Recursive Folder and File Uploads:
- Upload single files or recursively upload entire directory structures with automated chunking and manifest generation.
- In-App Media Previews:
- Built-in Image Preview Viewer with on-the-fly chunk reassembly and decryption.
- Embedded Audio Player and Video Player with system player fallback.
- Document Creation:
- Create new folders, text files (
.txt), Markdown documents (.md), and Word documents (.docx) directly inside the virtual file system.
- Create new folders, text files (
- Context Menus and Row Actions:
- Right-click context menu and hover quick actions for Download, Rename, Make a Copy, File Information, and Deletion.
- Download Progress Monitoring:
- Dedicated download progress bar displaying real-time reassembly status.
From the perspective of Google Drive or any third-party inspecting the cloud storage account, raw plaintext files and folder structures are never visible.
- Files are divided into authenticated, encrypted binary chunks.
- The
/remains/directory stores remainder spillover chunks from other connected nodes without exposing original file identities. - Virtual file system manifests ensure accurate client-side reassembly while preventing metadata exposure on remote servers.
CloudPoolZK follows the Model-View-ViewModel (MVVM) design pattern in Avalonia UI:
CloudPoolZK/
├── CloudPoolZK.Core/ # Core domain and cryptographic engine
│ ├── Crypto/ # AES-GCM (256-bit) and PBKDF2 key derivation
│ ├── Models/ # Virtual FS, manifests, and chunk metadata
│ └── Services/ # Google Drive API and OAuth storage provider
├── CloudPoolZK.UI/ # Avalonia desktop user interface
│ ├── Assets/ # App logo, icons, and visual assets
│ ├── Styles/
│ │ └── AppStyles.axaml # Centralized global design system and styles
│ ├── ViewModels/ # Reactive ViewModels (MainWindow, DriveItem, CloudAccount)
│ ├── MainWindow.axaml # Main window shell and modal overlays
│ ├── AccountsView.axaml # Accounts and vault management UserControl
│ ├── ManageView.axaml # File explorer UserControl
│ └── StorageStrategyView.axaml # Storage strategy & allocation engine UserControl
└── CloudPoolZK.Tests/ # Unit and cryptographic test suites
- .NET 9.0 SDK
- A Google account for Google Cloud Console access
- Open the Google Cloud Console.
- Create a new project (e.g.,
CloudPoolZK-Dev). - Under APIs & Services > Library, search for Google Drive API and click Enable.
- Navigate to APIs & Services > OAuth consent screen.
- Select External and complete the required fields (Application name:
CloudPoolZK, support email, developer email). - Under Test users, click + Add Users and specify the Google email addresses you will use for authentication.
- Save and proceed.
- Go to APIs & Services > Credentials.
- Click + Create Credentials > OAuth client ID.
- Choose Desktop app as the Application type, name the client, and click Create.
- Download the generated client secret JSON file.
- In the root directory of the repository, create a directory named
Keys(alongsideCloudPoolZK.sln). - Move the downloaded JSON file into
Keys/. - Rename the file to
credentials.json:(Note: TheCloudPoolZK/ ├── Keys/ │ └── credentials.json ├── CloudPoolZK.sln └── ...Keys/folder is excluded via.gitignoreto prevent committing private credentials).
dotnet builddotnet testdotnet run --project CloudPoolZK.UI- Zero-Knowledge Design: Chunking, AES-256-GCM encryption, and manifest processing happen locally on the client machine before transmission.
- Key Derivation: PBKDF2 with SHA-256 using 100,000 iterations produces a 256-bit symmetric key from user passphrases.
- Direct Endpoints: All communication occurs directly between the desktop application and Google APIs over HTTPS/TLS without intermediary proxies.
This project is licensed under the MIT License. See LICENSE.txt for terms.



