Security Model
Security considerations and disclaimers
Tech Preview Warning
UPP is currently in tech preview on Sepolia testnet. The system has NOT been audited and may contain critical vulnerabilities. Do not use real funds.
Current Status
What's Deployed
| Component | Network | Status |
|---|---|---|
| UPP Contracts | Sepolia | Tech Preview |
| UPP SDK | npm (private) | Alpha |
| Preview App | preview.upd.io | Testing |
What's NOT Ready
- Mainnet deployment: Not yet available
- Security audits: Not yet conducted
- Production use: Not recommended
Security Assumptions
UPP's security relies on:
Cryptographic Assumptions
| Assumption | Primitive | Consequence if Broken |
|---|---|---|
| Discrete log hard | BabyJubJub | Spending keys compromised |
| Collision resistance | Poseidon | Note forgery possible |
| Proof soundness | Groth16 | Invalid transactions accepted |
| Encryption security | AES-GCM | Note contents exposed |
All primitives provide ~128 bits of security against known attacks.
Trust Assumptions
| Component | Trust Required | Impact |
|---|---|---|
| Smart contracts | Code correctness | Fund safety |
| Trusted setup | Toxic waste destroyed | Proof forgery |
| ASP operators | Honest list maintenance | Compliance accuracy |
| Frontend | No malicious injection | Key safety |
What We Don't Trust
- Observers: Cannot see transaction details
- Miners/validators: Cannot censor specific users (ZK hides identity)
- Other users: Cannot steal or forge notes
Known Limitations
Privacy Limitations
Metadata leakage:
- Transaction timing is visible
- Gas costs may reveal operation type
- Shield/unshield amounts are public
Anonymity set:
- Privacy improves with more pool usage
- Small anonymity sets reduce privacy
- Unique amounts may be linkable
Timing analysis:
- Quick shield→unshield may be linkable
- Pattern analysis possible over time
Functional Limitations
No partial withdrawals:
- Must withdraw entire note
- Create change note if needed
Proof generation:
- 10-30 seconds per proof
- Requires significant device resources
- May be slow on mobile
Scanning:
- Must scan entire history for balance
- Slow for new users with old pools
Threat Model
Threats Mitigated
| Threat | Mitigation |
|---|---|
| Balance exposure | Notes are encrypted |
| Transaction tracking | Stealth addresses, ZK proofs |
| Double spending | Nullifier tracking |
| Note forgery | ZK proof verification |
| Unauthorized spending | Spending key requirement |
Threats NOT Mitigated
| Threat | Why Not |
|---|---|
| Key compromise | User responsibility |
| Malicious frontend | Trust in app |
| Trusted setup corruption | Ceremony integrity |
| 51% attack | Chain security |
| Quantum computers | Future concern |
Responsible Disclosure
If you discover a security vulnerability:
- Do not publicly disclose until fixed
- Do not exploit the vulnerability
- Contact us via Telegram (DM an admin)
- Include detailed reproduction steps
- Allow reasonable time for fix
We appreciate security researchers helping improve UPP.
Bug Bounty
A formal bug bounty program will be announced before mainnet launch.
Audit Status
Planned Audits
| Scope | Auditor | Timeline |
|---|---|---|
| Smart contracts | TBD | Before mainnet |
| ZK circuits | TBD | Before mainnet |
| Cryptographic review | TBD | Before mainnet |
Previous Reviews
None yet - tech preview stage.
Operational Security
For Users
Protect your keys:
- Never share spending keys
- Store backups securely
- Use hardware wallets when possible
Verify transactions:
- Check recipient addresses carefully
- Verify amounts before signing
- Use official interfaces only
Stay updated:
- Follow official channels for security updates
- Update SDK/app promptly
- Be aware of phishing attempts
For Developers
SDK usage:
- Always use latest SDK version
- Validate all inputs
- Handle errors gracefully
- Never log sensitive data
Integration:
- Audit integration code
- Test on testnet first
- Monitor for unusual activity
Testnet vs Mainnet
Testnet (Current)
- Test tokens only (no value)
- Bugs expected
- May reset without notice
- Not for sensitive data
Mainnet (Future)
- Real value at stake
- Audited code
- Production monitoring
- Incident response plan
Disclaimers
No Warranty
UPP is provided "as is" without warranty of any kind. The developers are not liable for any losses resulting from use of the software.
Not Financial Advice
Nothing in this documentation constitutes financial, legal, or tax advice. Consult professionals for your specific situation.
Regulatory Compliance
Users are responsible for complying with applicable laws and regulations in their jurisdiction. UPP provides tools for compliance but does not guarantee regulatory approval.
Experimental Technology
Zero-knowledge cryptography and privacy-preserving finance are emerging fields. Unforeseen issues may arise. Use at your own risk.