tdw v ns

생성일 비교 결과 만료 없음
109 삭제
424 행
104 추가
426 행
# Trusted Digital Web (TDW) Decentralized Identifier Name System (TDWNS) DID Method Specification version 1.0.1
# Web 7.0 Ultraweb Decentralized Identifier Name System (DIDNS) DID Method Specification version 1.0.1

Web 7.0 Ultraweb DIDNS Sample Query (live):

https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_diddoc.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.didns.directory/TXT/UDP/false/


## 1. Context
## 1. Context


### Purpose
### Purpose


The purpose of a DID Method Specification is to define the following:
The purpose of a DID Method Specification is to define the following:
- DID Identifier Syntax and Construction
- DID Identifier Syntax and Construction
- DID Identifier Query Operators
- DID Identifier Query Operators
- DID Document CRUD Abstract Interface(s)
- DID Document CRUD Abstract Interface(s)
- DID Method Platform Implementation Guidance
- DID Method Platform Implementation Guidance


The Trusted Digital Web (TDW) Decentralized Identifier Name System (TDWNS) DID Method Specification (TDWNS DID Method Specification)
The Web 7.0 Ultraweb Decentralized Identifier Name System (DIDNS) DID Method Specification (Web 7.0 DIDNS DID Method Specification)
defines the end-to-end lifecycle of DID Identifiers and DID Documents for use in the Trusted Digital Web ecosystem.
defines the end-to-end lifecycle of DID Identifiers and DID Documents for use in the Web 7.0 Ultraweb ecosystem.

The Trusted Digital Web (TDW) runs on top of Web 7.0.


Web 7.0 is a secure, message-based, decentralized operating system that underpins a unified software and hardware ecosystem for building resilient, trusted, decentralized systems using decentralized identifiers, DIDComm agents, and verifiable credentials.
Web 7.0 is a secure, message-based, decentralized operating system that underpins a unified software and hardware ecosystem for building resilient, trusted, decentralized systems using decentralized identifiers, DIDComm agents, and verifiable credentials.


