mit-dci / opencbdc-tx

A transaction processor for a hypothetical, general-purpose, central bank digital currency
Other
896 stars 198 forks source link

What is the correct transaction protocol (especially in the face of privacy trade-offs)? #28

Open madars opened 3 years ago

madars commented 3 years ago

How does a user learn that they have received a payment?

This appears to be a hard problem when users can't self-validate the entire state of the system (e.g. are light clients or, in our case, CBDC users who simply don't get access to all transactions) and system provides strong privacy.

In particular, in Zerocash/Zcash-style systems a user is tasked with decrypting every payment and see if the decryption succeeds. This is also true for decoy-based privacy like CryptoNote/Monero. The issue appears inherent -- strong privacy mandates that no third party can detect when a payment is sent to you.

Some potential solutions include:

madars commented 2 years ago

There is a new proposal to use fully homomorphic encryption for payment detection: Oblivious Messsage Retrieval by Zeyu Liu and Eran Tromer. The key sizes are large but it is an interesting feasibility result!