Shardium is designed with a zero-trust architecture. This document explains our security model and threat analysis.
Your seed phrase is never transmitted to our servers in its original form:
Browser: seed phrase → Shamir split → 3 shards
Server: only receives Shard C (1 of 3)
Shamir's Secret Sharing provides perfect secrecy:
- 1 shard = 0 bits of information about the secret
- This is mathematically proven, not just "hard to break"
- No future computing advances (quantum, etc.) can change this
| Component | Trust Level | Why |
|---|---|---|
| Your browser | Must trust | All crypto happens here |
| Our server | Minimal | Only stores 1 shard |
| Beneficiary | Minimal | Only has 1 shard |
| Network | None | Shards are useless individually |
Scenario: Attacker gains full access to Shardium database.
Impact: They obtain all Shard C values.
Mitigation: Shard C alone is useless. They cannot recover any seed phrase without Shard B (held by beneficiaries physically).
Risk Level: ✅ Low
Scenario: Beneficiary wants to steal funds before you die.
Impact: They have Shard B.
Mitigation: Shard B alone is useless. They need Shard C, which is only released when the dead man's switch triggers.
Risk Level: ✅ Low
Scenario: Insider tries to steal user funds.
Impact: They have access to Shard C.
Mitigation: Same as server compromise—Shard C alone is useless.
Risk Level: ✅ Low
Scenario: Attacker intercepts traffic between user and server.
Impact: They could capture Shard C during transmission.
Mitigation:
- Use HTTPS (TLS encryption)
- Shard C alone is still useless
Risk Level: ✅ Low (with HTTPS)
Scenario: User's device has malware.
Impact: Malware could capture the seed phrase before splitting.
Mitigation:
- Recommend splitting while offline
- Use a clean/dedicated device
- This is a user responsibility issue
Risk Level:
Scenario: Beneficiary and Shardium employee work together.
Impact: They could combine Shard B + Shard C.
Mitigation:
- Users should trust their beneficiary (they're inheriting anyway)
- Shardium has no way to identify which Shard C belongs to which beneficiary
- Legal consequences for Shardium
Risk Level:
- Split offline: Disconnect internet before entering seed phrase
- Verify the code: Check that you're running official Shardium
- Multiple backups: Store Shard A in multiple secure locations
- Physical Shard B: Print Shard B, don't send digitally
- Dedicated email: Use a separate email for heartbeat notifications
- Test recovery: Verify you can recover with test data first
- HTTPS only: Never run without TLS
- Database encryption: Encrypt at rest
- Access controls: Limit who can access the database
- Audit logs: Log all access to shard data
- Regular backups: Encrypted, off-site backups
Before using in production:
- Conduct a third-party security audit
- Review the
secrets.jslibrary - Penetration test the application
Found a vulnerability? Please email [email protected] (or open a private GitHub issue).
We commit to:
- Acknowledging reports within 48 hours
- Providing updates on fixes
- Crediting researchers (if desired)