Curvy - Privacy Layer for Token Transfer Routing and Settlement
Fits with patterns (names only)
- Pattern: Private ISO 20022 Messaging & Settlement
- Pattern: Shielded-Pool Atomic Swap (ZK-HTLC)
- Pattern: ZK Shielded Balances for Derivatives
- Pattern: Confidential ERC-20
Not a substitute for
- Not a full privacy rail: it does not hide amounts or token types inherently.
- Not a shielded pool or private balance scheme. Observers may see transfer amounts on-chain.
- Not a cross-chain atomic settlement mechanism (atomic DvP still requires more infrastructure).
Architecture
Stealth addresses:
- Each transaction uses a uniquely derived address so that observers cannot easily link them to the same owner.
- Behind the scenes: sender uses recipient’s public view key + shared secret derivation to compute a stealth address.
View key / Spend key model:
- Curvy wallet generates two key pairs: a view key (private, used to detect funds intended for the user) and a spend key (private, used to control and spend funds).
- Public parts of view/spend keys are exposed to enable stealth address derivation.
Fast detection via view tags:
- Wallets do not scan all chain activity; they use lightweight view tags (small identifier bits embedded in transactions) to tell whether a transaction might belong to them, then use view key to check.
Sender workflow:
- Sender obtains recipient’s public view key or Curvy ID.
- Computes shared secret → stealth address.
- Sends ERC-20 token to stealth address.
Recipient workflow:
- Wallet uses private view key + view tag filtering to notice the stealth address transaction.
- Use private spend key to access funds.
Privacy domains
- Address unlinkability: Multiple transfers use distinct stealth addresses → very hard to link transactions to the same base identity.
- Routing privacy: Curvy adds routing/mixing in wallet flows (though not full on-chain mixing by default).
- Optional compliance / audit: Users can expose view keys to auditors/regulators to show their transaction history without revealing spend control.
Enterprise demand and use cases
- Users / individuals who want simple obfuscated transfers.
- DeFi participants concerned about on-chain linkage.
- Institutions exploring privacy for tokenized funds / internal transfers; may use Curvy for the “send privately” option in tooling, though amount privacy is still an issue.
Technical details
- Smart contract layer: ERC-20 tokens are transferred to stealth addresses (regular addresses; each stealth address is a fresh EOA or contract?), so transfers still show amount and token.
- Key derivation: uses shared secret (Diffie-Hellman-style) between sender’s ephemeral keys and recipient’s view key to compute stealth address.
- View tag: bits/tags in transaction metadata or approximate hash prefix to filter relevant stealth addresses efficiently.
- No zero-knowledge proofs for amount privacy in current version (per docs).
Strengths
- Strong unlinkability on addresses / sender-recipient mapping.
- Excellent UX: automatic stealth address generation, view key handling, minimal friction.
- Multichain support: helps privacy across various EVM chains.
- Optional audit via view key exposure.
Risks and open questions
- Amount visibility: the amounts being transferred still public → competitive exposure remains.
- Stealth address reuse risks: if the same stealth address is reused (or patterns leak), unlinkability suffers.
- View tag leakage: leaks possible via view tag sizes or patterns (if weak entropy, too small tags).
- Regulatory acceptance: whether view-key sharing or optional audit is strong enough for institutional compliance.
- No built-in atomic DvP: doesn’t enforce settlement linkage across chains or between ISO instructions.