I have mobile devices (low power, low bandwidth) need to act as a proxy for certain types of P2P encrypted data, such as voting, bitcoin payment, or other specific-purpose usage, and I want to make sure that each phone's data service isn't abused.
To that end I need to verify
- The general contents of the data going through my service
- Not know what the data is exactly (a range-check is sufficient)
Question
Is Verifiable Encryption the correct thing to learn to solve this issue?
What is it, and how does it work?
What roadmap should I follow when learning it?
Encrypted Data
The data will be a ZKP (like Bitcoin) and any of the following
- A vote for a candidate
- A bid for a product (eBay)
- A bitcoin-style purchase (where the Tor part anonymizes the buyer and the merchant) with a .onion equivalent