Skip to main content
Draft Specification

Verifiable Compute

An open specification for two-party verifiable computation, layered on WebAssembly.

xkcd 927: Standards. Situation: there are 14 competing standards. We need to develop one universal standard that covers everyone's use cases. Soon: there are 15 competing standards.

Alice and Bob are tired of rewriting their program for every new proving system. — xkcd 927, CC BY-NC 2.5

What this enables

A single abstraction layer for verifiable computation.

Zero-Knowledge Proofs

Prove computation correctness without revealing private inputs.

Two-Party Computation

Both parties contribute private inputs. Neither learns the other's secrets.

WebAssembly Native

Write in Rust, C, or any language that compiles to Wasm. No VM modifications.

Embedder Independent

Decouple business logic from the cryptographic backend.

Standard Toolchains

Compile, test, and debug with the tools you already use.

Formally Grounded

Built on formally specified WebAssembly semantics. Deterministic execution.

Layered on WebAssembly

Guest programs are standard Wasm modules. No annotations required.

Your Application
Standard Toolchain
↓ .wasm
Verifiable Compute
WebAssembly Core
Embedder A
Embedder B
Embedder C

Design Principles

Separate what the computation does from how it is securely implemented.

Write Once, Prove Anywhere

Programs target a single specification. The cryptographic backend is the embedder's concern, not the developer's.

Standard Computation Model

Built on WebAssembly — a formally specified, language-independent VM with structured control flow.

Deterministic

Two conforming embedders always produce the same result for the same module and inputs.

Minimal Surface Area

The core spec defines what, not how. Embedders are free to implement the semantics however they choose.