Verification Protocol

How compute results are verified across the network

Experimental Feature

This feature is experimental and may change significantly in future versions.

Overview

The verification protocol ensures that all compute results can be independently validated without trusting any single party. It combines cryptographic proofs with multi-validator attestation for robust guarantees.

Verification Layers

Layer 1: Cryptographic Proof

Mathematical proof that the computation was performed correctly. Cannot be forged without breaking cryptographic assumptions.

Layer 2: Validator Attestation

Multiple independent validators verify and sign the result. Requires collusion to forge.

Layer 3: Consensus Anchoring

Results are anchored to the consensus layer for immutability and global ordering.

Verification Flow

// Verification pseudocode
async function verifyReceipt(receipt: ComputeReceipt): boolean {
  // Step 1: Verify cryptographic proof
  if (!verifyProof(receipt.proof, receipt.input_hash, receipt.output_hash)) {
    return false;
  }
  
  // Step 2: Check validator attestations
  const validAttestations = receipt.attestations.filter(
    a => verifySignature(a, validators[a.validator_id])
  );
  
  if (validAttestations.length < QUORUM_THRESHOLD) {
    return false;
  }
  
  // Step 3: Verify consensus anchoring
  return await checkConsensusAnchor(receipt.job_id);
}

Security Guarantees

  • Forgery requires breaking cryptographic assumptions OR corrupting a quorum of validators
  • Replay attacks prevented by unique job IDs and timestamps
  • Double-spending of compute results prevented by consensus ordering