Skip to content

Run 1784176445 ​

Trial run

Warning — trial run. This benchmark was executed with fewer than 10 instances per fuzzer and/or a time budget shorter than 24h. Results from trial runs are meant for debugging purposes and are not valid for extracting conclusions across different fuzzers.

Charts ​

Bugs Over TimeTime To KFinal DistributionPlateau And Late ShareInvariant Overlap (UpSet)Coverage Over TimeCorpus Size Over TimeSeq/s Over TimeTx/s Over TimeGas/s Over TimeCPU Usage Over TimeMemory Usage Over Time

Report ​

Fuzzer Benchmark Report (from bug-count CSV) ​

  • Time budget: 4.00h

Warning — trial run. This benchmark was executed with fewer than 10 instances per fuzzer and/or a time budget shorter than 24h. Results from trial runs are meant for debugging purposes and are not valid for extracting conclusions across different fuzzers.

Executive summary ​

This report is derived solely from cumulative bugs-found over time across repeated runs per fuzzer. It emphasizes robust, distribution-based metrics (median/IQR, success rates, time-to-k) and shape-based behavior (plateau time, late discovery share) instead of single-run time-to-first-bug.

Bugs found at fixed time budgets (median [IQR]) ​

FuzzerRuns1h4h
echidna213 [12,14]16 [15,16]
medusa214 [14,15]14 [14,15]
foundry20 [0,0]11 [10,12]
recon-fuzzer26 [6,7]6 [6,7]

Overall metrics ​

FuzzerAUC (norm)Plateau timeLate discovery shareFinal medianFinal IQR
echidna0.8303.90h0.097160.50
medusa0.8720.60h0.000140.50
foundry0.2453.30h0.545111.00
recon-fuzzer0.3950.50h0.00060.50

Milestones: time-to-k and success rates ​

Fuzzertime-to-1 (p50)time-to-3 (p50)time-to-5 (p50)reach-1 ratereach-3 ratereach-5 rate
echidna0.10h0.10h0.10h100.0%100.0%100.0%
medusa0.00h0.10h0.10h100.0%100.0%100.0%
foundry2.50h2.50h2.50h100.0%100.0%100.0%
recon-fuzzer0.00h0.10h0.10h100.0%100.0%100.0%

Throughput metrics (if supported by log format) ​

Values are run-level rates aggregated per fuzzer; n/a indicates the parser could not recover that metric from logs.

FuzzerRunsTx/s runsTx/s p50 [p25,p75]Gas/s runsGas/s p50 [p25,p75]
echidna22777.96 [767.27,788.65]28414652567.00 [8113156162.50,8716148971.50]
medusa224673.00 [4615.00,4731.00]21453235975.50 [1447487201.25,1458984749.75]
recon-fuzzer22595.98 [584.42,607.54]281991172.50 [77271186.25,86711158.75]

Progress metrics from logs (fuzzer-specific proxies) ​

Coverage/corpus values are parsed from each fuzzer's native progress output and are useful for trend context, not strict cross-fuzzer equivalence.

FuzzerRunsSeq/s runsSeq/s p50 [p25,p75]Coverage runsCoverage p50 [p25,p75]Corpus runsCorpus p50 [p25,p75]
echidna20n/a244533.00 [44532.50,44533.50]261.50 [59.75,63.25]
medusa2246.00 [45.50,46.50]25206.00 [5205.50,5206.50]2107.00 [107.00,107.00]
recon-fuzzer20n/a245193.50 [45156.25,45230.75]284.00 [73.50,94.50]

Statistical comparison (Mann-Whitney U test) ​

Pairwise Mann-Whitney U tests on end-of-budget bug counts (two-sided). Bonferroni correction applied for 6 comparison(s). Significance level: alpha = 0.05.

Warnings:

  • One or more fuzzers have fewer than 5 runs. Statistical power may be limited.
Fuzzer AFuzzer BMedian AMedian BU statisticp-valuep (corrected)Significant
echidnamedusa15.514.53.50.41421.0000no
echidnafoundry15.5114.00.33331.0000no
echidnarecon-fuzzer15.56.54.00.33331.0000no
medusafoundry14.5114.00.33331.0000no
medusarecon-fuzzer14.56.54.00.33331.0000no
foundryrecon-fuzzer116.54.00.33331.0000no

No pairwise comparison reached significance after Bonferroni correction.

Note: The Mann-Whitney U test assesses whether one fuzzer tends to find more bugs than another across runs. It does not measure effect size or practical importance. Small sample sizes (fewer than 5 runs) reduce statistical power.

Shape-based interpretation (rules of thumb) ​

  • Fast-start / early-plateau: high early checkpoint median + early plateau time + low late discovery share.
  • Steady: moderate AUC, later plateau, consistent improvements across checkpoints, moderate variance.
  • Slow-burn / late-surge: low early checkpoints but high late discovery share and later plateau time; often higher final median.

