Protocol

Proof Lifecycle

A result earns settlement only when its evidence is bound to the exact job, program, input, result, and beneficiary.

Demo warningDemoSquareVerifier recomputes a square directly in Solidity. It tests integration and accounting, not zero-knowledge, privacy, or succinct verification.

1. Commit the request

The requester calls createJob with a program ID, verifier ID, deadline, input envelope, and deposit. The registry hashes the envelope and derives a job ID from the registry address, chain ID, requester, requester nonce, program ID, and verifier ID.

job_id = H(registry, chain_id, requester, nonce, program_id, verifier_id) input_root = H(input_envelope)

2. Execute deterministically

A worker waits for confirmed events, validates the job against local allowlists and limits, then executes the exact program version over the committed input. Reproducible runtimes, content-addressed artifacts, and explicit numerical semantics are requirements for production workloads.

3. Construct evidence

The target architecture converts the execution trace into verifier-specific evidence. A production public statement must bind at least:

  • the host chain and canonical jobId;
  • the program or circuit identity and proof-system version;
  • the exact input and result commitments;
  • the reward beneficiary; and
  • any declared availability or policy commitments.

Beneficiary binding prevents a copied proof from being submitted by another address to redirect payment.

4. Verify and settle

The registry loads the job's verifier record and calls its adapter. If the adapter is active, the deadline has not passed, and the evidence is accepted, the registry records the result once and instructs the vault to credit reward and fee balances.

A proof proves only the encoded statement. Soundness still depends on correct circuits, verification keys, adapters, program specifications, and host-chain execution.

5. Refund failure to settle

If no result settles before the deadline, the job moves to Refunded and the requester receives a claim for the entire locked amount. Expiry is not proof that no computation occurred; it means no acceptable result reached the settlement contract in time.