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.3/docs/how-tos/verifiable-credentials/zero-knowledge-selective-disclosure.mdx
+17-11Lines changed: 17 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,45 +13,53 @@ 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:
Copy file name to clipboardExpand all lines: docs/build/identity.rs/1.3/docs/references/specifications/iota-did-method-spec.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ The IOTA DID Method Specification describes a method of implementing the [Decent
22
22
23
23
## Data Types & Subschema Notation
24
24
25
-
Data types and subschemas used throughout this TIP are defined in [TIP-21](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0021/tip-0021.md).
25
+
Data types and subschemas used throughout this TIP are defined in [TIP-21](https://github.com/iotaledger/tips/blob/main/tips/TIP-0021/tip-0021.md).
26
26
27
27
## Introduction
28
28
@@ -36,13 +36,13 @@ Data stored in an output and covered by the storage deposit will be stored in _a
36
36
37
37
### Alias Output
38
38
39
-
The [Alias Output](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0018/tip-0018.md#alias-output) is a specific implementation of the [UTXO state machine](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0018/tip-0018.md#chain-constraint-in-utxo). Some of its relevant properties are:
39
+
The [Alias Output](https://github.com/iotaledger/tips/blob/main/tips/TIP-0018/tip-0018.md#alias-output) is a specific implementation of the [UTXO state machine](https://github.com/iotaledger/tips/blob/main/tips/TIP-0018/tip-0018.md#chain-constraint-in-utxo). Some of its relevant properties are:
40
40
41
41
-**Amount**: the amount of IOTA coins held by the output.
42
42
-**Alias ID**: 32 byte array, a unique identifier of the alias, which is the BLAKE2b-256 hash
43
43
of the Output ID that created it.
44
44
-**State Index**: A counter that must increase by 1 every time the alias is state transitioned.
45
-
-**State Metadata**: Dynamically sized array of arbitrary bytes with a length up to `Max Metadata Length`, as defined in [TIP-22](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0022/tip-0022.md). Can only be changed by the state controller.
45
+
-**State Metadata**: Dynamically sized array of arbitrary bytes with a length up to `Max Metadata Length`, as defined in [TIP-22](https://github.com/iotaledger/tips/blob/main/tips/TIP-0022/tip-0022.md). Can only be changed by the state controller.
Copy file name to clipboardExpand all lines: docs/build/identity.rs/1.3/docs/references/specifications/revocation-bitmap-2022.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -175,7 +175,7 @@ This section describes the rationale behind some of the design decisions of this
175
175
176
176
### Compression and maximum size
177
177
178
-
Considering that messages published to the Tangle cannot exceed [32 KiB](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0006/tip-0006.md#message-validation) in size, and that larger messages have increased requirements, the use of compression was assessed.
178
+
Considering that messages published to the Tangle cannot exceed [32 KiB](https://github.com/iotaledger/tips/blob/main/tips/TIP-0006/tip-0006.md#message-validation) in size, and that larger messages have increased requirements, the use of compression was assessed.
179
179
The precise size of a serialized bitmap varies based on the number and distribution of revoked indices. When indices are revoked uniformly randomly, roughly 100,000 - 200,000 can be achieved in a DID Document with compression, and significantly more if consecutive indices are revoked.
180
180
181
181
ZLIB [[RFC 1950](https://datatracker.ietf.org/doc/html/rfc1950)] was chosen for having a free and open source software licence and being one of the most widely used compression schemes, which enhances the accessibility of this specification. Some other assessed algorithms produced only marginally better compression ratios but had far fewer existing implementations across different programming languages.
Copy file name to clipboardExpand all lines: docs/build/identity.rs/1.4/docs/references/specifications/iota-did-method-spec.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ The IOTA DID Method Specification describes a method of implementing the [Decent
22
22
23
23
## Data Types & Subschema Notation
24
24
25
-
Data types and subschemas used throughout this TIP are defined in [TIP-21](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0021/tip-0021.md).
25
+
Data types and subschemas used throughout this TIP are defined in [TIP-21](https://github.com/iotaledger/tips/blob/main/tips/TIP-0021/tip-0021.md).
26
26
27
27
## Introduction
28
28
@@ -36,13 +36,13 @@ Data stored in an output and covered by the storage deposit will be stored in _a
36
36
37
37
### Alias Output
38
38
39
-
The [Alias Output](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0018/tip-0018.md#alias-output) is a specific implementation of the [UTXO state machine](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0018/tip-0018.md#chain-constraint-in-utxo). Some of its relevant properties are:
39
+
The [Alias Output](https://github.com/iotaledger/tips/blob/main/tips/TIP-0018/tip-0018.md#alias-output) is a specific implementation of the [UTXO state machine](https://github.com/iotaledger/tips/blob/main/tips/TIP-0018/tip-0018.md#chain-constraint-in-utxo). Some of its relevant properties are:
40
40
41
41
-**Amount**: the amount of IOTA coins held by the output.
42
42
-**Alias ID**: 32 byte array, a unique identifier of the alias, which is the BLAKE2b-256 hash
43
43
of the Output ID that created it.
44
44
-**State Index**: A counter that must increase by 1 every time the alias is state transitioned.
45
-
-**State Metadata**: Dynamically sized array of arbitrary bytes with a length up to `Max Metadata Length`, as defined in [TIP-22](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0022/tip-0022.md). Can only be changed by the state controller.
45
+
-**State Metadata**: Dynamically sized array of arbitrary bytes with a length up to `Max Metadata Length`, as defined in [TIP-22](https://github.com/iotaledger/tips/blob/main/tips/TIP-0022/tip-0022.md). Can only be changed by the state controller.
Copy file name to clipboardExpand all lines: docs/build/identity.rs/1.4/docs/references/specifications/revocation-bitmap-2022.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -175,7 +175,7 @@ This section describes the rationale behind some of the design decisions of this
175
175
176
176
### Compression and maximum size
177
177
178
-
Considering that messages published to the Tangle cannot exceed [32 KiB](https://github.com/iotaledger/tips/blob/v1.2.0/tips/TIP-0006/tip-0006.md#message-validation) in size, and that larger messages have increased requirements, the use of compression was assessed.
178
+
Considering that messages published to the Tangle cannot exceed [32 KiB](https://github.com/iotaledger/tips/blob/main/tips/TIP-0006/tip-0006.md#message-validation) in size, and that larger messages have increased requirements, the use of compression was assessed.
179
179
The precise size of a serialized bitmap varies based on the number and distribution of revoked indices. When indices are revoked uniformly randomly, roughly 100,000 - 200,000 can be achieved in a DID Document with compression, and significantly more if consecutive indices are revoked.
180
180
181
181
ZLIB [[RFC 1950](https://datatracker.ietf.org/doc/html/rfc1950)] was chosen for having a free and open source software licence and being one of the most widely used compression schemes, which enhances the accessibility of this specification. Some other assessed algorithms produced only marginally better compression ratios but had far fewer existing implementations across different programming languages.
0 commit comments