@@ -2172,24 +2172,16 @@ <h3>Status</h3>
2172
2172
</ p >
2173
2173
2174
2174
< p >
2175
- Specification authors that create status schemes are provided the following
2176
- guideline:
2175
+ Credential status specifications MUST NOT enable tracking of individuals, such
2176
+ as an [=issuer=] being notified (either directly or indirectly) when a
2177
+ [=verifier=] is interested in a specific [=holder=] or [=subject=]. Unacceptable
2178
+ approaches include "phoning home," such that every use of a credential contacts
2179
+ the [=issuer=] of the credential to check the status for a specific individual,
2180
+ or "pseudonymity reduction", such that every use of the credential causes a
2181
+ request for information from the [=issuer=] that can be used by the [=issuer=]
2182
+ to deduce [=verifier=] interest in a specific individual.
2177
2183
</ p >
2178
2184
2179
- < ul >
2180
- < li >
2181
- Status schemes MUST NOT be implemented in ways that enable tracking of
2182
- individuals, such as an [=issuer=] being notified (either directly or
2183
- indirectly) when a [=verifier=] is interested in a particular [=holder=]
2184
- or [=subject=]. Unacceptable approaches include "phoning home," such that
2185
- every use of a credential contacts the [=issuer=] of the credential to
2186
- check the status for a specific individual, or "pseudonymity reduction,"
2187
- such that every use of the credential causes a request for information
2188
- from the [=issuer=] that can be used by the [=issuer=] to deduce
2189
- [=verifier=] interest in a specific individual.
2190
- </ li >
2191
- </ ul >
2192
-
2193
2185
</ section >
2194
2186
2195
2187
< section >
@@ -2240,8 +2232,7 @@ <h3>Data Schemas</h3>
2240
2232
</ p >
2241
2233
< p >
2242
2234
If multiple schemas are present, validity is determined according to the
2243
- processing rules outlined by each associated `credentialSchema`
2244
- `type` property.
2235
+ processing rules outlined by each associated `type` property.
2245
2236
</ p >
2246
2237
</ dd >
2247
2238
</ dl >
@@ -2291,57 +2282,12 @@ <h3>Data Schemas</h3>
2291
2282
</ pre >
2292
2283
2293
2284
< p >
2294
- In the example above, the [=issuer=] is specifying a
2295
- `credentialSchema`, which points to a [[?VC-JSON-SCHEMA]] file that
2296
- can be used by a [=verifier=] to determine whether the
2297
- [=verifiable credential=] is well-formed.
2298
- </ p >
2299
-
2300
- < p class ="note "
2301
- title ="See Implementation Guide for details on JSON Schema ">
2302
- For information about linkages to JSON Schema [[?VC-JSON-SCHEMA]] or other
2303
- optional schema validation mechanisms, see the [[[VC-IMP-GUIDE]]] document.
2304
- </ p >
2305
-
2306
- < p >
2307
- Data schemas can also be used to specify mappings to other formats, such as
2308
- those used to perform zero-knowledge proofs. For more information on using the
2309
- `credentialSchema` [=property=] with zero-knowledge proofs,
2310
- see Section [[[#zero-knowledge-proofs]]].
2285
+ In the example above, the [=issuer=] is specifying two `credentialSchema`
2286
+ objects, each of which point to a JSON Schema [[?VC-JSON-SCHEMA]] file that can
2287
+ be used by a [=verifier=] to determine whether the [=verifiable credential=] is
2288
+ well-formed.
2311
2289
</ p >
2312
2290
2313
- < pre class ="example nohighlight " title ="Usage of the credentialSchema property to perform zero-knowledge validation ">
2314
- {
2315
- "@context": [
2316
- "https://www.w3.org/ns/credentials/v2",
2317
- "https://www.w3.org/ns/credentials/examples/v2"
2318
- ],
2319
- "id": "http://university.example/credentials/3732",
2320
- "type": ["VerifiableCredential", "ExampleDegreeCredential"],
2321
- "issuer": "https://university.example/issuers/14",
2322
- "validFrom": "2010-01-01T19:23:24Z",
2323
- "credentialSubject": {
2324
- "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
2325
- "degree": {
2326
- "type": "ExampleBachelorDegree",
2327
- "name": "Bachelor of Science and Arts"
2328
- }
2329
- },
2330
- < span class ="highlight "> "credentialSchema": {
2331
- "id": "https://example.org/examples/degree",
2332
- "type": "ZkpExampleSchema2018"
2333
- }</ span >
2334
- }
2335
- </ pre >
2336
-
2337
- < p >
2338
- In the example above, the [=issuer=] is specifying a
2339
- `credentialSchema` pointing to a means of transforming the input data
2340
- into a format which can then be used by a [=verifier=] to determine whether
2341
- the proof provided with the [=verifiable credential=] is well-formed.
2342
- </ p >
2343
-
2344
-
2345
2291
</ section >
2346
2292
2347
2293
< section >
@@ -2400,6 +2346,13 @@ <h3>Securing Mechanisms</h3>
2400
2346
}
2401
2347
</ pre >
2402
2348
2349
+ < p >
2350
+ The [=embedded proof=] above secures the original [=credential=] by decorating
2351
+ the original data with a digital signature via the `proof` property, resulting
2352
+ in a [=verifiable credential=] that is easy to manage in modern programming
2353
+ environments and database systems.
2354
+ </ p >
2355
+
2403
2356
< pre class ="example nohighlight "
2404
2357
title ="A verifiable credential that uses an enveloping proof in SD-JWT format ">
2405
2358
eyJhbGciOiJFUzM4NCIsImtpZCI6IkdOV2FBTDJQVlVVMkpJVDg5bTZxMGM3U3ZjNDBTLWJ2UjFTT0
@@ -2440,6 +2393,13 @@ <h3>Securing Mechanisms</h3>
2440
2393
WyJ1Ynd6bi1kS19tMzRSMGI0SG84QTBBIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ
2441
2394
</ pre >
2442
2395
2396
+ < p >
2397
+ The [=enveloping proof=] above secures the original [=credential=] by
2398
+ encapsulating the original data in a digital signature envelope, resulting in a
2399
+ [=verifiable credential=] that can be processed using tooling that understands
2400
+ the SD-JWT format.
2401
+ </ p >
2402
+
2443
2403
</ section >
2444
2404
2445
2405
< section >
0 commit comments