# ZK-CBDC Validation Framework

## Overview

Zero-Knowledge CBDC Validation ensures privacy-preserving compliance by enabling:
- Balance verification without revealing balances
- Transaction compliance without revealing transaction history
- ZK-enabled AML and sanctions screening

## ZK Validation Modes

### Mode 1 – ZK-Balance Proofs (zkBP)

Proves wallet has sufficient funds **without revealing amount**.

**Service**: `zk-balance-proof.service.ts`

**API Endpoint**: `POST /api/v1/zk-cbdc/balance-proof`

### Mode 2 – ZK-Compliance Proofs (zkCP)

Ensures:
- AML rules satisfied
- Sanctions clear
- Transaction within policy limits

**Service**: `zk-compliance-proof.service.ts`

**API Endpoint**: `POST /api/v1/zk-cbdc/compliance-proof`

### Mode 3 – ZK-Identity Proofs (zkIP)

Provides confirmation that:
- A wallet belongs to a verified entity
- Without disclosing identity attributes

**Service**: `zk-identity-proof.service.ts`

**API Endpoint**: `POST /api/v1/zk-cbdc/identity-proof`

## Smart Contract Verification

Smart contracts validate:
```
if zkBP && zkCP && zkIP:
    execute_CBDC_transfer()
```

**Service**: `zk-verification.service.ts`

**API Endpoint**: `POST /api/v1/zk-cbdc/verify`

## Database Models

- `ZkProof` - ZK proof records
- `ZkVerification` - Verification results

## Integration Points

- CBDC transaction service (existing)
- GBIG identity graph (Volume V)
- AML engine (existing)

## Note

ZK proof library integration required (e.g., circom, snarkjs, or similar). Current implementation uses placeholder proofs for structure.

