Zero Knowledge Proof - Offline Data I've been reading about Zero Knowledge Proofs with some interest, but I'm still unclear if it can be used to solve my real-life problem.

I'm wondering if someone can help me understand a little better how they work - intuitively it seems possible.

Let's assume I have 3 bank accounts with different balances, 1 balance is known, as read-only credentials to access the account are made public, but the second and third accounts are private, with the credentials kept secret.

Would it be possible to use a Zero Knowledge Proof to conclusively prove that the balances of the second and third accounts are what I say they are?

Including a brief description of what a ZKP is (quoting the ZKP article at Wikipedia):


  In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true, without conveying any information apart from the fact that the statement is indeed true.


So, extending this definition, the statement in my example would be: the balance of account A = X. Which the verifier would require the prover to prove is true.
You would need something to prevent do what you would do if those balances were what you said they are from causing the verifier to accept.

That main way of getting that is the prover and verifier both have a statistically binding encapsulation for each of those balances, as described in the paper Improved Efficiency for CCA-Secure Cryptosystems Built Using Identity-Based Encryption (PDF), and the prover additionally has a decapsulation string for each of those.

If you weaken from proofs to arguments as described in the paper Zero Knowledge and Soundness are Symmetric (PDF), then you could let the encapsulation scheme(s) be only computationally binding or instead have the balances be signed in a suitable format, where the prover and verifier both know the signature verification key(s).