Today, unless you are really with the in crowd, you must decrypt your data before doing any meaningful work on it. There are two types of emerging technology with the power to change this: **homomorphic encryption** and **zero-knowledge proof**.

**Homomorphic Encryption**

The rough idea of homomorphic encryption is that you do a computation on encrypted data to get an encrypted answer without any need of decrypting anywhere in the middle. The diagram below will get you started.

The novel part of this technology is a special “addition” algorithm that you apply to two bits of ciphertext that we’ll presume came from encrypting two numbers. It produces a new piece of ciphertext that, if you were granted a key to decrypt it, would decrypt to the number you would have obtained if you had added the two numbers you had started with in the beginning. You can thus do the work of adding the two numbers on the ciphertext without any knowledge of what the numbers are - a powerful tool if you would like to outsource work to a not-so-trusted third party.

**Zero-Knowledge Proof**

A zero-knowledge proof is a method by which one party, traditionally called Peggy (prover), proves to another, traditionally called Victor (verifier), that they possess some particular item of knowledge **without needing to reveal that knowledge.** A classic example is a donut-shaped cave with a magic door in the back - Peggy claims she has a key to the door, but she does not want to reveal its operation to Victor. She might prove her claim by *demonstrating the ability attached to the key - *she could enter by a random path unknown to Victor, who would then shout into the cave a path she should return by. If she can perform this trick consistently, than she must have some ability to open the door as she claimed. However, Victor did not see her interact with the door.* *

**The Power of Both Combined**

Imagine you were asked to perform a simple audit - add up the expenses and make sure that the number given for the final balance is correct. Here’s a twist: you are not permitted to see the amounts of the expenses or the starting funds. This seems like a tall order, but it is precisely what homomorphic encryption and zero-knowledge proofs combined enable you to do. To subtract the (encrypted) expenses from the (encrypted) starting funds to produce an encrypted ending funds value is homomorphic encryption, and to determine whether or not that encrypted value is equal to the (plaintext) value given is an example of a zero-knowledge proof.