LogoLogo
  • INTRODUCTION
  • LEARN
    • Espresso in the Modular Stack
    • The Espresso Network
      • System Overview
      • Properties of HotShot
        • EspressoDA
          • How It Works
      • Interfaces
        • Espresso ↔ Rollup
        • Espresso ↔ L1
        • Rollup ↔ L1
      • Internal Functionality
        • Espresso Node
        • Light Client Contract
        • Fee Token Contract
        • Stake Table
          • How the Stake Table Contract Works
        • Smart Contract Upgradeability
    • Rollup Stacks
      • Integrating a ZK Rollup
        • ZK Rollup Architecture
        • Using Espresso
        • Summary of Changes
      • Integrating an Optimistic Rollup
        • Optimistic Rollup Architecture
        • Using Espresso
        • Summary of Changes
  • Guides
    • Using the Espresso Network
      • Integrating Arbitrum Orbit Chain
        • Quickstart with Arbitrum Nitro Rollups
        • Reading Confirmations from the Espresso Network
        • Arbitrum Nitro Integration Overview
          • Using TEE with Nitro
          • Arbitrum Nitro Trust & Liveness Dependencies
        • Migrating Arbitrum Orbit Chains to Espresso
          • Arbitrum Testnet
            • Nitro Testnet
            • Local Deployment (`docker compose`)
      • Using the Espresso Network as a Cartesi application
    • Running an Espresso Node
    • Running a Builder
    • Bridging with the Espresso Network
  • API Reference
    • Espresso API
      • Status API
      • Catchup API
      • Availability API
      • Node API
      • State API
      • Events API
      • Submit API
      • Earlier Versions
        • v0
          • Status API
          • Catchup API
          • Availability API
          • Node API
          • State API
          • Events API
          • Submit API
    • Builder API
  • Releases
    • Mainnet 1
      • Running a Mainnet 1 Node
      • Contracts
      • Rollup Migration Guide
    • Mainnet 0
      • Running a Mainnet 0 Node
      • Contracts
    • Testnets
      • Decaf Testnet Release
        • Running a Node
        • Contracts
      • Cappuccino Testnet Release
        • Running a Node
        • Deploying a Rollup on Cappuccino
        • Benchmarks
      • Gibraltar Testnet Release
        • Interacting with Gibraltar
        • Arbitrum Nitro integration
        • Deploying a Rollup on Gibraltar
      • Cortado Testnet Release
        • Interacting with Cortado
        • OP Stack Integration
          • Optimism Leader Election RFP
      • Doppio Testnet Release
        • Interacting with Doppio
        • Polygon zkEVM Stack Integration
        • Minimal Rollup Example
        • Benchmarks
      • Americano Testnet Release
  • Appendix
    • Interacting with L1
      • Trustless Sync
      • Fork Recovery
      • Bridging
    • Glossary of Key Terms
Powered by GitBook
On this page
  • Key Properties of HotShot
  • Separating data availability (DA) and execution from consensus
  • Scalability
  • Responsiveness
  1. LEARN
  2. The Espresso Network

Properties of HotShot

PreviousSystem OverviewNextEspressoDA

Last updated 4 months ago

HotShot’s design intentionally aims to give chains fast confirmations to transactions, while being able to scale to a large number of participating nodes. However, the participating nodes do not execute transactions; hence, individual nodes only need assurance of data availability to vote in consensus, not to have full access to the data. This alleviates high hardware requirements for participation, without sacrificing throughput.

HotShot is based on the consensus techniques used within HotStuff and HotStuff-2.

For more details on HotShot and EspressoDA, see our post,

Key Properties of HotShot

Separating data availability (DA) and execution from consensus

The HotShot implementation is purpose-built for providing fast confirmations to a large number of generic chains. In particular, it does not perform execution, and the data availability requirement (i.e., ensuring the system has access to data) is handled by a separate DA solution (integrating chains can use the DA solution of their choice, but have default access to use our custom, low-cost DA layer, ). This enables HotShot to process more data than typical state machine replication protocols. Such modularity also allows the use of various appropriate sub-protocols as needed.

Scalability

HotShot relies on all-to-leader and leader-to-all communication, thus reducing the consensus communication complexity to linear in the number of nodes. Since HotShot does not require every node to get a full copy of transaction data, low consensus communication is especially important. HotShot combines this optimistically with a content delivery network (CDN) to efficiently route data and perform computation. This reduces the leader bottleneck and supports a system with a heterogeneous set of nodes, without sacrificing safety and liveness guarantees. These improvements will help HotShot to scale to thousands of nodes, such that it can be run by a large number of Ethereum validators through restaking.

Responsiveness

HotShot is optimistically responsive and thus, under favorable conditions, commits new blocks as fast as the network allows. This ensures that the protocol’s performance is directly related to the state of the network—under optimistic conditions, the protocol can have low latency and consequently high throughput, too. In HotShot, using a CDN at the network layer synergizes with the optimistic responsiveness property to provide even better performance.

Designing the Espresso Network: Combining HotShot Consensus with Espresso's Data Availability Layer
EspressoDA