2019 - Present
Security Engineer · Ethereum Foundation
Differential fuzzing, hard-fork readiness, and bug-bounty triage across Ethereum clients.
Security Engineer · Ethereum Foundation
I run independent implementations against each other — Ethereum clients, post-quantum cryptography libraries, compilers — and turn every disagreement into a reproducible bug report.
Recently: a confirmed-exploitable timing channel in Mbed TLS (security advisory, Jul 2026), upstream fixes merged in Erigon, Nethermind, and revm (findings), and 25 miscompilation bugs found in the Solidity compiler (paper).
LatestTrust No Single WitnessMethod: input, to independent witnesses, to divergence, to evidence
01 — About
“In a system with more than one implementation there is no ground truth — only witnesses that disagree. So: trust no single witness.”
Read the long version →
That's the whole method. I make the witnesses disagree under controlled conditions: coverage-guided differential fuzzers that run Ethereum's execution clients, post-quantum cryptography libraries, and compilers against each other, so every divergence becomes a reproducible bug report.
I practice this as a security engineer at the Ethereum Foundation — differential fuzzing of execution clients, hard-fork readiness testing, and bug-bounty triage. To scale the method, I build AI-assisted pipelines for context building, harness generation, PoC validation, and triage, with deterministic orchestration, auditable logs and human review at the decision points.
The roots are a Ph.D. in fuzzing and static analysis at TU Berlin, Solidity compiler fuzzing infrastructure, and contributions to Google's OSS-Fuzz; the timeline below carries the rest of the history.
2019 - Present
Differential fuzzing, hard-fork readiness, and bug-bounty triage across Ethereum clients.
2017 - Present
Open-source security research, fuzzing tools, and contributions to OSS-Fuzz and Open vSwitch.
2011 - 2012
Android platform security research; published at NDSS and ACM SPSM.
2007 - 2008
VoIP phone software and tests.
2013 - 2019
Static analysis and fuzzing techniques for open source bug detection
2008 - 2010
Specialized in security of microcontrollers and embedded systems
2003 - 2007
Undergraduate thesis on digital signal processing and embedded systems
02 — Case Studies
Three examples of what differential validation looks like in practice — what was at stake, how it was tested, and what changed upstream. Every claim links to a public artifact.
Ethereum execution clients
Demonstrates
Independent differential validation of a multi-implementation system before release.
Cryptographic implementations
Demonstrates
Side-channel review of high-consequence cryptographic code, delivered through responsible disclosure.
Post-quantum cryptography
Demonstrates
Differential validation of cryptographic standards ahead of production deployment.
Working on a system where independent implementations must agree? Discuss a scoped review.
03 — Research
Current focus areas — differential testing of Ethereum clients and cryptographic implementations, and the AI-driven triage and vulnerability-discovery pipelines that scale it
Differential fuzzing I build and run across Ethereum execution clients, plus hard-fork readiness testing — catching consensus divergences before they can split the network.
Pipelines I design and build that put LLM agents to work on client security — vulnerability research decomposed into context building, harness generation, PoC validation, and triage, with deterministic orchestration, auditable logs, and human review at the decision points.
Differential testing of post-quantum standards: cross-checking independent ML-KEM (FIPS 203) and ML-DSA (FIPS 204) implementations against each other.
Constant-time analysis of widely deployed cryptographic libraries: finding secret-dependent timing paths in Mbed TLS / TF-PSA-Crypto and reporting them through coordinated disclosure.
Core contributor to the Solidity compiler's testing infrastructure, with 300+ commits focused on fuzzing and correctness testing.
04 — Findings
The evidence index behind the case studies. Don't take the numbers on faith — every entry below links to a public artifact: a merged fix, upstreamed tests, or published research.
Flagged a secret-dependent iteration count in the optimized modular reduction (ecp_modp); later confirmed exploitable and fixed under a coordinated security advisory.
Mbed-TLS/mbedtlsSolSmith, a semantics-aware differential fuzzer, surfaced miscompilation bugs that had gone unnoticed — some for years — with a root-cause analysis of each.
ethereum/solidityReported a variable-time DIV in mbedtls_mpi_mod_int reachable from RSA prime generation with secret data; fixed in Mbed TLS 3.6.7 and TF-PSA-Crypto.
Mbed-TLS/TF-PSA-CryptoEIP-8037 regression tests — state-gas refund on failed CREATE2 with init storage — merged into ethereum/execution-specs ahead of the fork.
ethereum/execution-specsFix to FlatSnapServer's trie-node response limit, merged upstream as part of sync-protocol security testing of Ethereum's wire protocols.
NethermindEth/nethermindrevm's BlockHashCache incorrectly returned zero for the genesis block — a correctness divergence caught by differential state-test fuzzing; fix merged upstream.
bluealloy/revmExtreme memory-expansion requests could overflow the EVM's memory-size computation and crash the client; guard merged upstream.
NethermindEth/nethermindNethermind's state-test path touched the coinbase account even when the transaction failed, diverging from other clients; fix merged upstream.
NethermindEth/nethermindThe statetest runner applied one blob base-fee update fraction across all forks; spec-aware fix merged upstream to keep differential comparisons honest.
bluealloy/revmErigon's statetest harness constructed transaction messages differently from other clients, skewing cross-client comparison; fix merged upstream.
erigontech/erigonBug-bounty submissions and client-security reports are disclosed privately by default; this is the subset of the work with public artifacts. More on GitHub.
05 — Talks
Conference presentations and invited talks on fuzzing, compiler security, and vulnerability research
How differential fuzzing across ~8 execution clients catches consensus splits within hours of a commit, how LLM property-based testing attacks shared blind spots, and how a three-witness severity model (reporter, AI swarm, network blast radius) keeps AI-era bounty triage honest.
Threat model: incorrect code generation. Randomly generated valid Solidity/Yul programs stress the compiler's codegen and optimizer before releases ship — nine bugs found via semantic fuzzing.
A fuzzer is no match for a human tester — but it finds security-critical bugs humans miss, and it shines at differential (A/B) testing.
The state of Solidity compiler testing — unit, regression, and fuzz tests — and where community input could help.
Why vulnerabilities are expensive, and how static analysis and fuzzing complement each other in finding them.
06 — Writing
Long-form notes on differential testing, most recently a series cross-checking post-quantum cryptography implementations
In a system with more than one implementation there is no ground truth available to the test harness — only witnesses that can disagree. That changes how I test Ethereum clients, cryptographic libraries, compilers, and AI-assisted security pipelines.
The KEM keeps a web conversation private; the signature decides whom you're talking to. I differential-fuzzed ML-DSA-65 across CIRCL, BoringSSL, and mldsa-native — and the real lesson wasn't the clean negative. It's that a clean negative is worth exactly as much as the coverage behind it, and my first attempt had a hole big enough to drive 16 million executions through without noticing.
We obsess over test inputs and coverage and almost never examine the oracle — the thing that decides an answer was correct. A passing test isn't proof of correctness; it's a statement that the system and its oracle agree. Here's why that distinction is suddenly everyone's problem, especially in how we evaluate AI.
New writeups land in the feed first — subscribe via RSS.
07 — Publications
Research in security, fuzzing, and program analysis
B. Shastry
arXiv preprint arXiv:2607.07217, 2026
V. Ulitzsch, D. Maier, B. Shastry
Black Hat 2018
K. Thimmaraju, B. Shastry, T. Fiebig, F. Hetzelt, J.P. Seifert, A. Feldmann, S. Schmid
Symposium on SDN Research 2018
K. Thimmaraju, B. Shastry, T. Fiebig, F. Hetzelt, J.P. Seifert, A. Feldmann, S. Schmid
Cloud Computing Security Workshop 2017
B. Shastry, M. Leutner, T. Fiebig, K. Thimmaraju, F. Yamaguchi, K. Rieck, S. Schmid, J.P. Seifert, A. Feldmann
RAID 2017
B. Shastry, F. Maggi, F. Yamaguchi, K. Rieck, J.P. Seifert
USENIX WOOT 2017
T. Unruh, B. Shastry, M. Skoruppa, F. Maggi, K. Rieck, J.P. Seifert, F. Yamaguchi
USENIX WOOT 2017
B. Shastry, F. Yamaguchi, K. Rieck, J.P. Seifert
DIMVA 2016
S. Bugiel, L. Davi, A. Dmitrienko, T. Fischer, A.R. Sadeghi, B. Shastry
NDSS 2012
S. Bugiel, L. Davi, A. Dmitrienko, S. Heuser, A.R. Sadeghi, B. Shastry
ACM SPSM 2011
08 — Work
I'm a security engineer at the Ethereum Foundation. Beyond that, I'm glad to hear about roles and teams working on hard verification problems, research collaboration, conference talks, and podcasts — no formality needed, just email.
My work has been merged upstream by the Nethermind, Erigon, revm, Mbed TLS, and Solidity teams — the review threads are public.
Independent engagements — limited
For teams that need independent evidence before a release, upgrade, or standardization milestone.
Fixed scope · timing confirmed in proposal
For teams that suspect cross-implementation or oracle risk.
You get: A divergence and threat model, a target matrix, a harness and coverage roadmap, and a prioritized-risk debrief — the same artifact structure as the case studies above.
Milestone-bound scope · timing confirmed in proposal
For teams approaching a hard fork, protocol upgrade, or cryptographic rollout.
You get: Independent tests of high-consequence behavior, reproducible findings with severity analysis, and remediation verification.
Tailored session · follow-up office hours
For teams building their own fuzzing or differential-testing capability.
You get: A tailored workshop with practical exercises and reference material, followed by focused office hours.
Multi-implementation systems — L1/L2 clients, cryptographic libraries, compilers, virtual machines — approaching a release, upgrade, audit, or standardization milestone, where a reproducible divergence is worth far more than an opinion.
Smart-contract application audits, generic penetration testing, or anything that conflicts with my Ethereum Foundation responsibilities — I run a conflict check before any details are shared.
Do not include vulnerability details, secrets, credentials, or source code in an inquiry — use the PGP key for sensitive reports.
Independent engagements are limited, subject to conflict review, and represent my own views and work — they are not offered, endorsed, or reviewed by the Ethereum Foundation.