You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 20, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: docs/build/identity.rs/1.4/docs/how-tos/verifiable-credentials/zero-knowledge-selective-disclosure.mdx
+9-3Lines changed: 9 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,26 +13,35 @@ import Tabs from '@theme/Tabs';
13
13
importTabItemfrom'@theme/TabItem';
14
14
15
15
# Zero Knowledge Selective Disclosure (ZK-SD-VCs)
16
+
16
17
ZK-SD-VCs allow holders to verify their VCs without having to disclose the entire VC's claim set to verifiers.
17
18
This is done through the creation of a Zero Knowledge Proof (ZKP) that guarantees the integrity and authenticity
18
19
of the VC, even when only partially disclosed to the verifier.
19
20
20
21
:::note
22
+
21
23
Although ZK-SD-VCs offer similar functionalities to [SD-JWT VCs](../selective-disclosure) - at least on a high level - they rely on completely different
22
24
concepts and security concerns. For a user, the most notable difference is the shifted capability of choosing which fields can
23
25
be concealed from a verifier. For ZK-SD-VCs it's the holder that has total control over which parts of the credential can be
24
26
undisclosed, whereas for SD-JWT VCs it's the issuer that decides which fields may be concealed by the holder.
27
+
25
28
:::
26
29
27
30
## Concepts
31
+
28
32
### Issuance
33
+
29
34
The issuer of a ZK-SD-VC creates the credential, signs it using the [BBS+](https://www.ietf.org/archive/id/draft-irtf-cfrg-bbs-signatures-05.html) signature scheme
30
35
and sends both the credential and the signature to the holder. To facilitate this process, the credential is first encoded
31
36
as a [JSON Proof Token](https://www.ietf.org/archive/id/draft-ietf-jose-json-proof-token-02.html) (JPT), which is then used as the payload of a
32
37
[JSON Web Proof](https://www.ietf.org/archive/id/draft-ietf-jose-json-web-proof-02.html) (JWP) and sent to the holder as JPT.
38
+
33
39
:::note
40
+
34
41
JWPs and JPTs can be reasoned about as the Zero Knowledge (ZK) based counterparts of JWSs and JWTs.
42
+
35
43
:::
44
+
36
45
In code, this process would look like the following snippet:
0 commit comments