Skip to content

Commit 862be46

Browse files
committed
fix links
Signed-off-by: Angelo De Caro <adc@zurich.ibm.com>
1 parent 8ed9aaa commit 862be46

1 file changed

Lines changed: 37 additions & 42 deletions

File tree

docs/drivers/dlogwogh.md

Lines changed: 37 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,13 @@ The public parameters include three Pedersen generators `[g_0, g_1, g_2]` used f
143143
- Based on Inner Product Arguments (IPA)
144144
- Proof size: O(log n) where n is the bit length
145145
- Verification time: O(n) group operations
146-
- Implementation: [`crypto/rp/bulletproof/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/bulletproof/)
146+
- Implementation: [`crypto/rp/bulletproof/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/bulletproof)
147147

148148
2. **Compressed Sigma Protocols (CSP)** (New implementation)
149149
- Based on recursive folding with Fiat-Shamir
150150
- Proof size: O(log n) where n is the bit length
151151
- Faster verification through Lagrange interpolation optimizations
152-
- Implementation: [`crypto/rp/csp/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/csp/)
152+
- Implementation: [`crypto/rp/csp/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/csp)
153153

154154
The proof system is selected via the `ProofType` parameter in `SetupParams`:
155155
- `rp.Bulletproof` - Uses Bulletproof range proofs (default)
@@ -512,7 +512,7 @@ The driver supports two range proof systems. The choice is made during public pa
512512

513513
Each output $C_{out,j}$ includes a **Bulletproof** showing $V_j \in [0, 2^{64}-1]$. It uses an **Inner Product Argument (IPA)** to achieve $O(\log n)$ proof size.
514514

515-
**Implementation**: [`crypto/rp/bulletproof/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/bulletproof/)
515+
**Implementation**: [`crypto/rp/bulletproof/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/bulletproof)
516516

517517
**Bulletproof Structure**:
518518

