Trust
Don’t trust. Verify.
Alice’s Private Cloud runs on Venice’s confidential-compute infrastructure: your messages are encrypted on your device and only decrypted inside confidential hardware that the app tries to verify. Here’s exactly what happens, what each party can see, and, honestly, what’s proven today and what isn’t yet.
What “private” means
Your message is encrypted on your device before it leaves. It travels as ciphertext through Alice’s proxy and Venice’s infrastructure, and is only decrypted inside a hardware enclave (Intel TDX) that Alice tries to verify. The reply comes back encrypted and is decrypted on your device. Prefer nothing to leave at all? Run Alice fully Local.
What each party can see
| Leaves your device | The model id, ordinary network metadata (IP, timing, sizes), and your prompts and replies, only as ciphertext. |
|---|---|
| Alice’s proxy (Cloudflare) | Ciphertext, the model id, sizes and timing, and the Venice key it attaches. It cannot decrypt, it holds no key of yours, and never logs message bodies. |
| Venice, outside the enclave | Ciphertext and metadata, never your plaintext. |
| Phala / PCCS | Only the public attestation collateral (certificates, TCB info). No prompt, no reply. |
| The enclave (Intel TDX) | The plaintext, the one place decryption happens. Attestation is our evidence about what runs there. |
Fail-closed, no silent fallback
For Private Cloud, every one of these is a refusal, never a fallback to a non-encrypted model:
You see a clear message, “Private Cloud verification failed. No message was sent.” Local and Custom AI keep working.
Status, what’s verified, what isn’t
We won’t claim more than we can prove. This is the honest state today.
| Encryption (AES-256-GCM · ECDH · HKDF) | Implemented + verified, round-trips against production |
|---|---|
| Streaming decrypt, fail-closed, no plaintext shown | Implemented + verified |
| Fresh nonce per send · anti-replay | Implemented + verified |
| DCAP quote verification (signature + TCB) | Implemented, a live attestation returned “UpToDate” |
| Strict TCB policy + debug-mode rejection | Implemented + verified |
| Key ↔ attestation binding | Implemented + verified; deployed version awaits Venice confirmation |
| Measurement pinning mechanism | Implemented + verified |
| Measurement reference values | Externally blocked, needs Venice / dstack governance data |
| NVIDIA GPU attestation | Pending, not implemented; fails closed when required |
Not ready to display “E2EE verified”: measurement pinning isn’t active (no reference values yet) and GPU attestation is unimplemented, so the reachable assurance is attested-unpinned.
Limits and remaining assumptions
- Measurement reference values aren’t available yet, so pinning isn’t active.
- NVIDIA GPU attestation is not verified.
- DCAP verification reduces, but doesn’t remove, trust in Phala’s availability and Intel’s / NVIDIA’s roots.
- We’ve reached out to Venice for the measurement reference values and the attestation-binding confirmation above, and are waiting on their reply.
The source code is public under the AGPL, so anyone can check these claims independently: read the code.