Overview[1]#
Decentralized Identifier (DID) is a component of the W3C Decentralized Identifiers draft standard and is a globally unique identifier expressed as a URI.Decentralized Identifier is a globally Unique Identifier that does not require a Centralized system Registration Authority Enrollment because it is registered with Distributed Ledger Technology or other form of Decentralized system. The generic format of a Decentralized Identifier is defined in the specification. A specific DID scheme is defined in a DID method specification.
Decentralized Identifier may relate generically refer a DID Document or to a specific DID Subject's DID
The Generic DID URI Scheme conformant with RFC 3986. Decentralized Identifier consists of a DID followed by an optional URI Path and/or URI Fragment Identifier. The term DID refers only to the identifier conforming to the did rule in the ABNF below; when used alone, it does not include a URI Path or URI Fragment Identifier. A DID that may optionally include a path and/or fragment is called a DID reference.
Following is the ABNF definition using the syntax in RFC 5234 (which defines ALPHA as UPPERCASE or Lowercase A-Z).
- did-reference = did [ "/" did-path ] "#" did-fragment
- did = "did:" method ":" specific-idstring (URI Scheme)
- method = 1*methodchar
- methodchar = %x61-7A / DIGIT
- specific-idstring = idstring *( ":" idstring )
- idstring = 1*idchar
- idchar = ALPHA / DIGIT / "." / "-"
A simple example of a Decentralized Identifier (DID)#
did:example:123456789abcdefghiWhere:
- did - URI Scheme
- example - DID method specification
- 123456789abcdefghi - DID method specific Identifier
Decentralized Identifier Specification #
Decentralized Identifier Specification has two purposes:- define the generic Decentralized Identifier scheme and a generic set of DID Operations on DIDs that can be implemented for any distributed ledger or network capable of supporting DIDs.
- define the conformance requirements for a DID method specification
Persistent and Immutable#
Decentralized Identifier MUST be persistent and immutable, i.e., bound to an entity once and never changed (forever). Ideally a Decentralized Identifier would be a completely abstract Decentralized Identifier (like a UUID) that could be bound to multiple underlying distributed ledgers or networks over time, thus maintaining its persistence independent of any particular ledger or network. However registering the same identifier on multiple ledgers or networks introduces extremely hard entityship and Trust Anchor problems and also greatly increases implementation complexity for developers.To avoid these issues, it is RECOMMENDED that DID method specification only produce DIDs and Decentralized Identifier methods bound to strong, stable ledgers or networks capable of making the highest level of commitment to persistence of the DID and DID method over time.
DID method specification#
DID method specification provides definition of how a specific Decentralized Identifier URI Scheme can be implemented on a specific Distributed Ledger Technology or network, including the precise method(s) by which DIDs and DID Documents can be read, written, and revoked.DID Scheme#
DID Scheme is the formal syntax of a Decentralized Identifier. The generic DID scheme is defined in this specification. A DID method specification defines a specific DID scheme that works with a specific DID method.Decentralized Identifier Resolution#
To be useful, Identifiers MUST be resolvable (e.g. have a means of discovering what the identifier means). The DID method specification determines the resolution of the Decentralized Identifiers are resolved to a DID Document. Resolution is the act of looking up the DID Document for a specific Decentralized Identifier using the methods given by the DID method specification. Taken as a whole, DID infrastructure functions as a global, decentralized key-value store where DIDs act as the keys and DID Documents are the values.More Information#
There might be more information for this subject on one of the following:- Blinding Identity Taxonomy
- DID
- DID Document
- DID descriptor objects
- Decentralized Public Key Infrastructure
- Hyperledger Indy
- JSON-LD Examples
- Lightweight Ethereum Identity
- UPort
- Verinym
- Web Blog_blogentry_011216_1
- Web Blog_blogentry_161018_1
- Web Blog_blogentry_250719_1
- [#1] - DID Decentralized Identifier) Data Model and Generic Syntax 1.0
- based on information obtained 2016-12-01-
- [#2] - W3C Decentralized Identifiers (DIDs)
- based on information obtained 2018-11-29