Skip to Content
SecuritySecurity Model

Security Model

Cryptographic Security

PropertyGuaranteeMechanism
Double-spend preventionOn-chainNullifier set in pool contract — deterministic, permanent
Proof soundnessComputationalGroth16 soundness under discrete log assumption on BN254
Zero-knowledgeStatistical (perfect)Groth16 simulator indistinguishability
Commitment hidingComputationalPoseidon2 preimage resistance
Nullifier unlinkabilityComputationalPoseidon2 with domain separation — nullifier cannot be linked to commitment
Front-running protectionOn-chainextDataHash binds proof to specific recipient and amount
ASP complianceOn-chainMembership/non-membership proofs verified in circuit

Storage Security

DataProtection
Agent private keysAES-256-GCM encrypted in SQLite, per-field key derivation via HMAC-SHA256
Agent notes (amount, blinding)AES-256-GCM encrypted, agent-specific keys
Master encryption keyGenerated on first run, stored in data/secrets.env (file-system level)
JWT secretPersisted in data/secrets.env, not in environment variables

Log Privacy

The proxy never logs:

  • Public keys or wallet addresses
  • Transaction hashes
  • Agent IDs
  • Any data that enables correlation between agents and services

Logs contain only: aggregate counts, timing information, generic status messages.

Audit Status

ComponentStatus
Soroban contractsNot audited
Circom circuitsNot audited (forked from Nethermind’s audited design)
Proxy applicationNot audited
WASM proverBased on ark-groth16  (audited library)
Cryptographic primitivesBN254 and Poseidon2 via Stellar Protocol 25 host functions (SDF-maintained)

Known Attack Vectors

AttackMitigated?How
Malicious proof submissionYesOn-chain Groth16 verification rejects invalid proofs
Double-spendYesOn-chain nullifier set
Stale root attackYes90-entry root ring buffer; proofs against old roots eventually expire
Amount correlationPartialBatching helps; decoy transactions planned for roadmap
Timing correlationPartialBatch window; jitter planned for roadmap
Compromised operatorPartialEncrypted storage; FROST MPC planned for roadmap
Front-runningYesextDataHash in circuit prevents recipient/amount changes
Last updated on