Security & trust model

What is proven by cryptography, what is enforced by incentives, and what you still have to trust.

What is proven, and by what

ClaimCovered by
The registered model was used, unmodifiedzk proof (fixed params; verifier bound to the circuit) + ModelRegistry
The score follows from the committed featureszk proof (Poseidon feature commitment is a public instance)
The features came from the stated satellite dataNOT the zk proof → reproducible manifest + open challenge game
The scoring rule is scientifically rightNOT cryptography → open methodology + governance

Post-quantum scope (honest)

ElementQuantum-safe?
Manifest attestations (ML-DSA-65, FIPS 204)✅ Yes
Hash commitments (SHA-256, keccak256)✅ Considered safe with sufficient output size
Ethereum transaction signatures (ECDSA)❌ No; outside our control; roadmap: PQ account abstraction
zk proofs (Halo2 + KZG)❌ No (pairing-based); roadmap: hash-based STARK proofs
OverallRecords are double-anchored: forging history requires breaking both ML-DSA and the chain

Trust model (MVP)

ComponentMVP assumptionProduction path
Satellite dataPublic datasets via Earth Engine (fixture samples when no credentials)Multiple providers, data-availability commitments
Feature extractionReproducible manifest; anyone can recompute; challengeablezk/TEE proof of extraction
Model inferenceCryptographically proven (EZKL)PQ-friendly proof system
Challenge resolution2-of-3 resolver multisigStaked, decentralised resolvers
Registry adminMultisig / deployer (testnet)DAO / standards body
SignaturesML-DSA-65 on manifests + ECDSA on txsPQ account abstraction

Measured: ECDSA secp256k1 vs ML-DSA-65

Measured by ai/pq/bench.py on —. Dashes mean not measured.
MetricECDSAML-DSA-65
Public key size——
Signature size——
Sign time——
Verify time——

Measured: zkML (EZKL / Halo2-KZG)

Circuit log-rows—
Input / output scale— / —
Proving time (mean)—
Proof size—
Float vs proven max abs error—
Verifier bytecodesee docs/BENCHMARKS.md

Deployed contracts (chain —)

  • —