ByAUJay
Short version: These days, smart contract audits go beyond just “spotting reentrancy.” It’s all about ensuring your Solidity and ZK stack holds up against the Dencun→Pectra/Osaka changes, meets the EthTrust v3 standards, and won’t mess up procurement (SOC 2, SOX) or your L2 cost model.
What is a Smart Contract Audit? (And Why You Need One)
the specific technical headache you’re likely feeling
Your Solidity and ZK stack has slipped out from under you:
- After Dencun, EIP‑4844 has really shaken up the economics of L2. Now, rollup fees are more about blob pricing than calldata. If you're still basing your gas and unit-economics models on the old pre‑4844 assumptions, you might find yourself way off target by a huge margin. Check it out here: (blockworks.co)
- The EVM semantics have shifted in ways that might mess up some old ways of doing things. For instance, EIP‑6780 has effectively neutered SELFDESTRUCT--it's only useful in the create-and-destroy-in-the-same-transaction scenario. So, those metamorphic/CREATE2 “redeploy at the same address” strategies? Yeah, those aren't really viable as a general upgrade method anymore. More details here: (eips.ethereum.org)
- We’ve got some new opcodes and object formats coming into play. The compiler now defaults to targeting post‑Cancún EVMs (think Prague to Osaka). The latest version, 0.8.31, includes support for the CLZ opcode (EIP‑7939) and some deprecations as we gear up for 0.9.0. If you haven’t taken the time to re-benchmark your gas or bytecode size, or reviewed those deprecations (like the removal of .send/.transfer), you might already be falling behind. Check it out: (soliditylang.org)
- Transient storage (EIP‑1153) is a thing now. Reentrancy locks and “single‑transaction approvals” should really be handled in TSTORE/TLOAD--not in the traditional SSTORE/SLOAD. But many codebases are still stuck paying those permanent-storage costs or using fragile memory hacks. More info here: (eips.ethereum.org)
- That old SWC registry you might still be using in your checklists? Yeah, it hasn’t been updated in ages. Buyers and exchanges are shifting over to EthTrust and OWASP‑SCSVS; you should consider updating your audit badge, too. Here’s the link: (swcregistry.io)
- ZK circuits come with their own unique failure modes. Issues like “Last challenge” and transcript-binding errors in PLONKish verifiers can be exploited. Meanwhile, the Halo2/Plonky2 ecosystems have already rolled out some solid fixes and CVEs. If your verifier or lookup tables haven’t been checked against current advisories, your idea of “provable security” might just be wishful thinking. Get the scoop here: (openzeppelin.com)
- Procurement has really evolved. RFPs are asking for EthTrust v3 mapping, SOC 2 control evidence throughout the SDLC, and SLSA/CIS supply-chain artifacts--not just a straightforward PDF report anymore. Check it out here: (entethalliance.org)
what this risk looks like in dollars, deadlines, and reputation
- Hack financials are looking pretty "fat-tail": just three incidents accounted for most of the losses in 2025; one major CEX breach (Bybit) made up around 44% of the total losses for the year. If your threat model overlooks those “big-game” events and wallet-key compromises within vendor chains, you might be off in your VaR estimates. (theblock.co)
- Chainalysis reported around $3.4 billion stolen in 2025, with the DPRK alone racking up about $2.02 billion; individual wallet hacks skyrocketed to 158,000 cases. Now, regulators and counterparties are starting to see an "absence of breach" as more of a fluke, especially when there aren't formal controls in place. (chainalysis.com)
- Missed feature gates: teams that shipped with pre‑Dencun calldata patterns or relied on SELFDESTRUCT for lifecycle management ended up facing “unexpectedly expensive transactions,” stuck upgrades, and rollbacks--wasting sprints, delaying audits, and pushing back launch dates. (eips.ethereum.org)
- ZK isn’t just a walk in the park. A single verifier bug (like mishandling Fiat‑Shamir) can allow an attacker to prove invalid state transitions and siphon off assets. Those lookup-table soundness errors (think Plonky2 CVE‑2025‑24802) can be pretty sneaky and end up affecting production if audits don’t dive deep into circuit and verifier analysis. (openzeppelin.com)
- Compliance friction is real: Security questionnaires that align with SOC 2/SOX require traceable controls (like threat models, property specs, fuzzing evidence, change control, and SBOMs). Without these, enterprise deals can get stuck in procurement review limbo.
In a nutshell: that “audit” you invested in two years back isn't cutting it when it comes to today's technical or commercial questions.
7Block’s methodology (technical but pragmatic)
We check everything for accuracy, cost-effectiveness, and compliance, making sure your launch passes both the engineering and procurement tests. Our engagements can be set up as 90-day pilot programs or part of multi-release initiatives through our security audit services.
- Readiness and Scoping (Enterprise-Grade Intake)
- Start by mapping out your codebase, compiler/EVM targets, and your assumptions about L2. Next up, set up an EthTrust v3 + OWASP SCSVS control matrix that lines up with SOC 2/ISO 27001 SDLC controls. The end goal here? Create a control coverage plan along with some “go/no-go” release gates. Check it out here.
- For compliance, think about how to implement hooks like ticket templates and evidence threads for change management, secure code reviews, and separation of duties (SOC 2 CC/Change).
2) Solidity Static and Semantic Analysis
- We’re diving into static analysis on a larger scale with tools like Slither and Slither-MCP. These help us create a detailed code knowledge graph covering everything from inheritance to the call graph and reachability. With this setup, we can cut down on noise during LLM-assisted reviews and speed up the manual triage process. Check it out on GitHub.
- We’ve got a suite of detectors and some custom rules aimed at catching specific issues:
- EIP‑6780: Tackling unsafe assumptions, including metamorphic patterns and burning via self-destruct.
- EIP‑1153: Focusing on misuse, ensuring TSTORE/TLOAD safety and the correctness of transient locks.
- EOF/Osaka: Keeping an eye on compatibility flags and the deprecations in version 0.8.31.
- EIP‑7939: Identifying hotspots for usage like bit operations and ZK-friendly math. You can read more about these updates on Solidity's official blog.
3) Property-Based Dynamic Analysis
- We run Foundry invariant tests and tackle Echidna campaigns--both coverage-guided and mutational--with Medusa for some parallel fuzzing action. Our goal here is to keep track of coverage, unique crash seeds, and invariant strength every hour. This way, we’re focused on meaningful exploration, not just vanity runs. Check it out on GitHub!
- We also incorporate symbolic and SMT-driven checks wherever it makes sense--like using halmos/SMTChecker for paths that dive into boundary arithmetic and authorization invariants. Plus, we’ve tied all this into our CI for seamless integration.
4) ZK Circuit and Verifier Review
- Circuit Audits (Circom/Halo2/Plonkish): We dive into a bunch of important areas like constraint soundness, selector domain, lookup padding, copying constraints, and transcript binding. It’s a must that circuit builds use Circom version ≥2.2.x with those handy new sanity-check flags. For Halo2, we focus on Fiat-Shamir domain separation and transcript challenges. Check it out here: (github.com).
- Verifier Audits Against Known Classes: We keep an eye out for issues like “last challenge” bugs, frozen-heart-like failures, pairing checks, and those tricky batching edge cases. Plus, we make sure to validate everything against public advisories to stay in the clear. Get more info here: (openzeppelin.com).
- Formal Proofs for High-TVL Rollups: When it comes to high-total-value locked rollups, we get serious with Lean-based reasoning for Halo2 circuits (shoutout to Nethermind Halva) to prove circuit and constraint properties. Learn more about it here: (nethermind.io).
5) Economic and Cost-Model Validation
- Take a fresh look at your post-Dencun fee model. Make sure you're checking blob gas and calldata usage against EIP-4844. Don't forget to validate those “gas-to-cash” conversions for your business cases, like pricing, rebates, and settlements. (blockworks.co)
- Dive into some micro-optimizations: look into the thresholds for MCOPY (EIP-5656) adoption, explore EIP-1153 transient patterns for locks and approvals, and consider EIP-7939 CLZ substitutions for those bit-math-heavy paths. Just make sure you're measuring everything with reproducible benchmarks. (eips.ethereum.org)
- Remediation Sprints and Secure SDLC Uplift
- We go beyond just identifying issues. Our engineers collaborate with your team to push out PRs, create invariant/property tests, and set up CI checks on Slither/Echidna. Plus, we make sure to capture all artifacts as SOC 2 evidence.
- We’ll also refresh your architecture documents and threat models for RFPs and exchange listings.
7) Attestation and Procurement Package
- This includes the EthTrust v3 mapping (S/M/Q levels), the OWASP SCSVS checklist, and an executive summary that connects the technical risks to ROI/TCO and how it impacts the timeline. This is the key document your procurement and finance teams will need to approve. Check it out here: (entethalliance.org)
If you're looking for some hands-on help with implementation, we’ve got you covered! We can dive into custom blockchain development services, tackle smart contract development, and get into the nitty-gritty of blockchain integration.
1) Swap Out Storage-based Reentrancy Locks for Transient Storage
- Why: EIP-1153 brings us TSTORE and TLOAD, which are about 100 gas each and don’t stick around. This is fantastic for things like single-transaction locks and “temporary approvals.” By using these, we can dodge refund games and the pain of SSTORE cold-slot penalties. Check it out here: EIP-1153.
- How We Audit:
- Make sure that locks don’t cross over into external calls that might give up control beyond what we want.
- Verify that lock keys are separated by domain (think selector + msg.sender + context) to steer clear of collisions in multi-call scenarios.
- Run negative tests: fuzz those call sequences to show that the lock clears on all exit paths, including reverts and try/catch situations.
2) Stop relying on SELFDESTRUCT logic for lifecycle management
- Why: With the changes after Dencun, SELFDESTRUCT doesn’t wipe out code or state unless it’s called in the same transaction as creation. This makes metamorphic deployment patterns for upgrades pretty fragile. You can read more about it here.
- How we audit:
- We’ll flag any metamorphic patterns we come across and suggest using UUPS/proxy setups along with AccessManager for role-gated upgrades and on-chain timelocks.
- Remember the invariants: “implementation cannot be set to address(0)” and “upgrade paths require N-of-M governance.”
3) Osaka/EOF and Compiler Target Sanity
- Why: With Solidity 0.8.31, we’re seeing a shift to Osaka semantics as the default. This update brings in new features like CLZ and starts phasing out some older constructs as we gear up for 0.9.0. It's important to note that the changes coming with EOF will affect our deployment tools and debugging processes. You can read more about it here.
- How we audit:
- We make sure our CI environments are using normalized compilers, so we pin
--evm-version, and we run smoke tests with--via-ir, along with EOF pre-releases to catch any size or performance changes. - We dig in for deprecated calls like
.sendand.transfer, and check if we’re adoptingCLZwhere it truly helps with reducing our math paths. Plus, we’ll go back and re-measure the costs of ZK proving, especially where bit-ops are heavily used. For more details, check out this EIP.
- We make sure our CI environments are using normalized compilers, so we pin
4) ZK Verifier “Last Challenge” Hardening
- Why: If the Fiat‑Shamir transcript isn't securely bound, it opens the door for provers to create convincing but fraudulent proofs. A great example of this risk can be found in OpenZeppelin’s deep dive into Linea’s verifier class. Check it out here.
- How we audit:
- We kick things off by reconstructing the transcript. This means making sure that each gate/lookup and commitment is feeding randomness consistently. Then, we do a little homework by cross-checking everything against the reference spec.
- To really cover our bases, we also throw in some property tests that tweak the transcript elements. This way, we can confirm that the verifier straight-up rejects any tampered challenges.
5) Circom 2.2.x Sanity Checks and Halo2/Plonky2 Lookups
- Why: Circom has rolled out some handy build-time sanity flags that help us catch any tricky constraint issues. There have been some lookup-table padding bugs (like CVE-2025-24802 in Plonky2) that highlight the kinds of errors we need to keep an eye out for across different libraries. Check it out on GitHub.
- How We Audit:
- We make sure to enforce the
--sanity_checkduring our reproducible builds. We also run fuzz tests on witness generators, double-check the lengths and padding of lookup tables, and confirm that the sizes of our domains match up with the arithmetization.
- We make sure to enforce the
6) EthTrust v3 + SCSVS Procurement Alignment
- Why it Matters: Buyers are now checking off their lists against EthTrust v3; just relying on SWC isn't cutting it anymore when it comes to showing audit depth. That’s where SCSVS steps in to provide essential process guidance. For more info, check out entethalliance.org.
- How We Handle Audits:
- We’ll tag each finding to specific EthTrust clauses (S/M/Q) along with SCSVS controls. This way, we can hand you a comprehensive checklist and traceable fixes that your procurement and risk teams can easily keep track of.
Technical checklist we run by default
- Compiler/EVM:
- We're sticking with Solidity versions 0.8.30 and 0.8.31 for now, and make sure to set the
--evm-version. We’ve also done some smoke tests for EOF where it makes sense, plus we’re on a bit of a decluttering spree for anything that's going away in version 0.9.0. Check out the full details over at soliditylang.org. - As for the Dencun/Pectra/Osaka upgrades, we’re looking at several things: EIP‑4844 blobs, EIP‑5656 MCOPY, EIP‑6780 SELFDESTRUCT, and the adoption plan for EIP‑7939 CLZ. You can dive deeper into this at blockworks.co.
- We're sticking with Solidity versions 0.8.30 and 0.8.31 for now, and make sure to set the
- Security analysis:
- We’re using Slither alongside some custom detectors, and we’ve added Slither‑MCP for extra code intelligence; we’re also doing a thorough manual review on those high-risk areas like authentication, pausing, upgrades, and fee accounting. Want to see how it all works? Find out more on github.com.
- For fuzzing and invariant coverage, we’re targeting tools like Foundry, Echidna, and Medusa. Plus, we’re automating crash triage and seed minimization to keep us on our toes! More info is available at github.com.
- ZK:
- We’re ensuring the verifier is spot-on against the “last challenge” and tackling Fiat‑Shamir domain binding. Also, we’re checking the soundness of lookup gates and making sure our Halo2/Circom builds are reproducible with those sanity flags. Check out openzeppelin.com for all the details.
- Compliance evidence (SOC 2):
- We’ve got a solid threat model in place, along with logs for secure code reviews, SBOMs, CI artifacts from our static analysis and fuzzing runs, change control approvals, and release gates--all mapped to EthTrust v3/SCSVS.
ROI and GTM proof points (how this pays back)
- Loss avoidance baseline: With an estimated $3.4 billion in crypto theft predicted for 2025 and a focus on “big-game” incidents, the expected loss curve is pretty heavy-tailed. By conducting an audit that targets transcript binding (ZK), SELFDESTRUCT/upgrade patterns, and the impact of wallet compromises, we can significantly lower the tail risk that enterprise VaR models and cyber-insurance questionnaires typically account for. Check it out here: (chainalysis.com)
- Gas/Infra savings:
- You can swap stateful locks/approvals to EIP-1153 transient storage to cut down on that pesky persistent SSTORE overhead in hot paths. We often uncover 3-5% in end-to-end gas savings in transaction bundles where locks/approvals are the main players, and even bigger savings when it comes to batched operations. Dive into the details here: (eips.ethereum.org)
- Embrace MCOPY for those memory-heavy routines (like ABI/bytes transformations) and CLZ for bit operations. This can seriously trim compute/bytecode, plus it helps reduce ZK proving costs on zkVM backends. Learn more here: (eips.ethereum.org)
- Time-to-market and procurement velocity:
- Integrating EthTrust v3 with SCSVS mapping, packaging up SOC 2 evidence, and implementing SDLC gates can help knock down the most common obstacles in enterprise RFPs and exchange listings. This speeds up the “security review” process and reduces risks for Quarterly Business Reviews (QBRs). More info available here: (entethalliance.org)
Frequently missed issues we’ll look for immediately
- The assumptions around upgradeability took a hit with EIP‑6780; that old “burn via selfdestruct” logic isn’t cutting it anymore.
- There are some tricky mis-keyed domain separators in those permit-like flows (we’re talking chainId replay and name/version drift).
- After EIP‑4844, we’ve spotted some blob-cost blind spots in the L2 settlement and data availability strategy that we really need to pay attention to.
- We've got some unsafe “assembly” sections that don’t have memory-safe proofs; it might be a good time to swap out that bit-math for CLZ.
- ZK verifiers are dealing with weak transcript binding or unchecked batching; plus, those Circom/Halo2 pipelines could really use some sanity checks.
Where 7Block plugs into your roadmap
- Looking for some extra support with your build or launch beyond just the audit? Our awesome web3 development services and dApp development teams are here to jump in and get things sorted quickly. Plus, our DeFi development services have got you covered for protocol-level tweaks and asset tokenization for your enterprise needs.
- Thinking about raising funds or listing? Check out our fundraising support packages--they go perfectly with EthTrust-aligned audits to help with investor and exchange diligence.
Summary you can share internally
- When you get a modern smart contract audit, it’s all about making sure everything checks out--correctness, cost, and compliance with the Dencun→Osaka updates and ZK realities. This audit is compared to EthTrust v3/SCSVS and your SOC 2. It’s not just “another PDF”; think of it as a crucial release gate and a way to speed up procurement. (entethalliance.org)
- 7Block takes a cool approach that mixes Slither‑MCP static analysis, Foundry/Echidna fuzz invariants, and EIP-focused code reviews (like EIP‑1153/5656/6780/7939) along with ZK circuit+verifier audits. And the best part? Your procurement and finance teams will have useful artifacts ready to roll from day one. (blog.trailofbits.com)
Book a 90-Day Pilot Strategy Call
Ready to kick things up a notch? Let's dive into a 90-Day Pilot Strategy Call! This is your chance to brainstorm and strategize about how we can tackle your objectives head-on.
What to Expect:
- Personalized Plans: We'll create a tailored strategy just for you based on your unique needs and goals.
- Actionable Steps: Walk away with practical, easy-to-follow steps you can implement right away.
- Expert Insights: Get insider tips and tricks to help you navigate challenges and seize opportunities.
How to Book Your Call:
- Choose a Date: Pick a date and time that works best for you.
- Fill Out the Form: Complete the booking form with your details.
- Join the Call: Get ready for an engaging discussion that’ll set you on the path to success!
Ready to Get Started?
Don’t wait any longer! Click here to book your 90-Day Pilot Strategy Call and let’s make some magic happen!
Like what you're reading? Let's build together.
Get a free 30-minute consultation with our engineering team.
Related Posts
ByAUJay
Building 'Private Social Networks' with Onchain Keys
Creating Private Social Networks with Onchain Keys
ByAUJay
Tokenizing Intellectual Property for AI Models: A Simple Guide
## How to Tokenize “Intellectual Property” for AI Models ### Summary: A lot of AI teams struggle to show what their models have been trained on or what licenses they comply with. With the EU AI Act set to kick in by 2026 and new publisher standards like RSL 1.0 making things more transparent, it's becoming more crucial than ever to get this right.
ByAUJay
Creating 'Meme-Utility' Hybrids on Solana: A Simple Guide
## How to Create “Meme‑Utility” Hybrids on Solana Dive into this handy guide on how to blend Solana’s Token‑2022 extensions, Actions/Blinks, Jito bundles, and ZK compression. We’ll show you how to launch a meme coin that’s not just fun but also packs a punch with real utility, slashes distribution costs, and gets you a solid go-to-market strategy.

