Homomorphic encryption

Perform encrypted computations

What is homomorphic encryption?

Homomorphic encryption is a type of encryption that allows computations to be performed on encrypted data without needing to decrypt it first. The result of these computations, when decrypted, matches the outcome of performing the same operations on the original unencrypted data. This property enables processing and analyzing data while preserving its confidentiality.

Homomorphic encryption is important because it allows computations to be performed on encrypted data without needing to decrypt it first. This capability is significant for several reasons:

1. Privacy Preservation: With homomorphic encryption, sensitive data can remain encrypted even while being processed. This is crucial in scenarios like cloud computing, where users might need to outsource computation to a third party but want to ensure that their data remains confidential.

2. Security: Since the data is never decrypted during processing, the risk of exposure due to a breach or insider threat is significantly reduced. This enhances the overall security of the system handling the data.

3. Regulatory Compliance: Many industries, such as healthcare and finance, are subject to strict regulations regarding data privacy. Homomorphic encryption can help organizations comply with these regulations by enabling them to process data in an encrypted form.

4. Data Utility: It allows for meaningful analysis and computation on encrypted data without compromising its security. This is particularly useful in collaborative environments where different parties need to work with shared data without revealing the actual contents.

With linear bandwidth scaling and decryption run times in the tens-of-milliseconds, encryption is more efficient and lightweight.

What homomorphic encryption can be used for

Programmable encryption and conditional decryption can be useful for a wide range of use cases including encrypted on-chain intents (limit orders, stop-loss orders, programmable trading), bad-MEV prevention, private governance, censorship and front-running resistant shared sequencing, rollups, on-chain gaming, legal contracts, randomness generation oracles, and any scenario where asymmetric information limits the use of a decentralized application.

How it works

From any application frontend, a user can encrypt a transaction by declaring its condition for decryption. The encrypted transaction is then submitted to the network. Multiple transactions can be encrypted under the same conditions and decrypted in batches.

Once the condition for decryption is met, validators are notified and work together to generate a threshold decryption key. The private key is then sent to the destination chain to decrypt the encrypted transaction.

The private key is used to decrypt all encrypted transactions for each decryption condition, which are then executed on the network upon which the app resides.

Last updated