ZKFOCIL: Private ILs

We created and benchmarked a PoC of Private Inclusion lists to increase privacy on Ethereum

ZKFOCIL: Private ILs

Created At

ETHGlobal Trifecta - Zero Knowledge

Winner of

Brevis - Best use of Brevis SDKs (Pico or Zk Coprocessor) 2nd place

ETHGlobal - Trifecta ZK Track 3rd place

Project Description

zkFOCIL: Private Inclusion Lists on Ethereum

Project Overview

We created and benchmarked a Proof-of-Concept implementation of Private Inclusion Lists on Ethereum. This system enables multiple validators to privately create blocks together, significantly enhancing privacy and censorship resistance on the network.

Key Innovation

Our solution ensures that no one, except the validator who performed the action, can determine which validator included which transaction. This anonymity protects validators from potential consequences of including non-OFAC compliant transactions, addressing a critical vulnerability in the current system where validators might self-censor to avoid repercussions.

Technical Implementation

The zkFOCIL implementation operates through a two-part process:

  1. Private Validator Selection

    • A Verifiable Randomness Function (VRF) randomly selects n validators to participate in block creation
    • Selected validators can prove their eligibility without revealing their identity
  2. Zero-Knowledge Block Creation

    • Inside a Zero-Knowledge Virtual Machine (zkVM):
      • Validators privately prove they were elected as includers
      • They create their inclusion lists and sign their votes
      • The zkVM wraps this entire process in a single SNARK proof
      • Validators broadcast their votes to the network anonymously
    • A designated validator verifies all received zkproofs
    • This validator generates another SNARK proof confirming the verification
    • The final proof is added to the block, allowing fast verification that the process was conducted properly

Ring Signatures

Our implementation uses Linkable Ring Signatures, which allow:

  • Validators to prove their membership in the eligible group
  • Network nodes to differentiate between signature originators
  • Preservation of validator anonymity (no link between signatures and on-chain identities)
  • Prevention of double-signing through linkability

Project Components

The project consists of two main components:

  1. Technical Implementation

    • Core zkFOCIL protocol implementation
    • Comprehensive benchmarks demonstrating performance and scalability
    • Integration with Ethereum's existing architecture
  2. Educational Frontend

    • Interactive interface explaining the protocol
    • Visualization of private inclusion list creation
    • Demonstrations of privacy and censorship resistance properties
    • Tools to help judges understand the technical significance of our innovation

Impact on Ethereum

This implementation substantially improves Ethereum's resistance to transaction censorship by:

  • Protecting validator anonymity
  • Reducing incentives for self-censorship
  • Preserving verification capabilities without compromising privacy
  • Maintaining network security while enhancing user privacy

How it's Made

The project is composed of two parts:

The actual implementation and its benchmarks The educative frontend to help judges understand what we built

The actual implementation is written in Rust and uses the signature implementation from Cypher Lab and 2 differents zkvms (the Pico zkVM from Brevis and Succinct) to generate the snarks. The educative frontend simulates the entire process in order to help us explain how the system works. It is a simple web app built with TypeScript and Vite

background image mobile

Join the mailing list

Get the latest news and updates