Privacy & confidential transactions

fully homomorphic encryption

Fully homomorphic encryption (FHE) lets you compute on data while it stays encrypted, producing an encrypted result that, when finally decrypted, equals what you would have got by computing on the plaintext. Imagine handing a locked glovebox of ingredients to a chef who can cook a full meal without ever opening the box, then giving you back a sealed dish that only your key can open. For blockchains, this is the holy grail of confidential computation: smart contracts could run on private inputs and private state, with validators executing the logic correctly while never seeing the data they compute on.

The breakthrough was Craig Gentry's 2009 construction, the first scheme supporting both addition and multiplication on ciphertexts an unbounded number of times. The challenge is that every homomorphic operation injects a little noise into the ciphertext, and after enough operations the noise overwhelms the message; Gentry's key idea, bootstrapping, homomorphically re-encrypts a ciphertext to refresh and reduce its noise, enabling unlimited computation. Modern schemes — BGV and BFV for exact integer arithmetic, CKKS for approximate real-number arithmetic, and TFHE for fast boolean operations with cheap bootstrapping — make FHE far more practical than the original, though still costly.

On-chain, FHE underpins an emerging class of confidential smart-contract platforms. Zama's fhEVM brings TFHE-based encrypted types to the EVM so contract state and inputs can remain ciphertext, with projects like Fhenix and Inco building similar confidential execution layers. Because no single party should hold the decryption key (that would be a privacy and trust single point of failure), these systems pair FHE with threshold or multiparty decryption, so a quorum of validators must cooperate to decrypt a result, and only when the contract logic authorises it.

It is essential to be honest about the state of the art: FHE is powerful but slow, with overheads often thousands to millions of times that of plaintext computation, and ciphertexts are large. It is complementary to, not a replacement for, zero-knowledge proofs — ZK proves a statement about data you hold, while FHE computes on data nobody can see, and the two are increasingly combined (verifiable FHE) so that an encrypted computation also comes with a proof it was done correctly. On-chain FHE is real and shipping in early forms, but for now it suits specific confidential operations rather than running entire high-throughput applications.

Dec( Enc(a) ⊕ Enc(b) ) = a + b Dec( Enc(a) ⊗ Enc(b) ) = a * b

Homomorphic operations on ciphertext decrypt to the same result as on plaintext.

FHE and ZK are often confused. ZK proves you know or computed something correctly without revealing it; FHE lets someone else compute on your secret without learning it. ZK hides the prover's witness; FHE hides the computer's inputs.

Also called
FHE全同態加密