!!! Overview[1] [{$pagename}] ([DID]) is a component of the [W3C Decentralized Identifiers] draft [standard] and is a globally [unique identifier] expressed as a [URI]. [{$pagename}] 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 [{$pagename}] is defined in the [specification]. [{$pagename}] are [Algorithmmic|Algorithm] [Identifier] that could be stored on a variety of [DataStores] but a [Distributed Ledger Technology] is used most often. A specific [DID] scheme is defined in a [DID method specification]. [{$pagename}] may relate generically refer a [DID Document] or to a specific [DID Subject]'s [DID] The __Generic__ [DID] [URI Scheme] conformant with [RFC 3986]. [{$pagename}] 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] = "did:" method ":" specific-idstring ([URI Scheme]) * [method|DID method specification] = 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:123456789abcdefghi}}} Where: * did - [URI Scheme] * example - [DID method specification] * 123456789abcdefghi - [DID method specific|DID method specification] [Unique Identifier] !! [{$pagename}] [Specification] [{$pagename}] [Specification] has two purposes: * define the generic [{$pagename}] scheme and a generic set of [DID Operations] on [DIDs] that can be implemented for any [distributed ledger|Distributed Ledger Technology] or network capable of supporting [DIDs]. * define the conformance requirements for a [DID method specification] !! Persistent and [Immutable] [{$pagename}] [MUST] be persistent and [immutable], i.e., bound to an [entity] once and never changed (forever). Ideally a [{$pagename}] would be a completely abstract [{$pagename}] (like a [UUID]) that could be bound to multiple underlying [distributed ledgers|Distributed Ledger Technology] 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 [{$pagename}] 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 [{$pagename}] [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 [{$pagename}]. 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. !! [{$pagename}] 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 [{$pagename}]s are resolved to a [DID Document]. Resolution is the act of looking up the [DID Document] for a specific [{$pagename}] 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: [{ReferringPagesPlugin before='*' after='\n' }] ---- * [#1] - [DID Decentralized Identifier) Data Model and Generic Syntax 1.0|https://docs.google.com/document/d/1Z-9jX4PEWtyRFD5fEyyzEnWK_0ir0no1JJLuRu8O9Gs/edit#|target='_blank'] - based on information obtained 2016-12-01- * [#2] - [W3C Decentralized Identifiers (DIDs)|https://w3c-ccg.github.io/did-spec/|target='_blank'] - based on information obtained 2018-11-29 * [#2] - [Decentralized Identifiers (DIDs) v1.0|https://www.w3.org/TR/did-core/|target='_blank'] - based on information obtained 2020-10-03