Skip to content

Solana JIT: Lessons from Fuzzing a Smart Contract Compiler

Thomas Roth

Thomas Roth (stacksmashing) shares insights from fuzzing the Solana eBPF Just-In-Time (JIT) smart contract compiler, uncovering critical consensus-breaking bugs.

Summary

The Attack Surface of Blockchain JIT Compilers

High-performance blockchain platforms rely on Just-In-Time (JIT) compilers to execute eBPF smart contracts rapidly; however, compiler bugs can lead to consensus divergence or node crashes.

Understanding Solana's rbpf Architecture

Thomas Roth analyzes Solana's eBPF virtual machine and JIT compiler implementation (rbpf), dissecting how bytecode translates to native x86 machine instructions.

Building Specialized Differential JIT Fuzzers

Roth details developing differential fuzzing harnesses that execute randomized eBPF instructions simultaneously across the JIT engine and software interpreter to flag discrepancies.

Securing Core Blockchain Infrastructure

The author reviews discovered compiler bugs, discusses responsible vulnerability disclosure with the Solana team, and outlines fuzzing best practices for smart contract virtual machines.

Related talks