Technical Evidence

Proof-of-Solvency for Tokenized Private Credit

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.

What it is

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.

Measured results

Proof size128 bytes, constant regardless of book size
Privacyindividual loans never revealed; public inputs are 2 field elements
Local Solana pilot approval85,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 verification83,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 EthereumDeployed 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 sizeconstant: a 10-loan and a 10,000-loan fund cost the same to verify
Prover scale10,000 loans: 72.17s proving plus 64.61s setup; 1,000 loans: 3.82s proving (2026-09-17 run)
Circuit5,911 R1CS constraints for the 10-loan audit circuit
Attack testswap in a different book and reuse the signature → blocked

Independent verification (audited three ways)

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.

Public Solana deployment

Devnet deployment is pending faucet funding. The local program ID is not evidence of a public deployment. See deployment status and receipts.

Reproducible

./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.

What is NOT yet production-safe (stated honestly)

Full detail: KNOWN_LIMITATIONS.md. This is a research prototype, not a production system.