The Web 7.0 Foundation, a federally-incorporated Canadian non-profit organization, is chartered to support, promote, protect, and curate the Web 7.0 ecosystem: operating system software, standards, and specifications; as well as other software and technology projects.
The Web 7.0 Foundation, a federally-incorporated Canadian non-profit organization, is chartered to support, promote, protect, and curate the Web 7.0 ecosystem: operating system software, standards, and specifications; as well as other software and technology projects. The Web 7.0 project is an offspring of the Trusted Digital Web (TDW) project (http://github.com/mwherman2000/TrustedDigitalWeb).


This specification defines the following:
This specification defines the following:
- TDWNS Identifier Syntax and Construction
- DIDNS Identifier Syntax and Construction
- TDWNS Identifier DID Document CRUD Abstract Interface
- DIDNS Identifier DID Document CRUD Abstract Interface


This specification also provides Platform Implementation Guidance to assist Implementors in creating safe and secure TDW apps, agents, services and platforms that are compliant with the TDWNS DID Method Specification.
This specification also provides Platform Implementation Guidance to assist Implementors in creating safe and secure Web 7.0 apps, agents, services and platforms that are compliant with the DIDNS DID Method Specification.


### Out-of-Scope
### Out-of-Scope


The following topics are out-of-scope:
The following topics are out-of-scope:
- Descriptions of any implementation-specific design, implementation, or deployment details for any particular software platform that might support the TDWNS DID Method Namespace.
- Descriptions of any implementation-specific design, implementation, or deployment details for any particular software platform that might support the DIDNS DID Method Namespace.


### Intended Audience
### Intended Audience


The primary audience for this DID Method Specification is Implementors of TDW apps, DIDComm agents, and services; including but not limited to:
The primary audience for this DID Method Specification is Implementors of Web 7.0 apps, DIDComm agents, and services; including but not limited to:
software architects, data modelers, application developers, services developers, testers, operators, and user experience (UX) specialists.
software architects, data modelers, application developers, services developers, testers, operators, and user experience (UX) specialists.
In addition, other people involved in a broad range of standards efforts related to decentralized identity,
In addition, other people involved in a broad range of standards efforts related to decentralized identity,
verifiable credentials, and secure storage may also be interested in reading this specification.
verifiable credentials, and secure storage may also be interested in reading this specification.


### Terminology
### Terminology


- The term TDWNS Identifier is synonymous with the term TDWNS Decentralized Identifier.
- The term DIDNS Identifier is synonymous with the term DIDNS Decentralized Identifier.
- The term TDWNS Identifier DID Document is synonymous with the term TDWNS Decentralized Identifier Document.
- The term DIDNS Identifier DID Document is synonymous with the term DIDNS Decentralized Identifier Document.
- The term TDWNS DID Method Specification is synonymous with the term TDWNS Decentralized Identifier Name System (TDWNS) DID Method Specification..
- The term DIDNS DID Method Specification is synonymous with the term DIDNS Decentralized Identifier Name System (DIDNS) DID Method Specification..
- A compliant TDWNS runtime library is a software library that, in part, implements the TDWNS Identifier DID Document CRUD Abstract Interface in a way that complies with the TDWNS DID Method Specification.
- A compliant DIDNS runtime library is a software library that, in part, implements the DIDNS Identifier DID Document CRUD Abstract Interface in a way that complies with the DIDNS DID Method Specification.


### Conformance
### Conformance


This specification conforms to the requirements specified in the
This specification conforms to the requirements specified in the
Decentralized Identifiers (DIDs) v1.0 W3C Proposed Recommendation[2]
Decentralized Identifiers (DIDs) v1.0 W3C Proposed Recommendation[2]
published by the W3C Decentralized Identifier Working Group.
published by the W3C Decentralized Identifier Working Group.


### Variations
### Variations


Three (3) variations of the did:ns DID method are currently supported.
Three (3) variations of the did:ns DID method are currently supported.


- TDW DID Name System over DNS (TDWNS/DNS) (reference implementation)
- DID Name System over DNS (DIDNS/DNS) (reference implementation)
- TDW DID Name System over Microsoft Active Directory/Azure Directory Services (TDWNS/AD)
- DID Name System over Microsoft Active Directory/Azure Directory Services (DIDNS/AD)
- TDW DID Name System over X.500/LDAP (TDWNS/LDAP)
- DID Name System over X.500/LDAP (DIDNS/LDAP)


This specification describes the design of the DIDNS/DNS reference implementation.
This specification describes the design of the DIDNS/DNS reference implementation.


### Authoritative Source Text
### Authoritative Source Text


The authoriative source text for this specification can be found here: https://github.com/Web7Foundation/Specifications/blob/main/methods/did-tdw-1-0-1.md.
The authoriative source text for this specification can be found here: https://github.com/Web7Foundation/Specifications/blob/main/methods/did-ns-1-0-1.md.


### Example 1. TDWNS Identifier Example
### Example 1. DIDNS Identifier Example
```
```
did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914
did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914
did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_diddoc
did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_diddoc
did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_didid
did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_didid
did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_didkey
did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_didkey
```
```


### Example 2. Anonymous TDWNS Identifier Example
### Example 2. Anonymous DIDNS Identifier Example
```
```
did:tdw:fe042e80-e963-4a35-9734-7d1eaeb1b06e
did:ns:fe042e80-e963-4a35-9734-7d1eaeb1b06e
did:tdw:fe042e80-e963-4a35-9734-7d1eaeb1b06e:_diddoc
did:ns:fe042e80-e963-4a35-9734-7d1eaeb1b06e:_diddoc
did:tdw:fe042e80-e963-4a35-9734-7d1eaeb1b06e:_didid
did:ns:fe042e80-e963-4a35-9734-7d1eaeb1b06e:_didid
did:tdw:fe042e80-e963-4a35-9734-7d1eaeb1b06e:_didkey
did:ns:fe042e80-e963-4a35-9734-7d1eaeb1b06e:_didkey
```
```


## 2. TDW Decentralized Identifier Name System (TDWNS) Name
## 2. Decentralized Identifier Name System (DIDNS) Name


The name string that **MUST** be used to label a TDW Decentralized Identifier Name System (TDWNS) Identifier is: ```tdw```.
The name string that **MUST** be used to label a Decentralized Identifier Name System (DIDNS) Identifier is: ```ns```.


A TDWNS Identifier that uses this method **MUST** begin with the following prefix: ```did:tdw```.
A DIDNS Identifier that uses this method **MUST** begin with the following prefix: ```did:ns```.
Per the DID Decentralized Identifier specification[2], the value of this string **MUST** be in lowercase.
Per the DID Decentralized Identifier specification[2], the value of this string **MUST** be in lowercase.


## 3. TDWNS Identifier Format
## 3. DIDNS Identifier Format


Compliant TDWNS Identifiers **MUST** use the following format:
Compliant DIDNS Identifiers **MUST** use the following format:
```
```
NSPREFIX = "did"
NSPREFIX = "did"
NSID = "tdw"
NSID = "ns"
did-tdw-did = NSPREFIX : NSID label
did-ns-did = NSPREFIX : NSID label
label = *(label-separator label-string)
label = *(label-separator label-string)
label-separator = ":"
label-separator = ":"
label-string = 1*label-chars | label-hidden-prefix 1*label-chars
label-string = 1*label-chars | label-hidden-prefix 1*label-chars
label_chars = ALPHA / DIGIT / "-" / pct-encoded
label_chars = ALPHA / DIGIT / "-" / pct-encoded
pct-encoded = "%" HEXDIG HEXDIG
pct-encoded = "%" HEXDIG HEXDIG
label-hidden-prefix = "_"
label-hidden-prefix = "_"
```
```


### 3.1 TDWNS Identifier Samples
### 3.1 DIDNS Identifier Samples


| Sample | Notation |
| Sample | Notation |
| :----: | -------- |
| :----: | -------- |
| 1 | ```did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914``` |
| 1 | ```did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914``` |
| 2 | ```did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_diddoc``` |
| 2 | ```did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_diddoc``` |
| 3 (not live) | [```did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_diddoc```](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_diddoc.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.did-tdw.directory/ANY/UDP/false/) [(click)](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_diddoc.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.did-tdw.directory/ANY/UDP/false/) |
| 3 (live) | [```did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_diddoc```](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_diddoc.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.didns.directory/TXT/UDP/false/) [(click)](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_diddoc.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.didns.directory/ANY/UDP/false/) |
| 4 (not live) | [```did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_didid```](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_didid.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.did-tdw.directory/ANY/UDP/false/) [(click)](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_didid.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.did-tdw.directory/ANY/UDP/false/) |
| 4 (live) | [```did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914:_didid```](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_didid.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.didns.directory/TXT/UDP/false/) [(click)](https://dnsclient.net/#Google%20%7B8.8.8.8%7D/_didid.0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.didns.directory/TXT/UDP/false/) |


### 3.2 TDWNS Identifier Transformation
### 3.2 DIDNS Identifier Transformation


| Transform Steps | Example |
| Transform Steps | Example |
| ------------------ | ------- |
| ------------------ | ------- |
| 1. TDWNS Notation | ```did:tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914``` |
| 1. DIDNS Notation | ```did:ns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914``` |
| 2. URN Notation | ```urn:did-tdw:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914``` |
| 2. URN Notation | ```urn:didns:com:example:users:0e12c4ff-227b-4642-b37f-f1eff9d44914``` |
| 3. URL Notation | ```0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.did-tdw.directory``` |
| 3. URL Notation | ```0e12c4ff-227b-4642-b37f-f1eff9d44914.users.example.com.didns.directory``` |