Skip to content

Do this first (this week) ​

Mission: FLASH is the first line of privacy protection while AI is built. Who is responsible.

By default flash-zk is strong. You can weaken it. It stays strong if you keep the key and do not use the knobs below.

On 1.3.x a few switches still exist that weaken the model. Use none of them. They are going away. Do the list below before new features.


1. Seal the master key today ​

Do not put secretKey in source, in npm, or in chat logs.

bash
npm install flash-zk
flashsh wrap-key
echo ".flash-wrap" >> .gitignore
FileCommit?
.flash-takeYes β€” sealed master (FLASHTAKE1)
.flash-wrapNever β€” this unwraps the master
javascript
import { FlashClient } from "flash-zk";

const client = new FlashClient({
  storagePath: "./flash_data",
});

If you still pass secretKey, keep it in a secret manager or env β€” never hardcoded. Prefer wrap files.

Details: flashsh CLI.


2. Do not disable protection ​

These are valid on 1.3.x and wrong for production. Stop using them now so a later engine release does not break you.

StopUse instead
allowPlaintextFields: trueEncrypted fields only
fieldPolicy: { …: "plaintext" }"encrypted" Β· "exact" Β· "searchable" Β· "counter"
engineOptions: { disableMerkle: true }Leave Merkle on
performanceProfile: "turbo" with Merkle offturbo is throughput only β€” set disableMerkle: false until the default changes
Binding 0.0.0.0 without allowPublicBindBind localhost, or set allowPublicBind: true only if you mean a public daemon + strong authKey

FLASH will refuse these knobs. Migrating this week is cheaper than migrating on the cut. The full list of planned raises: Security ahead.


3. Strong secrets on every network surface ​

Minimum 16 bytes, not changeme / secret / password.

  • Remote FlashClient β†’ authKey
  • FlashServer / gRPC / replication β†’ authKey
  • Intelligence Console β†’ token

Weak values already fail closed. Do not look for a bypass.


4. You hold the key β€” protect the holder ​

FLASH cannot decrypt without you. That is the point. It also means:

  • Whoever can read .flash-wrap or the process memory can read data.
  • The Intelligence Console is a local keyholder, not a blind remote admin.
  • Searchable indexes still leak patterns (trapdoors, ranges). Design as if an observer sees structure, not plaintext.

Full limits: Trust Model.


Not this week ​

Do not wait for a post-quantum rename, ORAM, or an external audit before doing the four items above.

Do not add a server-side decrypt β€œfor ops.” That is a backdoor. Query and SQL stay on FlashClient.

Do not invent a second encryption layer on the daemon. The engine is already blind; a second key on the server undoes it.


Next ​

Zero-knowledge encrypted intelligence Β· Apache 2.0