Self-Sovereign Identity Design Patterns
Identified SSI Design Patterns
Trusted Registries
- Public Institution Registry
- Trusted Schemas Registry
- Status Registry
- DID Registry or Identifier Registry
- Identifier-Attribute Registry
- Blockchain Anchor
Onboarding
- Onboarding or DID registration
- Linking onboarding with credential issuance
Verifiable Credentials and Presentations
- Verifiable ID (V-ID)
- Verifiable Attestation (VA)
- Verifiable Mandate (VM)
- Verifiable Accreditation (VAcc)
- Verifiable Authorization (VAuth)
- Selective Content Generation
- Selective Content Disclosure
- Time-Constrained Access
- One-Off Access
- Expiration Time
- Effective Time
Decentralized Identifiers and Cryptographic Keys
- Multiple Registration
- Blockchain and Social Media Account Pair
- Public DIDs or Anywise DIDs
- Pairwise DIDs (and N-wise DIDs)
- Static DIDs
- Dual Resolution or DID Resolution
- Delegate List
- DID Controller
- Master and Sub Key Generation
- Key Shards Patterns
Qualified Electronic Certificates
- Qualified Verifiable Credentials
- Binding VCs and QECs
- Binding DIDs and QECs
Wallet and Off-Chain Storage
- Hot and Cold Wallet Storage,
- Local (Private) Storage
- External (Remote) Cloud Storage
Patterns Definition
The file SSI_DesignPatterns.xlsx
defines each pattern using the Alexander pattern template, including (i) name, (ii) summary, (iii) context, (iv) problem, (v) forces, (vi) solution, (vii) example of application, (viii) resulting context, (ix) related patterns, and (x) known use cases. Additionally, each pattern was also classified into a representative category.
Patterns Connection Visualization
The ssi-pattern-connections-visualization/ssi-patterns
folder contains a project visualizing identified SSI design patterns connections. It can be installed locally likewise:
git clone https://github.com/spelacu/ssi_patterns.git
cd ssi_patterns\ssi-pattern-connections-visualization
npm install
cd ssi-patterns
npm install
npm start