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