Skip to content

Security Architecture

Stratos Vault implements a defense-in-depth security model designed for enterprise requirements.


Overview

Traditional crypto wallets rely on seed phrases - a fundamentally flawed security model for enterprise use:

Traditional ApproachProblem
Seed phrasesUsers write them down, lose them, or get phished
PasswordsWeak passwords, credential stuffing, phishing
Hardware walletsPoor UX, lost devices, complex backup
Custodial solutionsCounterparty risk, regulatory complexity

Stratos Vault eliminates these issues with WebAuthn passkey authentication.


WebAuthn Authentication

How It Works

┌──────────────────┐         ┌──────────────────┐
│   User Device    │         │  Stratos Vault   │
│  ┌────────────┐  │         │                  │
│  │  Passkey   │  │         │                  │
│  │ (Biometric │◄─┼─────────┼─── Challenge     │
│  │  or Key)   │  │         │                  │
│  └─────┬──────┘  │         │                  │
│        │         │         │                  │
│  Sign Challenge  │         │                  │
│        │         │         │                  │
│        └─────────┼────────>│ Verify Signature │
│                  │         │                  │
└──────────────────┘         └──────────────────┘
  1. User initiates login - Scans fingerprint or uses security key
  2. Cryptographic challenge - Server sends random challenge
  3. Hardware signing - Device signs with private key (never leaves device)
  4. Server verification - Public key verifies signature

Security Properties

PropertyBenefit
Phishing-resistantCredential is bound to origin - fake sites can't use it
No shared secretsServer only has public key - breach doesn't expose credentials
Hardware-backedPrivate key in secure enclave or security key
User-friendlyTouch fingerprint instead of typing passwords
Cross-platformWorks on any modern device

Key Derivation

Blockchain keys are derived from WebAuthn credentials using the PRF extension:

┌─────────────────────────────────────────────────────────────┐
│                   User Authentication                        │
│                          │                                   │
│              WebAuthn PRF Extension                         │
│                          │                                   │
│                    PRF Output                                │
│                     (32 bytes)                               │
│                          │                                   │
│              ┌───────────┴───────────┐                      │
│              │                       │                       │
│         Master Seed            Encryption Key               │
│         (BIP-39)               (Local Storage)              │
│              │                                               │
│     BIP-32/44 Derivation                                    │
│              │                                               │
│    ┌─────────┼─────────┬─────────┬─────────┐               │
│    │         │         │         │         │                │
│   EVM     Solana    Bitcoin    TRON      TON               │
│ m/44'/60' m/44'/501' m/84'/0' m/44'/195'                   │
└─────────────────────────────────────────────────────────────┘

Key Properties

  • Deterministic - Same passkey always derives same addresses
  • No backup required - Re-derive from any device with same passkey
  • Device-bound - Keys only accessible with biometric/security key
  • Memory-only - Keys exist only during signing, then cleared

MPC Signing (Multi-Party Computation)

Stratos Vault supports MPC threshold signing as an advanced security mode. When enabled, private keys are never held in full by any single party - instead, key shares are split between the client and server, and a cryptographic protocol produces valid signatures without ever reconstructing the full key.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     MPC Signing Flow                         │
│                                                              │
│  ┌──────────────────┐              ┌──────────────────────┐ │
│  │   Client Device  │              │   MPC Signer Worker  │ │
│  │                  │              │  (Durable Object)    │ │
│  │  PRF decrypts    │    Round 1   │                      │ │
│  │  client share    ├─────────────>│  Retrieve server     │ │
│  │  (x1 / f(1))    │  Nonce commit│  share from storage  │ │
│  │                  │<─────────────┤  (x2 / f(2))        │ │
│  │  Compute partial │    Round 2   │                      │ │
│  │  signature       ├─────────────>│  Combine partials    │ │
│  │                  │<─────────────┤  Return signature    │ │
│  │  Full key NEVER  │              │  Session zeroed      │ │
│  │  reconstructed   │              │  after use           │ │
│  └──────────────────┘              └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Supported Protocols

Chain TypeProtocolDescription
EVM, Bitcoin, TRON (secp256k1)Lindell 2PC-ECDSAMultiplicative key sharing with Paillier homomorphic encryption
Solana, TON (ed25519)FROST 2-of-2RFC 9591 threshold signatures with Feldman VSS

Lindell 2PC-ECDSA (secp256k1)

Used for chains based on the secp256k1 elliptic curve:

  1. Key Generation - Full key x is split as x = x1 * x2 mod N (multiplicative sharing)
  2. Client holds x1 (encrypted with PRF, stored locally)
  3. Server holds x2 (stored in Durable Object)
  4. Signing uses Paillier homomorphic encryption across 3 rounds:
    • Round 1: Client and server exchange nonce commitments (R1 = k1*G, R2 = k2*G)
    • Round 2: Client sends Paillier ciphertext encoding partial signature
    • Round 3: Server decrypts, computes final (r, s, v) signature

FROST 2-of-2 (ed25519)