Limitations ​

  • Core metrics in this section are count-based; use broken_invariants.md / broken_invariants.csv for invariant identities.
  • Severity, exploitability, and root-cause uniqueness cannot be measured directly without richer per-bug metadata.
  • Harness design still affects results; mitigate by keeping harness identical across fuzzers and reporting many runs.

Broken invariants ​

  • Budget filter: 4.00h
  • Events considered: 95 / 95
  • Unique invariants: 16

Warning — trial run. This benchmark was executed with fewer than 10 instances per fuzzer and/or a time budget shorter than 24h. Results from trial runs are meant for debugging purposes and are not valid for extracting conclusions across different fuzzers.

Per-fuzzer totals ​

FuzzerInvariants
echidna16
foundry12
medusa15
recon-fuzzer7

High-level overlap ​

  • Shared by all active fuzzers: 7
  • Exclusive to echidna: 1
  • Exclusive to foundry: 0
  • Exclusive to medusa: 0
  • Exclusive to recon-fuzzer: 0

Grouped invariants ​

Exclusive to echidna (1)
  • AssertionFailed
Exclusive to foundry (0)

None.

Exclusive to medusa (0)

None.

Exclusive to recon-fuzzer (0)

None.

Shared by all active fuzzers (7)
  • assert_canary
  • invariantAccountingVsTokenBalance
  • invariantWithdrawAllTokensShouldNotRevert
  • invariant_canary
  • testReceiveStreamsShouldNotRevert
  • testSqueezableAmountCantBeUndone
  • testSqueezableAmountCantBeWithdrawn

Top shared subsets (top 2 by size):

echidna, foundry, medusa (5)
  • testBalanceAtInFuture
  • testSetStreamBalanceWithdrawAllShouldNotRevert
  • testSqueezableVsReceived
  • testSqueezeWithDefaultHistoryShouldNotRevert
  • testSqueezeWithFuzzedHistoryShouldNotRevert
echidna, medusa (3)
  • testAddStreamShouldNotRevert
  • testSetStreamBalanceShouldNotRevert
  • testSetStreamsShouldNotRevert

Runner resource usage ​

  • Budget filter: 4.00h
  • Instances with metrics: 8
  • Total samples: 22848

Per-fuzzer medians (across instances) ​

FuzzerInstancesCPU active avg (%)CPU active peak (%)Memory used avg (GiB)Memory used peak (GiB)Memory used avg (%)Memory used peak (%)
echidna296.2998.1720.8823.1268.1275.45
foundry26.2820.000.951.343.094.38
medusa298.3699.421.251.564.075.09
recon-fuzzer296.2298.723.013.479.8411.32

Instance stats ​

InstanceFuzzerSamplesDuration (h)CPU active avg (%)CPU active peak (%)Memory avg (GiB)Memory peak (GiB)Memory avg (%)Memory peak (%)
i-072f1ee3a594bc502-echidna-v2.3.1echidna28464.0096.3598.1220.8423.0368.0175.15
i-0ac7d4fde6343153c-echidna-v2.3.1echidna28474.0096.2498.2220.9123.2168.2475.75
i-02e3879ef9c633e9a-foundry-git-7254e01foundry28603.986.2820.000.951.303.104.24
i-0c064f365aa4fa6ce-foundry-git-7254e01foundry28603.986.2820.000.951.393.084.52
i-02daf67e353d84400-medusa-v1.4.1medusa28594.0098.3599.421.291.664.205.41
i-0cd32332b1821c80a-medusa-v1.4.1medusa28604.0098.3799.431.201.463.934.77
i-070ae9e45ba8dd29a-recon-v0.4.6recon-fuzzer28584.0096.6798.973.043.439.9111.18
i-0c16da2afaaef5ee8-recon-v0.4.6recon-fuzzer28584.0095.7798.462.993.519.7611.47

Manifest ​

  • scfuzzbench_commit: 3ea47a58c13bdfac9f7021cc1253da5e15795314
  • target_repo_url: https://github.com/scfuzzbench/drips-fuzzing-scfuzzbench
  • target_commit: c50d160ead6bf82b1d1071e853dc74da0b23f595
  • benchmark_type: property
  • instance_type: c6a.4xlarge
  • instances_per_fuzzer: 2
  • timeout_hours: 4
  • aws_region: us-east-1
  • ubuntu_ami_id: ami-052355af2a014bd2c
  • foundry_version: v1.7.1
  • foundry_git_repo: https://github.com/foundry-rs/foundry
  • foundry_git_ref: 7254e0107a696d72b40eea3bbb04d67e7bd1b847
  • echidna_version: 2.3.1
  • medusa_version: 1.4.1
  • recon_version: 0.4.6
  • fuzzer_keys: echidna, foundry, medusa, recon-fuzzer

Artifacts ​

Fully static. Generated in CI from S3 run artifacts.