Eclipse Documentation
HomeBridge
  • 🐮Users
    • Getting Started
      • 1. Set Up Your Eclipse Wallet
      • 2. Bridge Assets for Gas and Transactions
      • 3. Explore the Eclipse Ecosystem
      • 4. Engage with the Community on Discord
    • User Resources
    • Unified Restaking Tokens (URTs)
  • 🛠️Developers
    • Getting Started
    • Wallet
      • Mainnet Wallets
      • Testnet & Devnet Wallets
        • Adding Eclipse Wallet to dApp
        • Custom Wallets
    • RPC & Block Explorers
      • Dragon's Mouth gRPC Subscriptions
    • Bridges
      • Eclipse Canonical Bridge
      • Hyperlane
    • Oracles
      • Pyth Network
      • Switchboard
    • NFTs
      • Metaplex
      • Nifty Asset
      • Libreplex (Token-2022)
    • Developer Tooling
      • Faucet
      • Benchmarking
        • Running AMM benchmarking tests
      • Decentralized Identities
        • AllDomains
      • OpenBook Quickstart
      • Multisig
    • Eclipse Bug Bounty Program
    • Eclipse Status Page
    • Frequently Asked Questions
    • Differences Between Eclipse and Solana
    • Eclipse Program Registry Guide
  • 📖Tutorials & Guides
    • Developer Guides
      • Quick Start: "Hello World"
        • Deployment Walkthrough
      • Reading from the blockchain
      • Modifying a Solana dApp to Support Eclipse: "Chomping Glass"
        • Developing on the Solana Virtual Machine (SVM)
        • Multi-chain toggle frontend component
      • Dapp Deployment Tutorial - Eclipse Devnet
        • ⚙️Install Dependencies - Windows
          • Step 1: Install Visual Studio Code (VSC)
          • Step 2: Install Rust and Cargo
          • Step 3: Download Visual Studio C++ Build Tools
          • Step 4: Download Node.js
          • Step 5: Install Git on Windows
          • Step 6: Install the Solana CLI
          • Step 7: Install WSL on Visual Studio Code and Upgrade to WSL2
          • Step 8: Set Up Development Environment in Ubuntu WSL
          • Step 9: Install Anchor on Windows and WSL
        • 🏝️Solana CLI & Solana Keypair
          • Step 1: Set Solana CLI to Use Eclipse Devnet
          • Step 2: Verify Solana CLI Configuration
          • Step 3: Generate a New Solana Keypair
          • Step 4: Claim Devnet ETH for Transaction Fees
          • Optional Step: View Balance on Devnet Explorer
        • 🖥️Creating an Anchor Project in Visual Studio Code
          • Step 1: Initialize Anchor Project
          • Step 2: Update the lib.rs File with Smart Contract Code
          • Step 3: Update the Smart Contract's Cargo.toml File
          • Step 4: Update the Project's Root Cargo.toml File
          • Step 5: Compile Your Program with anchor build
          • Step 6: Deploy Your Project to the Eclipse Devnet
          • Step 7: Verify Program Deployment on the Eclipse Devnet Explorer
        • ✨Building a React App Front-End
          • Step 1: Create a New React Project with TypeScript
          • Step 2: Install Solana Web3.js and Wallet Adapter Dependencies
          • Step 3: Install Additional Dependencies for Enhanced Functionality and Compatibility
          • Step 4: Configure Webpack for Browser Compatibility
          • Step 5: Start the Development Server and Verify Setup
          • Step 6: Implement the UI for Your NFT Minter in App.tsx with Updated Code
      • Eclipse Testnet ETH Transfer Transaction Fee Estimator
        • Program Breakdown
        • Program JSX & CSS
        • Program Execution
      • Pyth: How to Use Real-Time Data in Solana Programs
      • Quick Start: User Guide - Testnet
      • cNFTs on Eclipse
        • Create 1 Million NFTs on Eclipse
        • How to Interact with cNFTs
  • 🧠Eclipse Architecture
    • What is Eclipse Mainnet?
      • Settlement - Ethereum
      • Execution - Solana Virtual Machine (SVM)
      • Data Availability - Celestia
      • Proving - RISC Zero
      • Why Eclipse, Why Ethereum, Why Now
    • Lifecycle of an Eclipse Transaction
  • 📚Additional Resources
    • External Documentation
    • Disclosures
Powered by GitBook
On this page
  • Introduction to SVM Fraud Proofs and State Serialization
  • Avoiding Merkle Trees in SVM
  • Fault Proof Requirements
  • Identifying and Addressing Major Faults
  • Methodology
Edit on GitHub
  1. Eclipse Architecture
  2. What is Eclipse Mainnet?

Proving - RISC Zero

Introduction to SVM Fraud Proofs and State Serialization

Our proving strategy draws inspiration from Anatoly's SVM fraud proofs SIMD and builds upon John Adler's insight regarding the costly nature of state serialization. Adler identified that it's feasible to bypass this expense, a concept integral to our approach.

Avoiding Merkle Trees in SVM

In our initial experiments with the SVM, we integrated a Sparse Merkle Tree. However, updating the Merkle tree after each transaction led to significant performance setbacks. To enhance efficiency, we decided against reintroducing a Merkle tree into the SVM. This decision moves us away from traditional generalist rollup frameworks like the OP Stack and necessitates a more innovative fault proof architecture.

Fault Proof Requirements

Fault proof in our framework requires:

  1. Commitment to Transaction Inputs: Ensuring all inputs for a transaction are committed before execution.

  2. Transaction Execution: The transaction itself, as executed.

  3. Output Verification: Proof that re-executing the transaction yields a different outcome than what was recorded on the blockchain.

Instead of using a Merkle root for input commitments, our executor will post a detailed list of inputs and outputs for each transaction. This includes account hashes and relevant global state details, along with indices tracking the origin of each input. Transactions are recorded on Celestia, allowing any full node to verify the inputs and outputs by referencing their own state data to ensure the commitment on Ethereum is accurate.

Identifying and Addressing Major Faults

There are two primary types of faults we anticipate:

  1. Incorrect Outputs: If incorrect outputs are detected, the verifier will submit a Zero-Knowledge (ZK) proof directly on the blockchain, demonstrating the correct outputs. We utilize RISC Zero to generate these ZK proofs based on SVM execution, extending our previous efforts in proving BPF bytecode execution. This approach enables our settlement contract to verify correctness without executing the transactions on-chain.

  2. Incorrect Inputs: In cases where the inputs are misrepresented, the verifier will reference historical data on-chain to prove the discrepancy. Utilizing Celestia's Quantum Gravity Bridge, our settlement contract can then verify that this historical data substantiates a fraud claim.

Methodology

This methodology enhances the security and efficiency of SVM rollups by eliminating the need for expensive state serialization and reducing the dependency on traditional rollup frameworks. Our approach ensures that even without running transactions directly on the blockchain, the integrity and correctness of each transaction can be effectively verified, fostering a robust and scalable rollup solution.

PreviousData Availability - CelestiaNextWhy Eclipse, Why Ethereum, Why Now

Last updated 1 year ago

🧠