SSIMPL Specification – W3C Submission Draft
1. Overview
The SSIMPL protocol defines a Self-Sovereign Identity & Mondial Pseudonymous Ledger framework that allows individuals to maintain control over their digital identity while enabling verifiable credential issuance and revocation. It bridges physical trust anchors (e.g., ePassports) with digital identity systems, ensuring cryptographic verification without reliance on centralized authorities.
SSIMPL addresses two key problems:
- User control over digital identity – eliminating reliance on centralized identity providers.
- Verification of identities – ensuring online credentials correspond to real individuals using cryptographic proofs.
The protocol balances decentralization, peer authority, and optional server-assisted synchronization for efficiency and availability.
2. Identity Trust Model
SSIMPL identities are rooted in cryptographically verifiable credentials derived from Trust Anchors (TA), such as government-issued ePassports. A valid wallet:
- Scans a Trust Anchor (TA) via NFC.
- Performs an Active Authentication (AA) challenge.
- Derives a Verifiable Credential Root (VCR) tied to the user’s DID.
- Publishes this Verifiable Credential Root to Relay Peers.
This ensures only owners of verified physical credentials can create valid DIDs.
2.1 Levels of Authentication
- Level 0: DID confirms human ownership (bot detection).
- Level 1: Level 0 + unverified attributes requested via scope.
- Level 2: Level 1 + verified credentials requested via scope.
3. Components
- Peers: Mobile devices with the wallet installed.
- Relay Peers: Servers that act both as Peers and distribution points, allowing other Peers to sync their ledger.
4. Wallet Requirements
Wallets MUST:
- Perform NFC scans of Trust Anchors.
- Support Active Authentication challenge verification.
- Derive BIP32 keypairs from a BIP39 mnemonic.
- Sign and manage the Verifiable Credential Root.
- Generate DIDs compliant with
did:keyfor interoperability. - Support JWT issuance and asymmetric key exchange.
Wallets SHOULD:
- Encrypt credentials for local storage.
- Store additional credentials such as DG11 for user convenience.
- Send their signed VCR to Relay Peers.
4.1 Activation Process
- User installs wallet.
- Wallet prompts for MRZ line.
- NFC scan and extraction of passport data.
- Creation of Verifiable Credential Root.
- BIP39 mnemonic generation.
- BIP32 keypair derivation and storage.
- Signing of the VCR.
- Submission of the VCR to a Relay Peer.
5. Ledger Specification
The SSIMPL ledger is a deterministically canonical, peer-replicated structure tracking valid DIDs, maintained across Peers and Relay Peers.
5.1 Ledger Goals
- Track valid DIDs without a central authority.
- Support bounded state and deterministic pruning.
- Enable single-peer verification.
- Eventual consistency via optional gossip or client/server synchronization.
- Mobile-friendly operation for large ledgers (5–30 GB).
5.2 Ledger Entries
Each DID Registration Entry contains:
data– Core credential and cryptographic proofs.signature_document– Signature verifying the integrity ofdata.
data object contains:
verifiable_credential_root(did,did_expiry,ta_hash).proof(DG15,AASignature,AAChallenge,SOD).
signature_document contains:
message– Hasheddata.signature–{ public_key, algorithm, value }.signer– DID of signing entity.
5.3 Ledger State and Canonical Construction
- Filter expired entries based on
did_expiryandGRACE_PERIOD. - Normalize entries into canonical byte format.
- Sort lexicographically by
did_expirythen byhash(did). - Compute
root_hashusing a Merkle tree over the current, complete, pruned ledger.
5.4 Ledger Validation Rules
An entry is valid if:
current_time < did_expiry + GRACE_PERIOD.HASH(verifiable_credential_root.data)equalsverifiable_credential_root.signature_document.message.- The public key in the DID matches
signature_document.signature.public_key. - Signature verification succeeds:
verify_signature( verifiable_credential_root.signature_document.message, verifiable_credential_root.signature_document.signature.value, verifiable_credential_root.signature_document.signature.public_key, verifiable_credential_root.signature_document.signature.algorithm )
Expired or invalid entries are ignored and removed during canonical construction.
5.5 Pruning and Mutability
-
Peers MAY remove their own entries and expired entries. To revoke a DID:
-
Remove the DID from the local ledger.
-
Submit a revocation payload to Relay Peers, containing:
-
data–{ did, effective_epoch, previous_root_hash, new_root_hash, signature_by_did_key }. -
signature_document– Signature verifyingdata. -
Peers MUST NOT remove valid entries or modify others' entries.
- Deterministic pruning ensures consistent ledger state across peers.
5.6 Synchronization
- Peers exchange
(epoch, root_hash)metadata. - Matching hash: No action required.
- Hash mismatch: Request missing entries or snapshots.
- Iterative delta exchange ensures eventual convergence.
- Relay Peers act as distribution points while also validating entries.
- Stateless Relay Peers may bootstrap from peers but should persist data for efficiency.
5.7 Security Properties
- Single-peer revocation verification.
- Privacy-preserving registration.
- Resistance to illegal pruning and tampering.
- Bounded state growth.
- Eventual convergence under client/server synchronization.
6. Conclusion
SSIMPL provides a self-sovereign identity framework with a deterministic, peer-validated ledger, enabling secure, verifiable DIDs anchored in government-issued credentials.
All entries and operations are canonical, rule-derived, and independently verifiable by peers, ensuring a fully trustworthy and decentralized identity ecosystem.