Persons A, B and C put x€, y€ and z€ in a pot, respectively. Suppose that anyone can make a withdrawal from the pot as long as they prove they have such a right and that the y€ that B deposited is addressed to me. Is there a way for me to prove cryptographically that I am entitled to that amount without revealing that its origin was B?
How about the following, not practical, but proof of viability with lot's of usage of Secure-Multi-Party-Computation) :
A,B,C generate using secure multi-party-computation: a joint private/public key, none of them have the private key individually only together. Also a simple symmetric key shared between them (each with one shard).
The initial balance sheet is encrypted with the shared symmetrical key.
When someone wants to give money to someone, they sign a statement saying so with their own personal private key, and then encrypt the signed transfer order with the shared public key. When this encrypted transfer order is presented, together they may apply secure multi party computation, to verify it, verify balance, approve/reject the order and produce new encrypted balance(Possibly also provide ZKP of correctness of the process).