Fairblock consists of FairyRing, FairyKit, and FairyPort:

FairyRing

A service provider chain that delivers threshold decryption, ZK verification, and re-encryption to every blockchain & application.

FairyKit

Modules that enable frontends and blockchains with encrypted transactions.

FairyPort

A cross-chain message-passing protocol that connects FairyRing to all major ecosystems.

The highly simplified flow of our approach is as follows:

Step 1

From the frontend of an app that has integrated FairyKit — Fairblock’s encryption SDK — a user encrypts a transaction declaring its condition for decryption -- in most cases, developers seamlessly enforce the condition for end users. Examples of decryption conditions include future block heights, asset prices, the conclusion of voting periods, or any other verifiable state transition. The encrypted transaction is submitted on-chain on the network where the application resides.

Step 2

The validators or sequencers of the underlying network include the encrypted transaction(s) in a block. Multiple transactions can be encrypted under the same conditions.

Step 3

Once the condition for decryption is met, FairyRing validators work together to generate a private key for threshold decryption. The private key is then sent by FairyPort to the destination chain to decrypt the encrypted transaction.

Step 4

The private key is used to decrypt all transactions in the same batch (IBE) or just the result of computations (FHE), which are then executed by the validators of the network upon which the app resides.

This composable approach to encryption availability provides developers the freedom to choose how to implement encryption into decentralized applications and users the privilege to choose if, to whom, and under what conditions their onchain activities should be revealed. Programmable encryption protects users from malicious actors and adversaries and promotes better security and fairness within blockspace.

example-user-flow

Meeting developers where they are

Rather than dedicated encrypted applications or L1s that users must navigate to, Fairblock allows developers to build encryption features directly into existing and future applications. Composable encryption removes an adoption barrier for existing applications, giving users access to information flow control within applications they already know and love.

Chain agnostic

The Fairblock SDK will be compatible with applications in the Cosmos, Ethereum, Celestia, NEAR and other L2 ecosystems such as Arbitrum and Optimism. It can support apps in existing general-purpose ecosystems, and allow developers to build novel apps and networks using these frameworks.

Practical and scalable

With encryption and decryption algorithm run times in the range of tens of milliseconds (in contrast to seconds or minutes with ZK proving), and linear bandwidth scaling (in contrast to classic threshold decryption algorithms which scale quadratically), Fairblock’s solutions are efficient, lightweight, and practical for users.

Composable

As there is no one-size-fits-all solution for encryption in decentralized applications, Fairblock’s tools can be combined and configured to tackle a spectrum of use cases. Developers won’t need to consider the technical trade-offs of integrating various encryption schemes - they can simply choose between different cryptographic schemes such as IBE or FHE available in FairyKit and even combine them with other complementary solutions such as ZK or SGX.

As a preface, let's review the encryption techniques we offer and what they’re used for:

IBE: Identity-based encryption. IBE allows users to program certain on-chain conditions to trigger the decryption of their transactions. Example application: IBE will support encrypted intents where users identify an on-chain condition that must be met to decrypt and execute their intent (ETH = $4K, for example).
FHE: Fully Homomorphic Encryption. FHE allows users to encrypt their data and perform functions on top of this encrypted data without revealing the underlying information. Example application: FHE will allow DAOs to implement private governance to compute poll results without revealing individual user votes.
ZK: Zero-knowledge proofs allow proving a statement about information or the correctness of computation. ZK lacks composability for private inputs and is limiting for most onchain applications with multi parties involved.
zk-fhe-ibe

IBE is the main encryption technique used in Fairblock V1. We chose IBE because it is lightweight, programmable to certain onchain conditions (IDs), and is an optimal option for addressing our problems in web3 in the next few years. IBE services most encryption needs today because it allows for pre-execution protection, meaning that users can keep their transactions encrypted up until a certain onchain condition is met, at which point the transaction is decrypted and executed by the chain. IBE requires considerably less overhead than both FHE and ZK and addresses applications in DeFi, Gaming, and AI today. Encryption and decryption times under 10 milliseconds, making IBE a great first step in answering most encryption needs onchain today.

FHE comes with extra cost in terms of speed and overhead but it opens the door to computation over encrypted data for exciting applications such as ML inference over private data. Fairblock's architecture allows offering different MPC and threshold decryption options to developers to optimize the experience given overhead, flexibility, and security trade-offs for each application. Most FHE applications in web3 involve multiple parties, therefore we cannot just give the decryption key to a single entity and threshold decryption networks are instrumental to their adoption. Fairblock is the only expert team in the industry working on this for two years. We're running a scalable threshold network in production. FHE is still in its early days (similar to the early days of ZK), and we're collaborating with other FHE teams to address their threshold decryption needs as well developing our own efficient libraries to offer.

ZK proofs are useful for proving a statement about the data or computation in your hand -- which lacks private data composability and limits its applications. It's mostly leveraged for scalability and verification of computations which can be also used for FHE verification or state transition proofs for conditional decryption in Fairblock. Unlike ZK and mixing services, our work in Fairblock cannot be leveraged for hiding transactions and addresses, hence we don't have any regulatory challenges. However, Fairblock can be also used as a hub for cheap and fast general ZKP verification and interoperability to abstract away the costs from major blockchains such Ethereum or Cosmos L1s.

Cryptography is complex, and no matter how lightweight, still requires additional overhead to be incorporated in blockchain networks. This added computation makes networks more congested and is generally expensive to maintain. Added costs stand as a roadblock to developers embedding encryption at the baselayer of blockchains.

To make all forms of encryption more lightweight and accessible, Fairblock is building a network dedicated to hosting, maintaining, and delivering cryptographic computation to other chains. This allows chains and applications to simply install modules, known as FairyKit, to receive and distribute encryption services to their users.

Our cryptography packets can be plugged in across several layers of a blockchain - from frontends and smart contracts to L1s, L2s, sequencers, full nodes, and wallets - meaning that any blockchain, no matter its stage, can host encryption for its users.