A fund proves a coverage and KYC predicate over a supplied private loan book without revealing individual loans. Research prototype with reproducible tests and explicitly scoped network evidence.
An open-source zero-knowledge verifier. A Groth16/BN254 circuit proves, over a PRIVATE loan book, that (1) performing collateral covers a public threshold, (2) every supplied KYC flag is true, and (3) the private witnesses hash to a blinded public commitment. Only the threshold and commitment are revealed. A legacy native model checks a proof and a servicer signature over the same commitment. The separate local pilot gate pins the key and servicer and records a policy-checked approval receipt; it does not mint tokens or establish that the off-chain data is true.
| Proof size | 128 bytes, constant regardless of book size |
|---|---|
| Privacy | individual loans never revealed; public inputs are 2 field elements |
| Local Solana pilot approval | 85,529 CU in a 672-byte transaction with separate payer and servicer signatures. The compiled gate suite accepted two successive approvals and rejected 26 invalid cases without changing state. |
| Legacy proof verification | 83,354 CU in the latest local-validator and SBF-harness runs; earlier local result: 83,352 CU. Sepolia: 197,605 verifier-only gas, 224,234 total transaction gas. These are separate examples, not the pilot approval transaction. |
| Live on public Ethereum | Deployed verifier contract 0x8c3DD5E6b660D6aFdCdCa2FB757b2E777d8511Df; the verification transaction 0x91196bd0a9b6d192733bdc7df7126520c142f2bbda2c146190ebddd75aaae7c7 emits Verified(true, 197605). Inspect the successful transaction. This contract verifies a baked-in example proof. |
| On-chain cost vs book size | constant: a 10-loan and a 10,000-loan fund cost the same to verify |
| Prover scale | 10,000 loans: 72.17s proving plus 64.61s setup; 1,000 loans: 3.82s proving (2026-09-17 run) |
| Circuit | 5,911 R1CS constraints for the 10-loan audit circuit |
| Attack test | swap in a different book and reuse the signature → blocked |
1. Empirical adversarial audit (cargo run --bin audit): checks that fail if the ZK claims were fabricated. Result: the circuit genuinely enforces solvency, all-KYC, and commitment binding; insolvent, KYC-fail, and wrong-commitment books each fail the constraint system; a proof with one flipped bit or an altered public input is rejected. Passed.
2 & 3. Historical independent code reviews. Two separate reviewers examined the source and their findings and follow-up are recorded in AUDIT.md. These reviews found real cryptography and prompted documented fixes; they were not a formal third-party security audit. The newer pilot evidence is developer-run regression evidence.
Devnet deployment is pending faucet funding. The local program ID is not evidence of a public deployment. See deployment status and receipts.
./demo.sh runs unit tests, loan-tape decisions, proof checks, the native signature-binding model, 100/1,000-loan benchmarks and the SBF compute measurement. Run cargo run --release --bin audit and cargo run --release --bin bench -- 10000 separately. Public receipts are checked separately. MIT-licensed; logs are in DEPLOYMENTS.md.
Full detail: KNOWN_LIMITATIONS.md. This is a research prototype, not a production system.