Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit 019ec17

Browse files
committed
Fix TIP links
1 parent a46dd7a commit 019ec17

File tree

5 files changed

+25
-19
lines changed

5 files changed

+25
-19
lines changed

docs/build/identity.rs/1.3/docs/how-tos/verifiable-credentials/zero-knowledge-selective-disclosure.mdx

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,45 +13,53 @@ import Tabs from '@theme/Tabs';
1313
import TabItem from '@theme/TabItem';
1414

1515
# Zero Knowledge Selective Disclosure (ZK-SD-VCs)
16+
1617
ZK-SD-VCs allow holders to verify their VCs without having to disclose the entire VC's claim set to verifiers.
1718
This is done through the creation of a Zero Knowledge Proof (ZKP) that guarantees the integrity and authenticity
1819
of the VC, even when only partially disclosed to the verifier.
1920

2021
:::note
22+
2123
Although ZK-SD-VCs offer similar functionalities to [SD-JWT VCs](../selective-disclosure) - at least on a high level - they rely on completely different
2224
concepts and security concerns. For a user, the most notable difference is the shifted capability of choosing which fields can
2325
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
2426
undisclosed, whereas for SD-JWT VCs it's the issuer that decides which fields may be concealed by the holder.
27+
2528
:::
2629

2730
## Concepts
31+
2832
### Issuance
33+
2934
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
3035
and sends both the credential and the signature to the holder. To facilitate this process, the credential is first encoded
3136
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
3237
[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+
3339
:::note
40+
3441
JWPs and JPTs can be reasoned about as the Zero Knowledge (ZK) based counterparts of JWSs and JWTs.
42+
3543
:::
44+
3645
In code, this process would look like the following snippet:
3746
<Tabs groupId="language" queryString>
3847
<TabItem value="rust" label="Rust">
3948

4049
```rust reference
41-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/examples/1_advanced/9_zkp.rs#L114-L141
50+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/examples/1_advanced/9_zkp.rs#L114-L141
4251
```
4352

4453
</TabItem>
4554
<TabItem value="typescript-node" label="Typescript (Node.js)">
4655

4756
```ts reference
48-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts#L109-L133
57+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts#L109-L133
4958
```
5059

5160
</TabItem>
5261
</Tabs>
5362

54-
5563
Note how the VC issuer makes no prescription whatsoever regarding the disclosability of the VC's fields.
5664

5765
### Holder presentation
@@ -62,18 +70,17 @@ to conceal any fields from the credentials claims through the creation of a Zero
6270
The proof value depends on the selected [JSON Proof Algorithm](https://www.ietf.org/archive/id/draft-ietf-jose-json-proof-algorithms-02.html) (JPA).
6371

6472
<Tabs groupId="language" queryString>
65-
6673
<TabItem value="rust" label="Rust">
6774

6875
```rust reference
69-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/examples/1_advanced/9_zkp.rs#L197-L223
76+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/examples/1_advanced/9_zkp.rs#L197-L223
7077
```
7178

7279
</TabItem>
7380
<TabItem value="typescript-node" label="Typescript (Node.js)">
7481

7582
```ts reference
76-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts#L178-L199
83+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts#L178-L199
7784
```
7885

7986
</TabItem>
@@ -114,18 +121,17 @@ The verifier decodes the received JPT presentation and asserts the validity of t
114121
authenticity and integrity of the presented credential, without knowledge of any of the undisclosed fields and of the issuer signature.
115122

116123
<Tabs groupId="language" queryString>
117-
118124
<TabItem value="rust" label="Rust">
119125

120126
```rust reference
121-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/examples/1_advanced/9_zkp.rs#L244-L257
127+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/examples/1_advanced/9_zkp.rs#L244-L257
122128
```
123129

124130
</TabItem>
125131
<TabItem value="typescript-node" label="Typescript (Node.js)">
126132

127133
```ts reference
128-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts#L217-L225
134+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts#L217-L225
129135
```
130136

131137
</TabItem>
@@ -137,14 +143,14 @@ https://github.com/iotaledger/identity.rs/blob/v1.3.0/bindings/wasm/examples/src
137143
<TabItem value="rust" label="Rust">
138144

139145
```rust reference
140-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/examples/1_advanced/9_zkp.rs
146+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/examples/1_advanced/9_zkp.rs
141147
```
142148

143149
</TabItem>
144150
<TabItem value="typescript-node" label="Typescript (Node.js)">
145151

146152
```ts reference
147-
https://github.com/iotaledger/identity.rs/blob/v1.3.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts
153+
https://github.com/iotaledger/identity.rs/blob/v1.4.0/bindings/wasm/examples/src/1_advanced/8_zkp.ts
148154
```
149155

150156
</TabItem>

docs/build/identity.rs/1.3/docs/references/specifications/iota-did-method-spec.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The IOTA DID Method Specification describes a method of implementing the [Decent
2222

2323
## Data Types & Subschema Notation
2424

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).
2626

2727
## Introduction
2828

@@ -36,13 +36,13 @@ Data stored in an output and covered by the storage deposit will be stored in _a
3636

3737
### Alias Output
3838

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:
4040

4141
- **Amount**: the amount of IOTA coins held by the output.
4242
- **Alias ID**: 32 byte array, a unique identifier of the alias, which is the BLAKE2b-256 hash
4343
of the Output ID that created it.
4444
- **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.
4646
- **Unlock Conditions**:
4747
- State Controller Address Unlock Condition
4848
- Governor Address Unlock Condition

docs/build/identity.rs/1.3/docs/references/specifications/revocation-bitmap-2022.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ This section describes the rationale behind some of the design decisions of this
175175

176176
### Compression and maximum size
177177

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.
179179
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.
180180

181181
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.

docs/build/identity.rs/1.4/docs/references/specifications/iota-did-method-spec.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The IOTA DID Method Specification describes a method of implementing the [Decent
2222

2323
## Data Types & Subschema Notation
2424

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).
2626

2727
## Introduction
2828

@@ -36,13 +36,13 @@ Data stored in an output and covered by the storage deposit will be stored in _a
3636

3737
### Alias Output
3838

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:
4040

4141
- **Amount**: the amount of IOTA coins held by the output.
4242
- **Alias ID**: 32 byte array, a unique identifier of the alias, which is the BLAKE2b-256 hash
4343
of the Output ID that created it.
4444
- **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.
4646
- **Unlock Conditions**:
4747
- State Controller Address Unlock Condition
4848
- Governor Address Unlock Condition

docs/build/identity.rs/1.4/docs/references/specifications/revocation-bitmap-2022.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ This section describes the rationale behind some of the design decisions of this
175175

176176
### Compression and maximum size
177177

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.
179179
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.
180180

181181
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

Comments
 (0)