Decentralized Identities and their methods
Based on W3C’s Decentralized Identifiers specs, Terminal 3 supports the creation and use of decentralized identifiers (DIDs).
DIDs are identifiers that enable verifiable, decentralized digital identities. A DID refers to any subject (e.g. a person, group, organization, abstract entity, etc.) as determined by the controller of the DID.
Specifically, DIDs are URIs (unique digital addresses) that associate a DID subject with a DID document allowing trustable interactions associated with that subject. Similar to a URL, when you resolve a DID, you receive a DID document in JSON, JSON-LD, or similar format.
A DID is a simple unique text string consisting of three parts:
did
URI scheme identifier;The example DID above resolves to a DID document.
A subject may have as many DIDs as they want for different use cases, such as:
A DID document contains information associated with the DID, such as ways to cryptographically authenticate a DID controller.
A DID method (and its spec) defines the precise operations by which DIDs and DID documents are created, resolved, updated, and deactivated.
There are currently more than 150 DID methods out there, which can be categorized into 4 main types based on their storage method:
💡 Terminal 3 currently supports Static and Hybrid DIDs.
Centralized | Blockchain-based | Hybrid | Static | |
---|---|---|---|---|
Privacy | low | high | high | medium |
Self-Sovereign? | no | yes | yes | yes |
Data Registry Required? | yes | yes | yes | no |
(web2 server) | yes | |||
(Blockchain) | yes | yes | ||
(L2 storage) | yes | |||
Decentralized? | no | yes | yes | yes |
Complexity | simple | complex | medium | simple |
Transaction Fee Required? | no | yes | yes | no |
(when updating) | yes | |||
Mutable? | yes | no | no | no |
Supported Operations | create read update delete | create read update delete | create read update delete | create read |
Example | did:web | did:ethr did:btcr did:dock | did:3 did:ion did:elem | did:key did:pkh |
did:key
)