Skip to content
This repository was archived by the owner on Oct 29, 2019. It is now read-only.

Commit 6d74e8f

Browse files
committed
Update data model based on DID Hardening discussions.
1 parent f1c339b commit 6d74e8f

File tree

1 file changed

+82
-154
lines changed

1 file changed

+82
-154
lines changed

index.html

Lines changed: 82 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!DOCTYPE html>
22
<html>
33
<head>
4-
<title>Decentralized Identifiers (DIDs) v0.7</title>
4+
<title>Decentralized Identifiers (DIDs) v0.9</title>
55
<meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>
66
<!--
77
=== NOTA BENE ===
@@ -513,20 +513,21 @@ <h2>Self-Managed DID Document</h2>
513513
{
514514
"@context": "https://w3id.org/did/v1",
515515
"id": "did:example:123456789abcdefghi",
516-
"authorizationCapability": [{
517-
// this entity may update any field in this DID Document using any
518-
// authentication mechanism understood by the ledger
519-
"permission": "UpdateDidDocument",
520-
"entity": "did:example:123456789abcdefghi"
521-
}],
522-
"exampleService": "https://example.com/messages/8377464",
523-
"authenticationCredential": [{
524-
// this key can be used to authenticate as DID ...9938
516+
"publicKey": [{
525517
"id": "did:example:123456789abcdefghi#keys-1",
526-
"type": "RsaCryptographicKey",
518+
"type": "RsaSigningKey2018",
527519
"owner": "did:example:123456789abcdefghi",
528520
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
529-
}]
521+
}],
522+
"authentication": [{
523+
// this key can be used to authenticate as DID ...9938
524+
"type": "RsaKeyBasedAuthentication2018",
525+
"publicKey": "#keys-1"
526+
}],
527+
service: {[
528+
"type": "MessagingService",
529+
"serviceEndpoint": "https://example.com/messages/8377464"
530+
]}
530531
}
531532
</pre>
532533

@@ -857,7 +858,7 @@ <h2>Context</h2>
857858

858859
<pre class="example nohighlight">
859860
{
860-
"@context": "https://example.org/did/v1"
861+
"@context": "https://w3id.org/did/v1"
861862
}
862863
</pre>
863864

@@ -872,16 +873,16 @@ <h2>Context</h2>
872873
</section>
873874

874875
<section>
875-
<h2>Primary DID</h2>
876+
<h2>DID Subject</h2>
876877

877878
<p>
878-
The primary DID is the primary index key for the DID Document, i.e., it is DID
879-
described by DID Document. The rules for a primary DID are:
879+
The DID subject is the identifier that the DID Document is about, i.e., it is
880+
the DID described by DID Document. The rules for a DID subject are:
880881
</p>
881882

882883
<ol start="1">
883884
<li>
884-
A DID Document MUST have exactly one primary DID.
885+
A DID Document MUST have exactly one DID subject.
885886
</li>
886887

887888
<li>
@@ -894,7 +895,7 @@ <h2>Primary DID</h2>
894895

895896
<li>
896897
When this DID Document is registered with the target distributed ledger or
897-
network, the registered DID MUST match this primary DID value.
898+
network, the registered DID MUST match this DID subject value.
898899
</li>
899900
</ol>
900901

@@ -909,7 +910,7 @@ <h2>Primary DID</h2>
909910
</pre>
910911
</section>
911912

912-
<section>
913+
<!-- section>
913914
<h2>Delegates</h2>
914915
915916
<p class="issue">
@@ -982,7 +983,7 @@ <h2>Delegates</h2>
982983
}]
983984
}
984985
</pre>
985-
</section>
986+
</section -->
986987

987988
<section>
988989
<h2>Authentication</h2>
@@ -1063,7 +1064,7 @@ <h2>Authentication</h2>
10631064

10641065
</section>
10651066

1066-
<section>
1067+
<!-- section>
10671068
<h2>Authorization</h2>
10681069
10691070
<p class="issue">
@@ -1213,7 +1214,7 @@ <h3>Requiring Multiple Proofs</h3>
12131214
</pre>
12141215
</section>
12151216
1216-
</section>
1217+
</section -->
12171218

12181219
<section>
12191220
<h2>Service Endpoints</h2>
@@ -2040,92 +2041,37 @@ <h2>Alternate Serializations and Graph Models</h2>
20402041
</section>
20412042

