Programmable Privacy for the EVM

Use Zama's fhEVM to enable confidential smart contracts in your blockchain, unlocking new use cases in DeFi, gaming and more!

Read the white paper
Read the white paper
Read the white paper
Read the white paper
Read the white paper
Read the white paper
Read the white paper

Zama's fhEVM Enables Confidential Smart Contracts using
Fully Homomorphic Encryption (FHE)

Onchain data is public by design, making it hard to build dapps that require confidentiality. Zama's fhEVM, the first private smart contract protocol using fully homomorphic encryption (FHE), enables transaction data and onchain state to remain encrypted end-to-end, even during processing.

End-to-end encryption of transactions and state.

Composability & data availability onchain.

No impact on existing dapps and state.

Unlock a Myriad of New Use Cases, for Consumers, Businesses and Regulated Industries

Tokenization

Swap tokens and RWAs onchain without others seeing the amounts.

Blind auctions

Bid on items without revealing the amount or the winner.

Onchain games

Keep moves, selections, cards, or items hidden until ready to reveal.

Confidential voting

Prevents bribery and blackmailing by keeping votes private.

Encrypted DIDs

Store identities onchain and generate attestations without ZK.

Private transfers

Keep balances and amounts private, without using mixers.

Build Confidential Dapps Just as You Would Regular Ones

Solidity Integration
FhEVM contracts are simple solidity contracts that are built using traditional solidity toolchains.

Simple DevX
Developers can use the euint data types to mark which part of their contracts should be private.

Programmable Privacy
‍All the logic for access control of encrypted states is defined by developers in their smart contracts.

contract EncryptedERC20 {
// A mapping from address to an encrypted balance.
mapping(address => euint32) internal balances;

// Transfers an encrypted amount.
function _transfer(address from, address to, euint32 amount) internal {
	// Make sure the sender has enough tokens.
  TFHE.req(TFHE.le(amount, balances[from]));

  // Add to the balance of `to` and subract from the balance of `from`.
  balances[to] = TFHE.add(balances[to], amount);
  balances[from] = TFHE.sub(balances[from], amount);
}

// Returns the balance of the caller encrypted under the provided public key.
function balanceOf(
	bytes32 publicKey,
	bytes calldata signature
) public view onlySignedPublicKey(publicKey, signature) returns (bytes memory) {
	return TFHE.reencrypt(balances[msg.sender], publicKey, 0);
}

Operational Versatility by Design

Consensus:
Proof of Stake (permissionless)
Proof of Authority (permissioned)

Deployment:
L1, L2 or L3 public or enterprise chain
App chain
ZK-fraud-proof rollup (coming 2024)

Decryption:
PoS or PoA threshold decryption
KMS or HSM based centralized decryption

Zama's fhEVM Combines State of the Art Cryptography to Achieve Unprecedented Levels of Privacy and Security

FHE

Fully homomorphic encryption is used to compute on private state, directly on-chain.

+

MPC

Multi-party computation is used for threshold decryption of FHE ciphertexts.

+

ZK

Zero-knowledge proofs are used to ensure encryption and decryption integrity.


Read more with our paper: Practical and Efficient FHE-based MPCPractical and Efficient FHE-based MPC

The Most Comprehensive Confidential Smart Contract Solution

Zama's fhEVM

Other FHE

ZK

Mixers

Operations
supported

Everything
Only additions & multiplications
Everything
None

Privacy model

Hides the data
Hides the data
Hides the data
Hides the identity

Data availability

Onchain
Onchain
Offchain
Onchain

Encrypted state composability

Yes
Limited
No
No

On-chain PRNG

Yes
No
No
No

Developer experience

Easy
Medium
Hard
Hard

Compliance

At the application
level
At the application
level
At the user
level
At the user
level

Security

+++
?
+++
+++

More Resources

Read our latest fhEVM blog posts and learn more with our developer tutorials and presentations.

Talk to the Zama team to explore FHE.

Do you want to know more about Zama's confidental smart contract solutions? We're happy to discuss your use cases and explore together what is possible.

Contact us