Skip to content

Pi-Defi-world/acbu-zk

Repository files navigation

ACBU-ZK: Zero-Knowledge Compliance for Stellar DeFi

Privacy-preserving KYC verification for the ACBU stablecoin platform.

ACBU-ZK lets users prove they meet compliance requirements — KYC tier and jurisdiction — without revealing their personal data on the Stellar blockchain.


The Problem

ACBU serves African users and institutions who need regulatory compliance. Without privacy:

Approach Problem
Store KYC on-chain Everyone sees your passport data. Forever.
Trust a central server Single point of failure. Users must trust the database.
No compliance Institutions can't use the platform.

The Solution

ACBU-ZK uses zero-knowledge proofs to cryptographically prove compliance without revealing the underlying data.

"I have enhanced KYC and I'm in Nigeria" → proven on Stellar.

KYC level, country, and all personal data → never revealed on Stellar.


How It Works (Non-Technical)

1. VERIFY IDENTITY (Redacted KYC)
   ┌────────────────────────────────────────┐
   │ Upload ID docs → AI checks format      │
   │ Human validators review REDACTED docs  │
   │ (Names ████, ID numbers ████, etc.)   │
   │ Consensus → your account is verified   │
   └────────────────────────────────────────┘

2. GENERATE ZK PROOF (Browser)
   ┌────────────────────────────────────────┐
   │ Your credentials stay in your browser. │
   │ A mathematical proof is generated      │
   │ proving you meet pool requirements     │
   │ WITHOUT revealing your actual data.    │
   └────────────────────────────────────────┘

3. SUBMIT TO STELLAR
   ┌────────────────────────────────────────┐
   │ Only the proof is sent to Stellar.     │
   │ Contract verifies it using BN254       │
   │ elliptic curve cryptography.           │
   │ Your wallet is flagged as compliant.   │
   └────────────────────────────────────────┘

4. ACCESS RESTRICTED POOLS
   ┌────────────────────────────────────────┐
   │ Pool contract checks: is this wallet   │
   │ verified? → Yes → transaction proceeds │
   │ No one on-chain can see your KYC level │
   │ or country.                            │
   └────────────────────────────────────────┘

What Stellar sees vs what Stellar doesn't see

Visible on Stellar Hidden from Stellar
commitment (cryptographic hash) Your actual KYC level
required_kyc (pool rule) Your actual country
allowed_country (pool rule) Your name, address, ID number
nullifier (prevents double-use) Any personal data at all

Project Structure

acbu-zk/
├── circuits/              # Noir ZK circuits
│   └── zk_comply_circuit/ # The compliance proof circuit
├── contracts/             # Soroban smart contracts
│   ├── zk_verifier/       # On-chain proof verifier + nullifier storage
│   └── zk_gate/           # Pool gating contract (cross-contract calls)
├── frontend/              # React + TypeScript UI
│   └── zk-comply-frontend/
├── sdk/                   # TypeScript SDK
│   └── src/
│       ├── poseidon.ts    # Poseidon2 hash helpers
│       ├── prover.ts      # Proof generation via Noir WASM
│       └── contracts.ts   # Stellar contract interactions
└── docs/                  # Documentation

Quick Links


Built For

Stellar Hacks: Real-World ZK — June 15–29, 2026

Built on Stellar Protocol 26 (Yardstick) with native BN254 curve operations and Poseidon hash support. Uses Noir for ZK circuit development and Soroban for on-chain verification.


License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors