Skip to main content
Sigvex
research Sigvex Team

E-Graph Constraint Satisfaction

Vulnerability Detection via Equality Saturation

How the CST engine uses e-graphs and equality saturation to detect EVM vulnerability patterns in under a second, without external solver dependencies.

  • Structurally avoids the path-explosion that slows SMT-based analysis
  • Sub-second vulnerability detection
  • Zero external solver dependencies
Explore Research
research Sigvex Team

Coverage-Guided Fuzzing

Dynamic Vulnerability Discovery for Smart Contracts

How coverage-guided fuzzing, concolic execution, and domain-specific mutation strategies find vulnerabilities that static analysis misses and generate proof-of-concept exploits.

  • Automatic exploit generation
  • Coverage-guided input mutation
  • Symbolic-concrete hybrid execution
Explore Research
research Sigvex Team

Semantic Lifting

Beyond Opcode Translation

How Sigvex reconstructs high-level semantics from raw bytecode, recovering types, structures, and patterns that compilation erased—and why this foundation is essential for accurate vulnerability detection.

  • Type inference from usage patterns across 8+ EVM types
  • Storage layout reconstruction for mappings, arrays, and structs
  • Pattern recognition engine across 4 proxy EIP standards
Explore Research
research Sigvex Team

Attack Pattern Intelligence

Learning from Historical DeFi Exploits

An analysis of recurring vulnerability patterns extracted from real-world smart contract exploits, and how those patterns inform automated detection.

  • 35+ documented attack patterns
  • Historical losses analyzed across 2016–2024
  • Automatic pattern matching
Explore Research
research Sigvex Team

Vulnerability Detection Framework

Severity × confidence: turning 130+ detectors into a triage order

Why a detector count is not a capability. The contribution of the EVM detection framework is a two-axis model — severity and calibrated confidence, both grounded in bytecode — that tells an auditor what to open first.

  • Over 130 EVM security detectors across four severity tiers
  • Critical to low severity coverage
  • Real-world exploit pattern matching
Explore Research
research Sigvex Team

Bytecode Decompilation Pipeline

EVM Bytecode to Readable Solidity

A technical walkthrough of the multi-stage EVM decompilation pipeline: how raw bytecode is parsed, lifted through two intermediate representations, and emitted as readable Solidity or Yul.

  • Multi-stage IR pipeline (Bytecode → LIR → HIR → Solidity)
  • Type inference and storage layout reconstruction
  • 8+ optimization passes for readable output
Explore Research
research Sigvex Team

Sigvex Platform Capabilities

Bytecode-Native Analysis Across EVM and SVM Runtimes

An architectural overview of the Sigvex analysis pipeline: bytecode-native design, over 300 detectors spanning EVM, SVM, and ZK runtimes, and e-graph constraint satisfaction for security analysis without verified source code.

  • Operates directly on deployed bytecode — no source required
  • Over 300 detectors spanning EVM, SVM, and ZK runtimes
  • Strict layered architecture with isolated runtimes and shared abstractions
Explore Research
research Sigvex Team

Solana Program Analysis Pipeline

Security Analysis for eBPF Bytecode at Scale

How Sigvex analyzes Solana programs at the bytecode level, from ELF parsing and eBPF disassembly through HIR lifting, CPI analysis, and over 170 Solana-native vulnerability detectors.

  • Over 170 Solana-native vulnerability detectors
  • Account-validation framework pattern recognition
  • CPI call graph and reentrancy analysis
Explore Research
research Sigvex Team

Cross-Contract Analysis

Call Graphs and Inter-Procedural Security

How Sigvex constructs inter-contract call graphs and performs cross-boundary taint analysis to detect vulnerabilities that span multiple smart contracts—catching attack patterns that single-contract analysis fundamentally cannot see.

  • Inter-contract call graph construction across protocol boundaries
  • Cross-boundary taint propagation for multi-hop attack chains
  • Reentrancy detection across function and contract boundaries
Explore Research
research Sigvex Team

Automated Exploit Generation

From Detection to Proof-of-Concept in Minutes

How the exploit generator synthesizes executable proof-of-concept transactions from vulnerability findings—covering reentrancy, integer arithmetic, access control, oracle manipulation, and delegatecall hijacking.

  • Automatic PoC synthesis for 6+ exploit classes
  • Invariant-test and deployment-script generation
  • Flash loan integration for leveraged attack simulation
Explore Research
research Sigvex Team

Proactive Contract Defense

Blue Team Strategies for Smart Contract Security

Defense-in-depth strategies for smart contract security using static analysis, runtime monitoring, and automated threat detection.

  • Multi-layer defense framework for deployed contracts
  • Bytecode-native analysis of unverified contracts
  • Mempool monitoring for pre-execution threat detection
Explore Research
research Sigvex Team

Reentrancy as Concurrent Interleaving

A Formal Model of Smart Contract Reentrancy Through Concurrency Theory

Formal treatment of smart contract reentrancy as unsafe interleaving of execution frames, connecting detection to serializability analysis from concurrency theory.

  • Happens-before relations for EVM execution contexts
  • Reentrancy detection as serializability checking
  • Formal connection to lock-based concurrency control
Explore Research
research Sigvex Team

Taint Propagation in Stack-Based Virtual Machines

Information Flow Analysis for EVM and eBPF Bytecode

Lattice-based taint analysis framework for stack-based virtual machines, with formal transfer functions and precision analysis for smart contract security.

  • Formal taint lattice for stack machine execution
  • Transfer functions for EVM and eBPF opcodes
  • Precision vs soundness tradeoff characterization
Explore Research
research Sigvex Team

Symbolic Execution Under Cryptographic Constraints

Opaque Predicates, Decidability Limits, and Practical Workarounds

Analysis of how cryptographic hash functions create fundamental limits for symbolic execution in smart contract analysis, with strategies for practical soundness.

  • Formal characterization of hash-induced opaque predicates
  • Decidability analysis for keccak256 in SMT theories
  • Concolic strategies for hash-dependent path exploration
Explore Research
research Sigvex Team

Zero-Knowledge Circuit Soundness Verification

Detecting Under-Constrained Circuits and Prover-Forgeable Witnesses

Formal analysis of zero-knowledge circuit soundness, with detection algorithms for under-constrained signals and prover-forgeable witness vulnerabilities.

  • Formal definition of circuit soundness in R1CS
  • Taxonomy of under-constraint vulnerability patterns
  • Detection algorithms for witness non-uniqueness
Explore Research
research Sigvex Team

Storage Layout Reconstruction as Type Inference

Hindley-Milner-Style Type Recovery for EVM Bytecode

Formal framework for recovering Solidity storage layouts from EVM bytecode using constraint-based type inference, with extensions for packed storage and proxy patterns.

  • Type system for EVM storage slots
  • Constraint generation from SSTORE/SLOAD patterns
  • Hindley-Milner unification adapted for storage
Explore Research
research Sigvex Team

Program Synthesis for Exploit Generation

Automated Exploit Construction as Syntax-Guided Synthesis

Formal framework for automated exploit generation using syntax-guided program synthesis, with finding-guided search pruning and fork-based correctness oracles.

  • Exploit generation as a SyGuS problem
  • DSL grammar for exploit transaction primitives
  • CEGIS loop with fork-based execution oracle
Explore Research
research Sigvex Team

Finding Vault Precision Bugs in Bytecode

Share inflation and rounding direction without source

How to detect ERC-4626 share-inflation and rounding-direction vulnerabilities from compiled contracts, where the defining evidence is not what the arithmetic computes but which way it rounds.

  • Why rounding direction, not the formula, is the security property
  • Anchoring vault analysis on ERC-4626 function selectors
  • Distinguishing the virtual-offset defense from its absence
Explore Research
research Sigvex Team

