π§© Zikuani Architecture:
1. Overviewβ
This document outlines the architecture of Zikuani, a privacy-preserving identity verification system that extracts and validates information from the mobile driver's identity (mDL) using zero-knowledge (ZK) proofs, and verifies these proofs through Soroban smart contracts on the Stellar blockchain.
The objective is to enable secure and compliant identity verification where users can prove authenticity without disclosing personal information.
2. Componentsβ
| Layer | Component | Description |
|---|---|---|
| Credential Source | mDL App (ISO/IEC 18013-5) | Provides verified identity data and certificates signed by government authorities. |
| Extraction Module (Zikuani Bridge) | Extracts mDL data via NFC or QR; validates government-issued signatures and certificates. | |
| ZK Prover Device / App | Generates zero-knowledge proofs from hashed mDL data using Circom | |
| Zikuani Wallet | Stores hashed credentials and ZK proofs; interacts with Soroban for verification. | |
| Soroban Smart Contract | Verifies ZK proofs on Stellarβs WASM-based contract platform; marks verified users on-chain. | |
| Verifier Applications | dApps that query verification status on Stellar. |
3. Data and Process Flowβ
Step 1 β mDL Data Extractionβ
- The user opens Zikuani Wallet.
- The app connects to the mDL via Deep link, QR or NFC (ISO/IEC 18013-5 interface).
- The mDL provides:
- Signed identity data (e.g., name, date of birth, identity number).
- X.509 certificate chain confirming government authority.
Step 2 β Proof Generation (on Device)β
- Commitment and verification conditions (e.g., βover 18β, βidentity validβ)
Step 4 β On-Chain Verification (Soroban)β
- The wallet calls the Soroban contract:
verify_identity(proof, public_inputs, verifier_pubkey) - The contract runs an embedded ZK verifier (Groth16).
- If the proof is valid, the contract stores verification:
VerifiedIdentities.put(address, true)
Step 5 β Verification by Third Partiesβ
Other Stellar-based applications or DAOs can query:
is_verified(user_address)
to confirm identity validity without accessing private details.β
4. Trust and Security Modelβ
| Layer | Trust Anchor | Description |
|---|---|---|
| mDL Issuer | Digital certificate authority | Ensures authenticity of issued credentials. |
| Zikuani Bridge | Validates signatures locally | Prevents tampering or fake credentials. |
| ZK Prover | Local device | Witness data never leaves the userβs control. |
| Soroban Contract | On-chain, open-source verifier | Deterministic, auditable verification. |
6. Architecture Diagramβ
βββββββββββββββββββββββββββββββββ
β mDL System β
β βββββββββββββββββββββββββββ β
β Govt CA + Issuer certs + mDL β
βββββββββββββββββ¬ββββββββββββββββ
β (NFC/QR 18013-5)
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β Zikuani Mobile Wallet β
β Validate mDL β Hash Attributes β Store β
βββββββββββββββββ¬βββββββββββββββββββββββββ
β Secure Transfer (BLE/API)
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β ZK Prover Device / Service β
β Circomβ Generate Proof β
βββββββββββββββββ¬βββββββββββββββββββββββββ
β proof, public_inputs
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β Soroban Smart Contract (Stellar) β
β VerifyProof() β mark user as verified β
βββββββββββββββββ¬βββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β dApps / DAOs / Exchanges (Verifiers) β
β Query is_verified(address) β boolean β
ββββββββββββββββββββββββββββββββββββββββββ
C1 β Issuer Β· Holder Β· Verifierβ

C2 β Technical Architectureβ

C3 β Soroban Verifier Contractβ
β
7. Technology Stackβ
| Layer | Technology | Notes |
|---|---|---|
| ZK proof system | Groth16 (zk-SNARK) | Constant-size proofs, fast on-chain verification |
| Elliptic curve | BN254 (alt-bn128) | Native Soroban Protocol 25 host functions |
| Hash function | Poseidon | ZK-friendly; Protocol 25 native |
| Circuit language | Circom 2.x | Compiles to R1CS for Groth16 |
| Smart contract | Rust / Soroban SDK | wasm32v1-none target β contracts/zk_verifier/ |
| Blockchain | Stellar / Soroban | Protocol 25 (X-Ray) β BN254 + Poseidon as host functions |
| Mobile application | Android SDK, JavaScript | Identity Wallet |
| Proof serialization | TypeScript | Groth16 JSON proof β Soroban byte arrays |
| Identity standard | ISO/IEC 18013-5 (mDL) | International mobile Driver's License β 30+ countries |
8. Key Benefitsβ
- Privacy-preserving: Only zero-knowledge proofs reach the blockchain.
- Compliant: Tied to government-issued mDL certificates.
- Efficient: Sorobanβs WASM environment supports ZK verification with low gas cost.
- Interoperable: dApps and DAOs on Stellar can natively check verification status.