Fully Homomorphic Encryption -What is it and why is it so cool?
What is it and why is it so cool?
You can now do computations with encrypted data
Fully Homomorphic Encryption (FHE) enables computation on encrypted data. A user can take plaintext data, encrypt it, and allow that data to be sent to third parties for processing knowing that it is never exposed.
This idea was first proposed in 1979 by researchers who discovered that multiplication of two numbers that were RSA encrypted would be equivalent to the plaintext value multiplications, if they were encrypted with the same keys.
Since then, various encryption schemes and improvements to FHE have taken place. Recent developments include breakthroughs by CKKS (Cheon-Kim-Kim-Song) for noise reduction and efficiency.
With data access and data processing separated, novel use cases of comparison and computation can be done that for privacy reasons, could not be done prior. One example is sharing encrypted data in a pool with all startups in the same genre or space. You could get a good idea of the performance of each startup without any startup actually revealing their underlying data.
So why has this not taken off yet?
Many complex computations are still non-feasible with FHE as it is today. On each multiplication operation noise is generated. If the computation become large enough, noise makes it so that it is impossible decrypt the data with any meaningful value.
FHE is a relatively new technology with few libraries or resources. This makes it it difficult for developers to get their hands on this tech for use within their applications. (FHE uses lattice-based PQC which is not vulnerable to quantum computing attacks.)
However, this does not mean that FHE is not usable in its current state for many purposes.
How can you use it?
ICME is creating a few templates that use FHE for data processing.
An example is a smart contract that takes values from users such as "sales" and compares it against similar projects to get insights into how better to run a specific web3 strategy.
Or, you can connect to a 3rd party API which may contain data that you would not want to become public, calculate these with user provided data and return an encrypted result only for your user to see.
Combining this with ICME's zero knowledge proof module would allow for interesting web3 use cases — hidden trait NFT computation, orderbook DEX, and more.
About the author
Wyatt Benno is the technical cofounder of ICME