@@ -538,7 +538,7 @@ type RangeProof struct {
538538

539539
**New in commit 586d4f58**: CSP-based range proofs using recursive folding with Fiat-Shamir transformation.
540540

541-
**Implementation**: [`crypto/rp/csp/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/csp/)
541+
**Implementation**: [`crypto/rp/csp/`](../../token/core/zkatdlog/nogh/v1/crypto/rp/csp)
542542

543543
**CSP Proof Structure**:
544544

@@ -579,7 +579,7 @@ The verifier reproduces Fiat-Shamir challenges and performs final verification u
579579

580580
### 8.1 Issue Service
581581

582-
**Implementation**: [`issue.go`](../../token/core/zkatdlog/nogh/v1/issue.go), [`issue/`](../../token/core/zkatdlog/nogh/v1/issue/)
582+
**Implementation**: [`issue.go`](../../token/core/zkatdlog/nogh/v1/issue.go), [`issue/`](../../token/core/zkatdlog/nogh/v1/issue)
583583

584584
Orchestrates new token creation.
585585

@@ -636,7 +636,7 @@ sequenceDiagram
636636

637637
### 8.2 Transfer Service
638638

639-
**Implementation**: [`transfer.go`](../../token/core/zkatdlog/nogh/v1/transfer.go), [`transfer/`](../../token/core/zkatdlog/nogh/v1/transfer/)
639+
**Implementation**: [`transfer.go`](../../token/core/zkatdlog/nogh/v1/transfer.go), [`transfer/`](../../token/core/zkatdlog/nogh/v1/transfer)
640640

641641
Manages ownership movement.
642642

@@ -761,7 +761,7 @@ func (t *Token) ToClear(meta *Metadata, pp *PublicParams) (*token.Token, error)
761761

762762
### 8.4 Tokens Upgrade Service
763763

764-
**Implementation**: [`crypto/upgrade/`](../../token/core/zkatdlog/nogh/v1/crypto/upgrade/)
764+
**Implementation**: [`crypto/upgrade/`](../../token/core/zkatdlog/nogh/v1/crypto/upgrade)
765765

766766
Allows migrating cleartext `FabToken` outputs to privacy-preserving `ZKAT-DLOG` commitments.
767767

@@ -827,7 +827,7 @@ For tokens that cannot be upgraded in-place (e.g., incompatible precision or maj
827827
- Issues new tokens with equivalent value (via `IssueAction.outputs`)
828828
- Maintains supply consistency through cryptographic proofs
829829

830-
**Implementation**: See [`crypto/upgrade/`](../../token/core/zkatdlog/nogh/v1/crypto/upgrade/) for the upgrade service implementation.
830+
**Implementation**: See [`crypto/upgrade/`](../../token/core/zkatdlog/nogh/v1/crypto/upgrade) for the upgrade service implementation.
831831

832832
---
833833

@@ -837,7 +837,7 @@ The driver provides comprehensive validation and auditing capabilities to ensure
837837

838838
### 9.1 Validator
839839

840-
**Implementation**: [`validator/`](../../token/core/zkatdlog/nogh/v1/validator/)
840+
**Implementation**: [`validator/`](../../token/core/zkatdlog/nogh/v1/validator)
841841

842842
The validator performs rigorous checks on token transactions before they are committed to the ledger.
843843

@@ -905,43 +905,43 @@ The auditor verifies that:
905905

906906
#### 9.2.2 Auditor Validation
907907

908-
The [`Auditor.Check()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:110) method performs comprehensive validation in two phases:
908+
The [`Auditor.Check()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go) method performs comprehensive validation in two phases:
909909

910-
**Phase 1: Structural Validation** ([`validateStructure()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:158))
910+
**Phase 1: Structural Validation** ([`validateStructure()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go))
911911
- Validates action count matches metadata count
912912
- Verifies ActionIDs are sequential and correct
913913
- Ensures action types align with metadata types (no mixed types)
914914
- Confirms metadata exclusivity (IssueMetadata XOR TransferMetadata)
915915

916916
**Phase 2: Semantic Validation** (per action type)
917917

918-
For **Issue Actions** ([`checkIssueAction()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:243)):
918+
For **Issue Actions** ([`checkIssueAction()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go)):
919919
1. Uses `IssueMetadata.Match()` to validate structural correspondence
920-
2. Validates inputs via [`validateIssueInputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:277):
920+
2. Validates inputs via [`validateIssueInputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go):
921921
- Checks TokenID matches for upgrade scenarios
922-
3. Validates outputs via [`validateIssueOutputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:306):
922+
3. Validates outputs via [`validateIssueOutputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go):
923923
- Verifies no redeem outputs in issue actions
924924
- Recomputes Pedersen commitments from cleartext (type, value, blinding factor)
925925
- Validates commitments match token data
926-
- Validates receivers via [`validateOutputReceivers()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:517)
927-
4. Validates issuer identity via [`validateIssuer()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:355)
926+
- Validates receivers via [`validateOutputReceivers()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go)
927+
4. Validates issuer identity via [`validateIssuer()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go)
928928

929-
For **Transfer Actions** ([`checkTransferAction()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:369)):
929+
For **Transfer Actions** ([`checkTransferAction()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go)):
930930
1. Uses `TransferMetadata.Match()` to validate structural correspondence
931-
2. Validates inputs via [`validateTransferInputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:397):
931+
2. Validates inputs via [`validateTransferInputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go):
932932
- Ensures exactly one sender per input
933933
- Verifies sender identity matches token owner
934934
- Validates TokenID matches
935935
- Inspects sender identity via `InfoMatcher`
936-
3. Validates outputs via [`validateTransferOutputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:476):
936+
3. Validates outputs via [`validateTransferOutputs()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go):
937937
- Validates receivers for non-redeem outputs
938938
- Recomputes Pedersen commitments from cleartext
939939
- Validates commitments match token data
940940

941941
**Common Validation Methods**:
942-
- [`validateOutputReceivers()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:517): Extracts recipients from owner, validates count matches, verifies identity matching (with configurable empty identity handling)
943-
- [`InspectOutput()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:580): Recomputes and verifies Pedersen commitments
944-
- [`InspectIdentity()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go:603): Verifies audit info matches identity via `InfoMatcher.MatchIdentity()`
942+
- [`validateOutputReceivers()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go): Extracts recipients from owner, validates count matches, verifies identity matching (with configurable empty identity handling)
943+
- [`InspectOutput()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go): Recomputes and verifies Pedersen commitments
944+
- [`InspectIdentity()`](../../token/core/zkatdlog/nogh/v1/audit/auditor.go): Verifies audit info matches identity via `InfoMatcher.MatchIdentity()`
945945

946946
**Privacy Guarantee**: Only authorized auditors with the correct audit keys can decrypt the metadata. The ledger itself stores only commitments, preserving privacy for all other participants.
947947

@@ -1207,9 +1207,9 @@ func (p *PublicParams) Serialize() ([]byte, error) {
12071207

12081208
### 10.7 Protobuf Message Definitions
12091209

1210-
The ZKAT-DLOG (NOGH) driver uses Protocol Buffers for all serialized data structures, ensuring consistent communication between nodes and the ledger while guaranteeing backward and forward compatibility. The definitions are located in [`token/core/zkatdlog/nogh/protos/`](../../token/core/zkatdlog/nogh/protos/).
1210+
The ZKAT-DLOG (NOGH) driver uses Protocol Buffers for all serialized data structures, ensuring consistent communication between nodes and the ledger while guaranteeing backward and forward compatibility. The definitions are located in [`token/core/zkatdlog/nogh/protos/`](../../token/core/zkatdlog/nogh/protos).
12111211

1212-
#### 10.7.1 Token Messages ([`noghactions.proto`](../../token/core/zkatdlog/nogh/protos/noghactions.proto))
1212+
#### 10.7.1 Token Messages ([`noghactions.proto`](../../token/core/zkatdlog/nogh/protos/v1/noghactions.proto))
12131213

12141214
**Token**: Represents a ZKAT-DLOG token as a Pedersen commitment.
12151215
- `owner` (bytes): Serialized identity of the owner (Idemix pseudonym for end-users, X.509 for issuers/auditors)
@@ -1241,7 +1241,7 @@ The ZKAT-DLOG (NOGH) driver uses Protocol Buffers for all serialized data struct
12411241
- `output` (fabtoken.Token): The original legacy token (e.g., FabToken)
12421242
- `blinding_factor` (Zr): Blinding factor generated for the commitment
12431243

1244-
#### 10.7.2 Public Parameters ([`noghpp.proto`](../../token/core/zkatdlog/nogh/protos/noghpp.proto))
1244+
#### 10.7.2 Public Parameters ([`noghpp.proto`](../../token/core/zkatdlog/nogh/protos/v1/noghpp.proto))
12451245

12461246
**PublicParameters**: Defines the cryptographic setup and governance rules.
12471247
- `token_driver_name` (string): Always `"zkatdlognogh"`
@@ -1264,7 +1264,7 @@ The ZKAT-DLOG (NOGH) driver uses Protocol Buffers for all serialized data struct
12641264
- `bit_length` (uint64): Number of bits in the range (e.g., 64)
12651265
- `number_of_rounds` (uint64): Number of rounds in the protocol (log₂ of bit_length)
12661266

1267-
#### 10.7.3 Mathematical Elements ([`noghmath.proto`](../../token/core/zkatdlog/nogh/protos/noghmath.proto))
1267+
#### 10.7.3 Mathematical Elements ([`noghmath.proto`](../../token/core/zkatdlog/nogh/protos/v1/noghmath.proto))
12681268

12691269
**G1**: Elliptic curve point in group G₁.
12701270
- `raw` (bytes): Compressed point serialization (48 bytes for BLS12-381, 32 bytes for BN254)
@@ -1597,30 +1597,28 @@ var (
15971597

15981598
Located in `*_test.go` files throughout the codebase:
15991599

1600-
- **Cryptographic primitives**: [`crypto/rp/bulletproof_test.go`](../../token/core/zkatdlog/nogh/v1/crypto/rp/bulletproof_test.go)
1600+
- **Cryptographic primitives**: [`crypto/rp/bulletproof/rp_test.go`](../../token/core/zkatdlog/nogh/v1/crypto/rp/bulletproof/rp_test.go)
16011601
- **Token operations**: [`issue_test.go`](../../token/core/zkatdlog/nogh/v1/issue_test.go), [`transfer_test.go`](../../token/core/zkatdlog/nogh/v1/transfer_test.go)
16021602
- **Validation**: [`validator/validator_test.go`](../../token/core/zkatdlog/nogh/v1/validator/validator_test.go)
16031603

16041604
#### 13.2.2 Integration Tests
16051605

1606-
Located in [`integration/token/`](../../integration/token/):
1606+
Located in [`integration/token/`](../../integration/token):
16071607

16081608
- **End-to-end workflows**: Issue → Transfer → Redeem
16091609
- **Multi-party scenarios**: Multiple issuers, auditors, users
16101610
- **Network integration**: Fabric network interaction
16111611

16121612
#### 13.2.3 Regression Tests
16131613

1614-
Located in [`validator/regression/`](../../token/core/zkatdlog/nogh/v1/validator/regression/):
1614+
Located in [`regression/`](../../token/core/zkatdlog/nogh/v1/regression):
16151615

16161616
- **Proof compatibility**: Ensure proofs remain valid across versions
16171617
- **Serialization stability**: Maintain wire format compatibility
16181618
- **Performance regression**: Track performance changes
16191619

16201620
#### 13.2.4 Benchmark Tests
16211621

1622-
Located in [`benchmark/`](../../token/core/zkatdlog/nogh/v1/benchmark/):
1623-
16241622
- **Performance measurement**: Proof generation and verification times
16251623
- **Scalability testing**: Large numbers of inputs/outputs
16261624
- **Memory profiling**: Memory usage patterns
@@ -1629,8 +1627,6 @@ For detailed benchmark results and analysis, see the [ZKAT-DLOG Benchmark Docume
16291627

16301628
### 13.3 Monitoring and Metrics
16311629

1632-
**Implementation**: [`metrics.go`](../../token/core/zkatdlog/nogh/v1/metrics.go)
1633-
16341630
#### 13.3.1 Key Metrics
16351631

16361632
The driver currently implements **2 core performance metrics**:
@@ -1680,7 +1676,7 @@ type Metrics struct {
16801676
### 14.3 Implementation References
16811677

16821678
- [IBM Mathlib](https://github.com/IBM/mathlib) - Cryptographic library
1683-
- [Hyperledger Fabric](https://hyperledger-fabric.readthedocs.io/) - Blockchain platform
1679+
- [Hyperledger Fabric](https://hyperledger-fabric.readthedocs.io) - Blockchain platform
16841680
- [Protocol Buffers](https://developers.google.com/protocol-buffers) - Serialization format
16851681

16861682
### 14.4 Related Documentation
@@ -1709,19 +1705,18 @@ type Metrics struct {
17091705
- **Auditor Service**: [`auditor.go`](../../token/core/zkatdlog/nogh/v1/auditor.go)
17101706
- **Public Parameters**: [`setup/setup.go`](../../token/core/zkatdlog/nogh/v1/setup/setup.go)
17111707
- **Token Management**: [`token/service.go`](../../token/core/zkatdlog/nogh/v1/token/service.go)
1712-
- **Metrics**: [`metrics.go`](../../token/core/zkatdlog/nogh/v1/metrics.go)
17131708

17141709
**Cryptographic Primitives**:
1715-
- **Issue Logic**: [`issue/`](../../token/core/zkatdlog/nogh/v1/issue/)
1716-
- **Transfer Logic**: [`transfer/`](../../token/core/zkatdlog/nogh/v1/transfer/)
1717-
- **Audit Logic**: [`audit/`](../../token/core/zkatdlog/nogh/v1/audit/)
1718-
- **Validator**: [`validator/`](../../token/core/zkatdlog/nogh/v1/validator/)
1719-
- **Upgrade Service**: [`crypto/upgrade/`](../../token/core/zkatdlog/nogh/v1/crypto/upgrade/)
1710+
- **Issue Logic**: [`issue/`](../../token/core/zkatdlog/nogh/v1/issue)
1711+
- **Transfer Logic**: [`transfer/`](../../token/core/zkatdlog/nogh/v1/transfer)
1712+
- **Audit Logic**: [`audit/`](../../token/core/zkatdlog/nogh/v1/audit)
1713+
- **Validator**: [`validator/`](../../token/core/zkatdlog/nogh/v1/validator)
1714+
- **Upgrade Service**: [`crypto/upgrade/`](../../token/core/zkatdlog/nogh/v1/crypto/upgrade)
17201715

17211716
**Testing**:
17221717
- **Unit Tests**: [`issue_test.go`](../../token/core/zkatdlog/nogh/v1/issue_test.go), [`transfer_test.go`](../../token/core/zkatdlog/nogh/v1/transfer_test.go)
1723-
- **Benchmarks**: [`benchmark/`](../../token/core/zkatdlog/nogh/v1/benchmark/)
1724-
- **Integration Tests**: [`integration/token/fungible/dlog/`](../../integration/token/fungible/dlog/), [`integration/token/nft/dlog/`](../../integration/token/nft/dlog/)
1718+
- **Benchmarks**: [`benchmark/`](../../token/core/zkatdlog/nogh/v1/benchmark)
1719+
- **Integration Tests**: [`integration/token/fungible/dlog/`](../../integration/token/fungible/dlog), [`integration/token/nft/dlog/`](../../integration/token/nft/dlog)
17251720

17261721
---
17271722

0 commit comments

Comments
 (0)