Adversarial Exploit Discovery

Red Team Methodology for Smart Contract Vulnerability Research

Systematic techniques for discovering new smart contract vulnerability classes through bytecode analysis, fuzzing, and exploit synthesis.

  • Bytecode-first adversarial analysis methodology
  • Coverage-guided fuzzing for novel vulnerability discovery
  • Automated exploit synthesis from findings to PoC
Explore Research
research Sigvex Team

Confidence Is an Evidence Class

Why a detector should never type a float by hand

Replacing hand-typed confidence values with a small ladder of named evidence classes, what the migration turned up in the detectors, and why the number a detector emits is load-bearing long after anyone reads it.

  • Five evidence bases and a ±0.05 modifier give exactly fifteen legal confidence values
  • A hand-typed 0.78 survived library suppression by 0.006
  • One detector had shipped every finding at zero confidence, and its mitigation had never fired
Explore Research
research Sigvex Team

Names Don't Survive Compilation

Recognising guards structurally in stripped EVM bytecode

A family of detector predicates keyed on operand names was inert on every real contract, and because those predicates suppress findings, inert meant fail-open. This is how we measured it, what replaced each name test, and why the obvious structural replacement is usually worse.

  • All 14,886 arithmetic operands in the mainnet corpus were lifter temporaries; none was spelled 'nonce' or 'totalSupply'
  • A suppression predicate that never matches turns every guarded contract into a Critical finding
  • An ABI array length is a double CALLDATALOAD; a scalar argument is a single one
Explore Research
research Sigvex Team

Retiring a Detector

When a claim about Solana bytecode cannot be grounded

Two Solana detectors were removed this month, not because they were wrong about the vulnerability but because the fact they needed to observe does not exist in compiled programs. This is the census that found them, the measurements that settled each case, and the one detector that was nearly retired and instead went from 44 findings to one.

  • Four detectors read a lifted-statement kind the lifter never emits
  • Of 178 exits reachable from a recovered default handler, none carries a constant return code
  • Every cross-program invocation in 176 programs sits in one compiler-generated wrapper that reads no account data
Explore Research
research Sigvex Team

Who Wrote This Function?

Provenance from panic locations in stripped Solana binaries

Detectors need to know which functions in a deployed program are the author's and which are SDK. On stripped mainnet binaries the old answer attributed 96 to 99.6 percent of every program to the SDK. The fix reads a record rustc leaves behind at every panic site, and it only ever withholds a demotion.

  • Raydium's author-attributed functions went from 4 of 348 to 123
  • rustc leaves the source file path of every panic site in the binary as a typed record
  • The rule only withholds a demotion; a binary with no anchors keeps its partition unchanged
Explore Research
research Sigvex Team

Ratchets That Can Fail

Test metrics for a decompiler that cannot be argued with

A decompiler's test suite is mostly measurements, and a measurement that cannot fail is decoration. Five rules we now hold every metric to, each learned from a metric that had quietly stopped measuring anything.

  • A floor seeded at 15 while the live value read 179 could have lost 164 fixtures without failing
  • 27 corpus-dependent tests skipped as passed; one of them honoured the arming flag
  • 4,537 detector fixtures were built from a statement form production never emits
Explore Research
research Sigvex Team

Three Ways a Soundness Detector Lies

Parser, graph model and threshold bugs in ZK circuit analysis

None of the defects fixed in the ZK analyser this month were in constraint logic. One was a comma, one was a name shared by a component port and a local signal, and one was a confidence score that depended on which compiler pipeline built the verifier. Each made a soundness verdict wrong in a way the constraint reasoning could not see.

  • A nested generic in a Cairo signature fabricated a second parameter
  • A component port and a local signal with the same name were one node, hiding a real under-constrained signal
  • The same circuit scored 0.70 or 0.90 depending on solc's codegen pipeline
Explore Research

See These Technologies in Action

Experience the power of these innovations on your own smart contracts.

Analyze a Contract