20422043
<section class="appendix">
2043-
<h1>Proposed DID Method Specifications</h1>
2044+
<h1>Registries</h1>
20442045

20452046
<p>
2046-
This table summarizes the DID method specifications currently in development. The links will be updated as subsequent Implementer’s Drafts are produced.
2047+
There are multiple registries that define DID Methods and extensions to this
2048+
specification. These registries are:
20472049
</p>
20482050

20492051
<table class="simple">
20502052
<thead>
20512053
<tr>
2052-
<th>Method Name</th>
2053-
<th>DLT or Network</th>
2054-
<th>Authors</th>
2055-
<th>Link</th>
2054+
<th>Registry</th>
2055+
<th>Purpose</th>
20562056
</tr>
20572057
</thead>
20582058

20592059
<tbody>
20602060
<tr>
20612061
<td>
2062-
did:sov:
2063-
</td>
2064-
<td>
2065-
Sovrin
2066-
</td>
2067-
<td>
2068-
Sovrin Foundation
2062+
<a href="https://w3c-ccg.github.io/did-method-registry/">DID Method Registry</a>
20692063
</td>
20702064
<td>
2071-
<a href="https://docs.google.com/document/d/1X7dWpVvskGRpk05yyPEMd1uqaJ9FnOzoeWMdwzdIFyU/edit#">Sovrin DID Method</a>
2065+
Defines all known DID Methods and contains links to their specifications.
20722066
</td>
20732067
</tr>
20742068

20752069
<tr>
20762070
<td>
2077-
did:btcr:
2078-
</td>
2079-
<td>
2080-
Bitcoin
2081-
</td>
2082-
<td>
2083-
Christopher Allen
2071+
<a href="https://w3c-ccg.github.io/ld-key-registry/">Linked Data Key Formats Registry</a>
20842072
</td>
20852073
<td>
2086-
</td>
2087-
</tr>
2088-
2089-
<tr>
2090-
<td>
2091-
did:uport:
2092-
</td>
2093-
<td>
2094-
Ethereum
2095-
</td>
2096-
<td>
2097-
uPort
2098-
</td>
2099-
<td>
2100-
</td>
2101-
</tr>
2102-
2103-
<tr>
2104-
<td>
2105-
did:cnsnt:
2106-
</td>
2107-
<td>
2108-
Ethereum
2109-
</td>
2110-
<td>
2111-
Consent
2112-
</td>
2113-
<td>
2114-
</td>
2115-
</tr>
2116-
2117-
<tr>
2118-
<td>
2119-
did:v1:
2120-
</td>
2121-
<td>
2122-
Veres One
2123-
</td>
2124-
<td>
2125-
Digital Bazaar
2126-
</td>
2127-
<td>
2128-
<a href="https://w3c-ccg.github.io/didm-veres-one/">Veres One DID Method</a>
2074+
Defines all known Linked Data Key Formats.
21292075
</td>
21302076
</tr>
21312077

@@ -2135,28 +2081,63 @@ <h1>Proposed DID Method Specifications</h1>
21352081
</section>
21362082

21372083
<section class="appendix">
2138-
<h1>The Generic DID Context for JSON-LD</h1>
2139-
2140-
<p>
2141-
This JSON-LD document is the generic context for all DID Documents.
2142-
See Section <a href="#context"></a> for the rules for using this context.
2143-
</p>
2084+
<h1>Real World Example</h1>
21442085

21452086
<p>
2146-
For this implementer’s draft, the URL for this context is:
2147-
</p>
2148-
2149-
<p>
2150-
<a href=
2151-
"https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2016/blob/master/final-documents/did-context-v1-draft-01.txt">
2152-
https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-fall2016/blob/master/final-documents/did-context-v1-draft-01.txt</a>
2087+
A future-facing real-world context is provided below:
21532088
</p>
21542089

