Skip to content

Threat Model

This document describes the threat model for SIP Protocol, defining adversary capabilities, trust assumptions, and security boundaries.

We assume a computationally bounded adversary who can:

Network Level

  • Observe all network traffic (global passive adversary)
  • Perform timing analysis on transaction submission
  • Correlate transactions across chains by timing
  • Run malicious nodes on supported networks

Blockchain Level

  • Read all public blockchain data
  • Submit arbitrary transactions
  • Front-run transactions (MEV)
  • Analyze transaction graphs

Application Level

  • Interact with SIP SDK as a legitimate user
  • Attempt to link stealth addresses
  • Try to determine hidden amounts
  • Submit malformed proofs

The adversary CANNOT:

  1. Break standard cryptographic assumptions (ECDLP, SHA-256)
  2. Compromise user devices or extract private keys
  3. Perform quantum attacks
  4. Compromise majority of solver network
  5. Control blockchain consensus (51% attacks)
ComponentTrust LevelJustification
@noble/curvesHighAudited, constant-time
secp256k1 curveHigh20+ years analysis
User’s deviceRequiredLocal key storage
OS CSPRNGHighWell-audited
ComponentTrust LevelNotes
SolversSemi-trustedSee metadata, cannot steal
NEAR chainSemi-trustedLiveness, not privacy
RPC providersLow trustOnly see public data
ComponentNotes
Other usersAdversarial by default
Public mempoolFully observed
Block explorersCorrelate everything
┌─────────────────────────────────────────────────────────────┐
│ User's Device │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Private Key Storage ││
│ │ - Spending private key (MUST never leave) ││
│ │ - Viewing private key (selective sharing) ││
│ │ - Blinding factors (kept until reveal) ││
│ └─────────────────────────────────────────────────────────┘│
│ │ │
│ SDK Operations │
│ - Key generation - Proof generation │
│ - Commitment creation - Stealth address derivation │
│ - Intent building - Address scanning │
└─────────────────────────────────────────────────────────────┘
▼ (Only public data crosses)
┌─────────────────────────────────────────────────────────────┐
│ Public Network │
│ - Commitments (hiding amounts) │
│ - Stealth addresses (unlinkable) │
│ - Ephemeral public keys (for scanning) │
│ - ZK proofs (reveal nothing beyond validity) │
└─────────────────────────────────────────────────────────────┘
Data TypeClassificationExposure
Spending private keySECRETNever
Viewing private keyCONFIDENTIALSelective
Blinding factorsSECRETNever (until opening)
Transaction amountsCONFIDENTIALHidden in commitments
Sender identityCONFIDENTIALHidden via stealth
Recipient identityCONFIDENTIALUnlinkable stealth
Intent parametersPUBLICOutput requirements
ZK proofsPUBLICVerifiable by anyone
CommitmentsPUBLICComputationally hiding
ThreatMitigationResidual Risk
Amount disclosurePedersen commitmentsNone
Sender linkabilityStealth addressesLow (view tag)
Recipient linkabilityOne-time addressesNone
Transaction graphCommitments + stealthMedium (timing)
ThreatMitigationResidual Risk
Forged proofsZK verificationNone
Double spendingOn-chain enforcementNone
Amount manipulationCommitment bindingNone
Key substitutionUser verificationLow
ThreatMitigationResidual Risk
Solver unavailabilityMultiple solversMedium
Network congestionTimeout/retryLow
DoS on proof genResource limitsMedium
ThreatMitigationResidual Risk
Side-channel attacksConstant-time opsLow
RNG failureOS CSPRNGLow
Memory disclosuresecureWipe() + withSecureBuffer()Low
Integer overflowBigInt arithmeticNone

Goal: Link sender to recipient Method: Monitor transactions, analyze timing Defense: Stealth addresses generate fresh one-time addresses Result: Observer sees unrelated addresses

Goal: Steal funds or extract private data Method: Accept intent but not fulfill Defense: Proofs verify without revealing, escrow protects funds Result: Can DoS but cannot steal or learn

Goal: Determine transaction amounts Method: Analyze commitments, look for patterns Defense: Random blinding factors Result: All commitments look random

The following threats are explicitly OUT OF SCOPE:

  1. Endpoint Security - Malware, keyloggers, screen capture
  2. Social Engineering - Phishing, scams
  3. Economic Attacks - Market manipulation, flash loans
  4. Network Attacks - Sybil, eclipse, BGP hijacking
  5. Quantum Threats - Shor’s, Grover’s algorithms
  1. Generate keys on secure devices
  2. Verify addresses out-of-band
  3. Use fresh stealth addresses per transaction
  4. Don’t reuse blinding factors
  1. Never log private keys or blinding factors
  2. Implement proper session management
  3. Use secure random number generation
  4. Clear sensitive data from memory
  1. Focus on key generation and handling
  2. Verify constant-time operations
  3. Check blinding factor generation
  4. Audit proof verification logic