Dispatch 003
Edge verification, measured at 8.6 ms
Grideōs measured its edge verifier checking a Groth16 proof in 8.6 milliseconds. What that makes possible, and what it does not.
Ironwall's verifier runs at edge.grideos.com. A #![no_std] Rust module compiled to WebAssembly checks Groth16 zero-knowledge proofs over the BN254 curve inside a single Cloudflare Workers isolate. A valid proof receives a signed JWT; an invalid one is rejected.
The numbers
- Groth16 verification: 8.6 ms
- WebAssembly binary after wasm-opt: 381 KB
- Warm round trip: about 123 ms
These are Grideōs' own measurements, first published in the ironwall-edge-bench repository on 8 April 2026, which also lists a cold-start round trip of about 298 ms and invalid-proof rejection in about 76 ms. No third party has validated them yet.
How a request is checked
A request carries 256 bytes: a 128-byte compressed Groth16 proof followed by four 32-byte BN254 scalars: nonce, timestamp, attestation_hash and y. Proofs outside a 500 ms window are rejected, and so are nonces the verifier has already seen, which limits replay of a captured proof. In the current version that nonce check is kept in memory.
What it makes possible
Verification fast enough to sit in the request path means a system can check a proof on every call, at the edge, instead of trusting a token issued somewhere else. That is the property Grideōs systems are designed to rely on when a record has to be checked by someone who cannot see the private data behind it.
What it does not do
Fast verification is one part of a trust layer, not the whole of it. The figures describe the verifier, not a complete product, and they are not a service-level commitment. The source is public: ironwall-verifier on GitHub.
All dispatches · Facts ledger · Markdown
Bring us a problem.
Tell us about the work, where it gets stuck, and who has to trust the record afterwards. Grideōs reads every brief and replies by email within two business days. You can also write to info@grideos.com. How we handle what you send: privacy notice.