A
ACL (Access Control List)
ACL (Access Control List)
FHE.allow() or FHE.allowThis().Allow
Allow
FHE.allow(ciphertext, address) for persistent permission, FHE.allowThis(ciphertext) for the current contract, and FHE.allowTransient(ciphertext, address) for single-transaction permission.Arithmetic Circuit
Arithmetic Circuit
B
BFV (Brakerski-Fan-Vercauteren)
BFV (Brakerski-Fan-Vercauteren)
BGV (Brakerski-Gentry-Vaikuntanathan)
BGV (Brakerski-Gentry-Vaikuntanathan)
Bootstrapping
Bootstrapping
Branchless Programming
Branchless Programming
if/else branches, using constructs like FHE.select() instead.C
CKKS (Cheon-Kim-Kim-Song)
CKKS (Cheon-Kim-Kim-Song)
Ciphertext
Ciphertext
Confidential Smart Contract
Confidential Smart Contract
Coprocessor
Coprocessor
cToken (Confidential Token)
cToken (Confidential Token)
D
Decryption
Decryption
FHE.makePubliclyDecryptable() (on-chain reveal) or through re-encryption (user-specific off-chain decryption via instance.userDecrypt()).Devnet
Devnet
E
eaddress
eaddress
FHE.eq, FHE.ne, FHE.select.ebool
ebool
FHE.gt, FHE.eq) and consumed by FHE.select and boolean logic operations.euint8 / euint16 / euint32 / euint64 / euint128 / euint256
euint8 / euint16 / euint32 / euint64 / euint128 / euint256
externalEuintXX
externalEuintXX
externalEuint32, externalEuint64). Must be converted to the corresponding euintXX type using FHE.fromExternal() before use in FHE operations.ERC-7984
ERC-7984
euint64 type.F
FHE (Fully Homomorphic Encryption)
FHE (Fully Homomorphic Encryption)
FHE Library
FHE Library
FHE from @fhevm/solidity/lib/FHE.sol.FHE.select
FHE.select
FHE.select(ebool condition, euintXX valueIfTrue, euintXX valueIfFalse). The fundamental branching primitive in FHE programming, replacing if/else for encrypted conditions.fhEVM
fhEVM
G
Gas (FHE context)
Gas (FHE context)
Gentry, Craig
Gentry, Craig
H
Handle
Handle
Homomorphic
Homomorphic
Enc(a) + Enc(b) = Enc(a + b), the encryption is homomorphic with respect to addition.Hybrid Contract
Hybrid Contract
I
Information Leakage
Information Leakage
Input Encryption
Input Encryption
@zama-fhe/relayer-sdk) and the network’s FHE public key.K
Key Management
Key Management
- FHE Public Key: Used by clients to encrypt inputs. Publicly available.
- Network Key: Used by the coprocessor to evaluate FHE operations. Distributed among validators.
- User Keys: Used for re-encryption (viewing encrypted data specific to a user).
L
Lattice-Based Cryptography
Lattice-Based Cryptography
Learning With Errors (LWE)
Learning With Errors (LWE)
M
Mock Mode
Mock Mode
MPC (Multi-Party Computation)
MPC (Multi-Party Computation)
N
Noise
Noise
Noise Budget
Noise Budget
O
On-Chain Decryption
On-Chain Decryption
FHE.makePubliclyDecryptable(). The decrypted value is visible to all chain observers.Overflow (Silent)
Overflow (Silent)
FHE.add on euint8 with values 200 and 100 produces 44 (300 mod 256) without any error signal.P
Persistent Permission
Persistent Permission
FHE.allow() or FHE.allowThis(). The permission remains until the ciphertext is replaced with a new one.Plaintext
Plaintext
uint256, bool, address) as opposed to their encrypted counterparts (euint256, ebool, eaddress).Programmable Bootstrapping
Programmable Bootstrapping
R
Re-encryption
Re-encryption
Ring-LWE (Ring Learning With Errors)
Ring-LWE (Ring Learning With Errors)
S
Side Channel
Side Channel
Silent Fail
Silent Fail
FHE.select().T
TEE (Trusted Execution Environment)
TEE (Trusted Execution Environment)
TFHE (Torus Fully Homomorphic Encryption)
TFHE (Torus Fully Homomorphic Encryption)
TFHE-rs
TFHE-rs
TVS (Total Value Shielded)
TVS (Total Value Shielded)
Threshold Decryption
Threshold Decryption
Transient Permission
Transient Permission
FHE.allowTransient().Z
Zama
Zama
ZamaEthereumConfig
ZamaEthereumConfig
ZamaEthereumConfig.Zero-Knowledge Proof (ZK Proof)
Zero-Knowledge Proof (ZK Proof)