How proof generation works in Kloak
Selective disclosure turns a wallet-held payment receipt into a shareable proof statement without forcing the proof owner to reveal more than the workflow requires.
Receipt ownership
Proof generation is tied to the receipt the wallet actually owns.
The wallet that holds the payer receipt can generate payer-side proofs.
The wallet that holds the receiver receipt can generate receiver-side proofs.
The backend no longer depends on stored payer identity to decide who can create a proof.
Proof types
Different workflows need different statements, so Kloak supports multiple proof shapes.
| Proof type | What it reveals | Best fit |
|---|---|---|
| Basic | That the payment exists | General compliance checks when exact amount is not needed |
| Amount | The exact amount | When the reviewer must see the full total |
| Threshold | That the amount met or exceeded a floor | Minimum-spend or threshold-style checks |
| Time-bound | That the payment happened within a chosen range | Reporting periods and timing-bound workflows |
Reuse, duplicates, and revocation
Proofs are reusable documents, not one-time spends.
Reusable by design
Duplicate guard
Stored proof data
Stored proof data is minimized to avoid turning the backend into a copy of hidden payment facts.
Basic proofs do not store hidden exact amount or exact timestamp by default.
Threshold proofs store the threshold statement, not the hidden exact amount.
Time-bound proofs store the disclosed range, not the hidden exact timestamp.
Proof payloads are encrypted at rest.