Smart Contract Library
The Smart Contract Library extends the EVM with encrypted data types and operations. It is deployed on the host blockchain and provides:- Encrypted data types (
ebool
,eaddress
,estring
,euint32
) - Arithmetic operations (
e.add
,e.sub
,e.mul
) - Comparison operations (
e.eq
,e.le
,e.gt
) - Conditional operations (
e.select
) - Decryption operations (
e.asyncDecrypt
)
Confidential Compute Nodes
The confidential compute nodes run in Trusted Execution Environments (TEEs) and execute confidential computations. Each compute node:- Runs the Inco computation binary in a secure enclave
- Processes encrypted operations based on blockchain events
- Validates access control before decryption
Decryption Nodes + Callback Relayer
Multiple decryption nodes operate in a quorum of TEEs to ensure security and reliability. This is how a ciphertext can be converted into plaintext, and settled back onchain:- Monitors blockchain for decryption requests
- Forwards decryption requests to the decryption network (TEEs)
- Collects signed results from the decryption network
- Submits decryption results back to the blockchain via callback transactions
Client-side JavaScript Library
The JavaScript Library provides client-side functionality for interacting with the host chain and Inco:- Encrypts user inputs using the network’s public key
- Handles ephemeral key and EIP-712 signature generation for reencryption requests
- Decrypts results locally for the user