Skip to main content

Decryption Request Flow

The process of requesting decryption through Smart Contracts starts the same as every other FHE Operation Request 📌steps 1-4 Here we’ll continue from FheOS server handling such request as follows:

Flow Diagram

The following diagram illustrates the complete flow of an FHE Decryption request in the CoFHE ecosystem:
End-to-end flow of an FHE Decryption request through the CoFHE system components
Figure 1: End-to-end flow of an FHE Decryption request through the CoFHE system components

Step-by-Step Flow

1

Steps 1-4 - FHE Operation Request

The decryption request follows the same initial steps as a standard FHE operation request:1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣Refer to FHE Operation Request Flow for details on steps 1-4, which include:
  • Integration with the Client SDK
  • Requesting an FHE Operation
  • Task Manager Processing
  • Slim Listener Processing
2

FheOS server - Decryption Execution

The FheOS server handles decryption requests:
  1. Create execution thread on the fheOS server
  2. FheOS server calls the threshold network with:
    • The ciphertext to be decrypted
    • Transaction hash from the host chain
    • Original operation handle
3

Threshold network security protocol

The Threshold Network performs secure decryption:
  • Verify the host chain requested the desired decryption
  • Retrieve the actual ciphertext hash from private storage
  • Validate ciphertext hash integrity
  • Perform secure decryption
4

Result Delivery

After decryption is complete: 7️⃣
  • The Threshold Network returns the plaintext along with an ECDSA signature to the client (via the Client SDK)
  • The client (or any relayer) calls FHE.publishDecryptResult(ctHash, result, signature) or FHE.verifyDecryptResult(ctHash, result, signature) on-chain
  • The on-chain contract verifies the signature before accepting the result
This enables permissionless result delivery — anyone holding a valid signature can publish. This is useful for client-driven settlement or relayer patterns.