Security

Trust an open network of strangers' GPUs

Anyone can run a node, so the protocol assumes nodes may lie. Four independent checks catch bad output, a reputation score compounds the signal, and stake gets slashed when fraud is proven on-chain — honesty is simply the cheaper strategy.

Four layers of verification

A · Statistical re-runs

~5% of jobs are re-run on oracle-controlled nodes and compared by embedding cosine similarity (not hashes — floating-point makes exact matches impossible). Below 0.70 flags an anomaly and opens a dispute.

B · Format & length

100% of jobs get cheap deterministic checks — non-null, correct format, token count in range, no repeated-token loops. Violations penalize reputation instantly, no dispute needed.

C · Economic stake

Every node posts ≥100 $QAIS as slashable collateral. A node earning cents per job won't risk thousands in stake to cheat — the math favors honesty.

D · Requester feedback

Requesters submit a satisfaction signal, weighted by their own reputation. A soft input only — it nudges the score but can never trigger a slash on its own.

Before each job, a node publishes a signed commitment to hash(model_id · weights_hash · backend · node_id) — proving which model ran without revealing the output.

Reputation — five weighted dimensions

One score in [0, 1], a weighted blend of five signals. Accuracy uses a single exponential moving average, so a node earns trust gradually and loses it fast — anomalies and lost disputes decay the score 10–20× quicker than a normal pass.

Accuracy40%
EMA of verified job outcomes (sampled re-runs)
Uptime25%
Availability over a 30-day rolling window
Latency15%
P95 response time vs the network median
Longevity10%
Active days, saturating at one year
Stake10%
Staked $QAIS, saturating at 10,000

New nodes start at 0.70. The composite score gates matching and pricing — a low score simply wins fewer jobs — but never triggers a slash on its own. Snapshots commit on-chain every 24 hours.

Slashing

Proven bad behaviour burns stake. A verified-bad result slashes 1%; losing a dispute slashes 20% of the node's stake (split below). Soft signals — uptime, latency, accuracy trends — move the reputation score, not the stake.

ViolationStake slashed
Verified-bad result (Layer-B or Layer-A caught a bad output)1% of stake + job refunded
Lost dispute — FAST oracle or STANDARD commit-reveal panel20% of stake
Stake drops below the 100-$QAIS minimum after a slashnode suspended until re-staked

50% — burned

Slashed stake is partly destroyed, deepening the deflationary pressure.

30% — challenger

The party who raised a winning dispute is rewarded from the slash.

20% — treasury

The remainder funds protocol operations.

Disputes — commit-reveal arbitration

Contested jobs go to a five-member panel drawn from the staked arbitrator pool. Votes are committed as hashes, then revealed together — no arbitrator can copy another's vote, killing herd bias.

  1. File. The protocol's verification oracle raises a dispute against a provider, posting a 50 $QAIS bond (refunded on a win, burned on a loss).
  2. Commit (48h). Five arbitrators from the staked pool each submit hash(vote · salt). No one sees another's choice.
  3. Reveal (24h). Everyone reveals vote + salt simultaneously; a 3-of-5 supermajority decides the outcome.
  4. Resolve. A challenger win slashes 20% of the provider's stake; the winning-side revealers split a reward carved from it (a silent panel returns the bond and slashes no one). The design grades each vote against the oracle-verified truth — rewarding a correct dissenter most — which is computed off-chain today.

On-chain contracts

Nine contracts, OpenZeppelin-based (AccessControl · ReentrancyGuard · Pausable · SafeERC20), deployed directly — non-upgradeable today, with admin/pauser held on a separate cold key (a multisig + timelock is the mainnet plan). Live on Arbitrum Sepolia:

ContractResponsibilityAddress
QUAISTokenERC-20 with burn(); fixed 1B supply, no mint after genesis.0x5532663db25531
NodeRegistryStake, tiers, reputation storage, suspension/deactivation.0xe967447434e99a
JobEscrowPer-job fund locking, verified release, refunds, job records.0x9a8be9ad303267
DisputeResolutionFAST-track dispute hook: oracle auto-resolve + 20% slash, split burn/challenger/treasury.0x546b548b8d8013
ProtocolTreasuryFee accrual, burn execution, staker + operations allocation.0x83acf7b9903fa2
CreditAccount supportPre-funded deposits + EIP-712 capped batch settlement.0xc148e3d34c8191
StakingRewards supportDistributes the 20% staker share of protocol fees.0x8fa6ec116b648f
ArbitratorPool supportStaked arbitrator set for the STANDARD dispute track; join / slash / enumerate.0x78c93be48ab67b
StandardArbitration supportSTANDARD-track 5-member commit-reveal panel; reward/slash settlement.0xe1f2b0b0a719e1

Settlement can't over-charge you

Requesters pre-fund a credit account, then sign one EIP-712 spending cap off-chain. The gateway batches thousands of jobs into a single settlement transaction, but can only ever settle at the prices in your signed job specs — and never beyond the cap. Worst case, a compromised gateway settles agreed work; your principal is never at risk, and you can revoke in one transaction.

Figures reflect the protocol design in the token economics spec; parameters are governance-adjustable and the network is currently testnet only.