Proofs & settlementLive on mainnet

Attestations settle on-chain; proofs stay honestly staged

Two layers get conflated constantly. Verifier attestations settle escrow on SUM Chain today. The zero-knowledge proof path is real, byte-deterministic, and verifies off-chain — but deliberately is not yet a mainnet-eligibility signal.

The workflow

From result to settled escrow

A verifier signs each result and commits an attestation the chain records permanently, one per session and verifier.

1 · prompt + fee2 · fetch shardsmerkle_root3 · hidden_statesfloat164 · token_id4 bytes LE5 · attestationproof_root6 · verified responseSUM Chainverifier · settlementClientprompt · Ϙ feeOmniNode Aembed · layers[0:N/2]OmniNode Blayers[N/2:] · lm_headSNIP storageGGUF shards · CIDv1
  1. 1

    A client submits a prompt and pays a Koppa fee.

  2. 2

    The entry node fetches model shards from SNIP storage by content address. merkle_root

  3. 3

    Node A runs the embedding and its layer slice, then streams the hidden state to Node B. /omni/tensor-xfer

  4. 4

    Node B finishes the layers and lm_head, decodes a token, and returns it — the autoregressive ping-pong. token_id

  5. 5

    A verifier signs the result and submits an InferenceAttestation to SUM Chain. InferenceAttestation

  6. 6

    The chain records the attestation, settles escrow, and the verified response returns to the client.

On-chain record

A signed digest, deduplicated forever

Each attestation binds a session to a tuple of content hashes, signed under OmniNode's Stage-6 domain. The chain enforces one attestation per (session_id, verifier), no overwrite, and finalizes by block depth.

InferenceAttestationsender == verifieromninode.inference_attestation.v1

attestation.digest

session_id
binds the request
model_hash
model identity
manifest_root
input manifest
response_hash
output commitment
proof_root
verifier proof
verifier_signature
Ed25519 · Stage-6 domain

production-fixedpoint-mlp-v1

Halo2 proof, benchmarked

verify_p95
19.6 ms
verify_p50
17.96 ms
prove_canonical
≈ 2.3 s
end_to_end
≈ 3.0 s
proof.bin
7,744 bytes
params.bin
131,140 bytes
halo2_k
11 · 2048 rows
trusted_setup
none (IPA)

16→32→16→8 int16 fixed-point MLP over the Pasta curves (IPA, no trusted setup). Byte-identical across hosts; the verifier re-derives circuit and verifying-key identity and refuses to load on any drift.

The dormant boundary

The mainnet-approved proof-system list is empty by design (MAINNET_APPROVED_PROOF_SYSTEM_ENTRIES = &[]). Production proofs verify off-chain and are refused for mainnet eligibility until an external cryptographer sign-off lifts the gate. The chain never verifies a zk proof on-chain — it records artifacts opaquely.

Roadmap, clearly labeled

Proof aggregation, on-chain verification, staking, and reward distribution are future work, gated on that sign-off. ezkl was evaluated and rejected on licensing; RISC Zero is unevaluated.
Settlement roles

Who does what on-chain

v1 has no bond slashing — the levers are reward denial, claim withholding, and escrow refund. Disputes resolve by validator quorum over a basis-point threshold of the active PoA set.

Contributor

Performs inference off-chain, produces a signed ContributorResult.

Verifier

Holds the attestation; submits its own ClaimReward. Self-claim only.

Funder

Opens a session with escrow; the sole signer of OpenDispute.

Validators (PoA)

Resolve disputes by quorum over a basis-point threshold.