Used for chains based on the ed25519 curve:

  1. Key Generation - Polynomial secret sharing f(x) = a0 + a1*x using Feldman VSS
  2. Client holds share f(1) with commitments
  3. Server holds share f(2) with commitments
  4. Signing follows the FROST protocol in 2 rounds:
    • Round 1: Both parties exchange nonce commitments (D, E points)
    • Round 2: Each computes partial signature z_i; server combines into final 64-byte signature

Security Properties

PropertyDetail
No full key reconstructionKey shares are never combined; signing is computed directly on shares
One-time sessionsEach signing session is used exactly once, then deleted
Session expirySessions expire after 30 seconds
Nonce zeroingAll nonces are explicitly zeroed after use
Server isolationServer shares stored in Cloudflare Durable Objects with per-key isolation
Transparent dispatchChain signers use the same API regardless of local or MPC mode

Migration from Local to MPC

Existing users with PRF-only (full-key) wallets can upgrade to MPC:

  1. User authenticates, PRF decrypts the full key
  2. Client splits key into MPC shares (same protocol as keygen)
  3. Server share sent to /api/mpc/keygen
  4. Client share re-encrypted with PRF and stored via /api/mpc/migrate
  5. Database updated: key_type = 'mpc_share', mpc_key_id set

Configuration

MPC is controlled per-instance:

SettingDescription
MPC_ENABLEDFeature flag to enable MPC signing
MPC_SIGNERService binding to the MPC Signer worker
MPC_AUTH_SECRETShared secret for worker-to-worker auth

Administrators can enable MPC via the admin panel, and monitor key status via the /api/mpc/status endpoint (superadmin only).


Session Security

JWT Token Management

  • httpOnly cookies - Not accessible to JavaScript
  • Secure flag - Only transmitted over HTTPS
  • Short expiry - Sessions expire after configured period
  • Server-side invalidation - Can revoke sessions immediately

Session Lifecycle

Register → Create Credential → Issue JWT → Active Session → Expire/Logout

                                    Re-authenticate to extend

Data Protection

Database Isolation

Each Stratos Vault instance has a completely separate database:

DataStorageEncryption
User profilesD1 DatabaseAt-rest encryption
WebAuthn credentialsD1 DatabasePublic keys only
SessionsD1 DatabaseSigned JWTs
Private keys (local mode)Never stored server-sidePRF-encrypted locally
Client key shares (MPC mode)D1 DatabasePRF-encrypted
Server key shares (MPC mode)Durable ObjectIsolated per-key storage

Key Storage Model

Stratos Vault supports two key management modes:

ModeClient StorageServer StorageUse Case
Local (PRF-only)Full key encrypted with PRFNone - no server-side keysSimple deployments
MPC (Threshold)Client share encrypted with PRFServer share in Durable ObjectEnhanced security

In both modes:

  • No seed phrases are ever generated or stored
  • No plaintext keys are persisted to disk
  • Keys/shares exist in memory only during signing, then zeroed

Attack Resistance

Phishing

Traditional: User enters credentials on fake site → Attacker captures credentials

Stratos Vault: Passkey is origin-bound → Fake site gets cryptographic error, not credentials

Credential Stuffing

Traditional: Attacker tries leaked passwords → Some accounts compromised

Stratos Vault: No passwords to stuff → Attack vector eliminated

Server Breach

Traditional: Attacker gets encrypted keys → Offline brute-force possible

Stratos Vault (Local mode): Server has only public keys → No private material to steal

Stratos Vault (MPC mode): Server holds only one key share → Useless without client share and PRF authentication

Man-in-the-Middle

Traditional: Attacker intercepts session → Can replay or hijack

Stratos Vault: Challenge-response with hardware signing → Replay impossible

Device Theft

Traditional: Seed phrase on paper stolen → All funds lost

Stratos Vault: Passkey requires biometric → Thief can't authenticate


Compliance Considerations

Stratos Vault's architecture supports common compliance requirements:

RequirementHow Stratos Vault Helps
MFAPasskeys are inherently multi-factor (possession + biometric)
Audit TrailAll admin actions logged with timestamps
Access ControlRole-based permissions (user/admin)
Data ResidencyDeploy in specific Cloudflare regions
Key ManagementLocal mode: keys never leave device. MPC mode: threshold signing with no single point of compromise

Canton Network for Regulated Assets

For regulated financial instruments, Canton Network provides:

  • Privacy - Data visible only to authorized parties
  • Auditability - Complete transaction history for regulators
  • Determinism - Predictable smart contract execution
  • Interoperability - Controlled sharing between institutions

Security Best Practices

For Administrators

  1. Use hardware security keys for admin accounts
  2. Limit admin count to essential personnel
  3. Review access logs regularly
  4. Configure appropriate session timeouts
  5. Use dedicated RPC endpoints (not public nodes)

For Users

  1. Register passkeys on multiple devices for backup
  2. Use platform authenticators (device biometric) or security keys
  3. Verify transaction details before signing
  4. Report suspicious activity immediately

Next Steps

Enterprise-grade multi-chain wallet infrastructure.