21552090
<pre class="example nohighlight" title="Advanced DID Document example">
21562091
{
2157-
"@context": "https://w3id.org/did/v1",
2092+
"@context": "https://w3id.org/future-method/v1",
21582093
"id": "did:example:123456789abcdefghi",
2159-
"authorizationCapability": [{
2094+
2095+
"publicKey": [{
2096+
"id": "did:example:123456789abcdefghi#keys-1",
2097+
"type": "RsaSigningKey2018",
2098+
"owner": "did:example:123456789abcdefghi",
2099+
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
2100+
}],
2101+
2102+
// EXPERIMENTAL: Proposal for pseudonymous biometric templates
2103+
"publicBiometricTemplate": [{
2104+
// this biometric can be used to authenticate as DID ...fghi
2105+
"id": "did:example:123456789abcdefghi#bio-1",
2106+
"type": "PseudonymousBiometricTemplate2017",
2107+
"owner": "did:example:123456789abcdefghi",
2108+
"biometricService": "https://example.com/authenticate"
2109+
"biometricTemplateShard": "Mjk4MzQyO...5Mzg0MDI5Mwo="
2110+
}]
2111+
2112+
"authentication": [{
2113+
// this key can be used to authenticate as DID ...9938
2114+
"type": "RsaKeyBasedAuthentication2018",
2115+
"publicKey": "#keys-1"
2116+
}, {
2117+
// this key can be used to authenticate as DID ...9938
2118+
"type": "PseudonymousBiometricBasedAuthentication2018",
2119+
"publicKey": "#bio-1"
2120+
}],
2121+
2122+
// EXPERIMENTAL: Proposal for encrypting messages for DID
2123+
"encryption": [{
2124+
// this key can be used to encrypt messages for the DID ...9938
2125+
"type": "RsaKeyBasedEncryption2018",
2126+
"publicKey": "#keys-2"
2127+
},
2128+
2129+
service: {[
2130+
"type": "MessagingService",
2131+
"serviceEndpoint": "https://example.com/messages/8377464",
2132+
// EXPERIMENTAL: Proposal for doing service encryption
2133+
"encryption": [{
2134+
// this key can be used to encrypt messages for the DID ...9938
2135+
"type": "RsaKeyBasedEncryption2018",
2136+
"publicKey": "#keys-2"
2137+
}
2138+
]}
2139+
2140+
"didAuthorization": [{
21602141
// this entity may update any field in this DID Document using any
21612142
// authentication mechanism understood by the ledger
21622143
"permission": "UpdateDidDocument",
@@ -2209,64 +2190,11 @@ <h1>The Generic DID Context for JSON-LD</h1>
22092190
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
22102191
}
22112192
}]
2212-
}],
2213-
"authenticationCredential": [{
2214-
// this biometric can be used to authenticate as DID ...fghi
2215-
"id": "did:example:123456789abcdefghi/biometric/1",
2216-
"type": "PseudonymousBiometricTemplate2017",
2217-
"owner": "did:example:123456789abcdefghi",
2218-
"biometricService": "https://example.com/authenticate"
2219-
"biometricTemplateShard": "Mjk4MzQyO...5Mzg0MDI5Mwo="
2220-
}, {
2221-
// this key can be used to authenticate as DID ...9938
2222-
"id": "did:example:123456789abcdefghi#keys-1",
2223-
"type": "RsaCryptographicKey",
2224-
"owner": "did:example:123456789abcdefghi",
2225-
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
22262193
}]
22272194
}
22282195
</pre>
22292196
</section>
22302197

2231-
<section class="appendix">
2232-
<h1>Standard Key Descriptions</h1>
2233-
2234-
<p>
2235-
As described in Section <a href="#did-documents"></a>, key description is a
2236-
standard way to describe
2237-
a public key or verification key in JSON-LD. This appendix contains a
2238-
list of key descriptions recommended for use in DID Documents.
2239-
</p>
2240-
2241-
<section>
2242-
<h2>RSA Keys</h2>
2243-
2244-
<pre class="example nohighlight">
2245-
{
2246-
"id": "did:example:123456789abcdefghi#keys-1",
2247-
"type": ["CryptographicKey", "RsaCryptographicKey"],
2248-
"owner": "did:example:123456789abcdefghi",
2249-
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
2250-
}
2251-
</pre>
2252-
</section>
2253-
2254-
<section>
2255-
<h2>EdDSA Keys</h2>
2256-
2257-
<pre class="example nohighlight">
2258-
{
2259-
"id": "did:example:123456789abcdefghi/keys/2",
2260-
"type": ["CryptographicKey", "EdDsaSAKey"],
2261-
"owner": "did:example:123456789abcdefghi",
2262-
"curve": "ed25519",
2263-
"expires": "2017-02-08T16:02:20Z",
2264-
"publicKeyBase64": "IOmA4R7TfhkYTYW87...CBMq2/gi25s="
2265-
}
2266-
</pre>
2267-
</section>
2268-
</section>
2269-
22702198
<section>
22712199
<h1>References</h1>
22722200

0 commit comments

Comments
 (0)