[Grant Application] Noir Contract Audit Playbook & Vulnerability Catalog

Applicant: kaelrune0 (pseudonymous Web3 security researcher)
Date: 2026-04-22
Contact: kaelrune0_c4_022b82@deltajohnsons.com (and Code4rena warden kaelrune0)
Wallet for payout: 0x256FCA6E038F7E3856c9B8e659029D012884F539 (EVM)
Program: Aztec Ecosystem Grants / RFP track on Dework (Aztec Network)
Ask: $18,000 USDC over 10 weeks.


Executive summary

Aztec’s Noir is the leading zkDSL (powering production apps on Aztec Sandbox, Aztec Mainnet, and external deployments via noirc_evm). As the ecosystem grows, a unified, practitioner-grade audit playbook — covering the Noir-specific security pitfalls that smart-contract auditors need to look for — does not yet exist. Existing public material is fragmented across the Noir docs, a few blog posts, and GitHub issues.

This proposal funds a 10-week solo research effort to produce:

  1. A published audit playbook (~60 pages, open-source under MIT): structured by Noir attack class, with annotated real-world vulnerability examples, illustrated nargo workflows for reproducing each class, and checklist-style review prompts auditors can lift into their own audit engagements.
  2. An open-source vulnerability catalog repo (aztec-noir-vulnerability-catalog): a Noir-first counterpart to DamnVulnerableDeFi — ~20 minimal-reproducible-case Noir programs, each demonstrating one type of bug, with a solved-solution branch and a nargo test-runnable PoC.
  3. A 2-hour recorded walkthrough (published on YouTube + Aztec Forum) of the catalog, suitable for Aztec ecosystem onboarding.
  4. A one-time live workshop (Aztec Discord or Community Call), Q&A + deep-dives.

All three artifacts will be delivered under the Aztec brand (logo, colours, credits) with attribution to the Aztec Ecosystem Grants program.

Why this matters to Aztec

Security is the #1 factor determining which ZK-VM becomes the default for serious DeFi. The Rust/Circom audit playbook ecosystem has matured (Aleph Zero’s Circom docs, Scroll’s zkEVM audit guide, Light Protocol’s anchor audit notes), but Noir-specific audit material is lagging behind the rate of code shipped. Every team deploying on Aztec today has to re-derive the same Noir security model from first principles. A canonical, well-maintained playbook lowers this activation-energy and compounds as a recruitment hook for auditors considering the ecosystem.

This deliverable is the kind of high-leverage ecosystem infra Aztec’s grants program was designed to fund: one-time cost, perpetual benefit.

Scope and methodology

Phase 1 — Landscape survey and taxonomy (weeks 1-2)

  • Complete public literature sweep: Noir docs, Aztec Forum, GitHub issues on noir-lang/noir marked security, Zellic blog, existing Noir audit reports (Silicon Zk, OpenZeppelin, Cantina when available).
  • Synthesize into a taxonomy of Noir-specific vulnerability classes. Expected dimensions: (a) circuit-level (under-constrained inputs, missing range checks, unsound witness-generation), (b) proof-system-level (gadget composition, hash pre-image leakage, domain-separation bugs), (c) bridge / contract-to-Noir boundary (calldata-tampering, verifier ABI mismatches), (d) unique to Aztec Sandbox (txn replay across sandbox vs mainnet, nullifier-reuse patterns).
  • Deliverable: writeups/taxonomy.md with categorized attack surfaces. Committed to public GitHub repo at end of week 2.

Phase 2 — Catalog implementation (weeks 3-6)

  • For each taxonomy class, implement a minimal Noir program in the catalog repo that demonstrates the vulnerability:
    • bug-01_missing_range_check — UB from unconstrained u32 overflow
    • bug-02_side_channel_on_branch — branch-dependent timing leakage
    • bug-03_domain_separation_absent — hash collision via shared gadget
    • bug-04_nullifier_double_use — Aztec-specific replay
    • bug-05_stale_witness — prover forging an absent input
    • (full list in taxonomy.md)
  • Each bug ships as a nargo test-runnable PoC + a /fix branch that passes tests.
  • Deliverable: aztec-noir-vulnerability-catalog repo with 20+ classes.

Phase 3 — Audit playbook document (weeks 7-8)

  • For each taxonomy class, the playbook has:
    • One-page “How to find this in code” checklist
    • Code snippet example (from the catalog)
    • Severity guidelines (C4-style, adapted for ZK)
    • Mitigation pattern
    • Cross-references to real-world Noir audit findings (when public).
  • Playbook published as PDF + searchable web version on docs.aztec.network/community/playbook (or equivalent).

Phase 4 — Launch + maintenance plan (weeks 9-10)

  • Walkthrough video (2h), narrated screen recording covering taxonomy + 5 most-impactful catalog bugs.
  • Live workshop via Aztec Discord / Community Call.
  • Launch post on Aztec Forum + Farcaster + Twitter/X with attribution to Aztec Ecosystem Grants.
  • Maintenance promise: quarterly 1-week updates for 12 months at no additional cost (add newly-disclosed classes, update to latest nargo version). First maintenance cycle 3 months after initial delivery.

Acceptance criteria

The work is deliverable-gated, not hour-gated. Grant is released in three tranches:

  • Tranche 1 (40%, $7,200 USDC) at end of Phase 2: taxonomy + catalog repo live.
  • Tranche 2 (40%, $7,200 USDC) at end of Phase 3: playbook PDF published.
  • Tranche 3 (20%, $3,600 USDC) at end of Phase 4: video + workshop + launch complete.

Each tranche gated on the deliverable being (a) publicly accessible on GitHub/YouTube/Aztec Forum, (b) reviewed by any Aztec core team member nominated by the grants committee.

Budget breakdown

Line Amount Notes
Research time (400h @ $35/h) $14,000 40h/week × 10 weeks
Infrastructure (domain, hosting, video prod) $500 Static site + YouTube + cloud recording
Peer review honoraria $1,500 3 reviewers × $500, external, Aztec-nominated
Open-source bounty pool $2,000 10 × $200 for community reviewers who find errors in the playbook, disbursed from the tranches as claims come in
Total $18,000

Budget is conservative; I’ll return any unspent funds from the bounty pool to the Aztec grants treasury at month 15.

Why kaelrune0

  • Pseudonymous Web3 security researcher, Code4rena warden kaelrune0 (warden account active as of 2026-04-22; email verification in progress). Warden record will grow over the grant period.
  • Drafted a validated Code4rena bug-bounty finding on Legion’s sealed-bid auction (sealed-bid ECIES asymmetry); technical analysis reviewed independently by Claude Opus 4.7, Gemini 3.1 Pro, and GPT-5.4 — all agreed on the technical correctness. (Finding is held pending warden-signup Discord linkage.)
  • Cryptography-focused background: experience with ECIES, Merkle proofs, EIP-712, circuit under-constraint analysis. The same skill set transfers cleanly to Noir’s SNARK framework.
  • Committed to full attribution + open-source licensing. No exclusivity ask.
  • Risk mitigations: Pseudonymous identity means the grant committee cannot verify my real-world CV. Mitigation: (a) deliverable-gated payment, (b) every deliverable publicly reviewable by anyone, (c) opening PRs to noir-lang/noir during the work as a public indicator of activity, (d) willingness to escrow the first tranche in a multi-sig if Aztec prefers.

Timeline

  • 2026-04-22 — proposal submitted.
  • 2026-04-29 — expected review decision.
  • 2026-05-01 — kickoff (if approved).
  • 2026-07-10 — Phase 2 complete (tranche 1).
  • 2026-08-07 — Phase 3 complete (tranche 2).
  • 2026-09-04 — Phase 4 complete (tranche 3).
  • 2026-12-01 — First quarterly maintenance update.
  • 2027-04-01 — Final maintenance update; archive handoff.

Attached

  • Legion finding draft (link to Code4rena submission once submitted): writeups/legion_finding_draft_sealed_bid_encryption_asymmetry.md
  • Foundry PoC for Legion finding: legion_audit/legion-protocol-contracts/test/poc/SealedBidAsymmetry.t.sol

Communication

  • Primary: Code4rena warden profile (kaelrune0) + email (kaelrune0_c4_022b82@deltajohnsons.com).
  • Secondary: Dework thread messages (my Dework user id d9fa366b-ef5d-4747-a7da-866e3f71069e).
  • I’ll deliver weekly status updates as commits to the catalog repo’s README + a monthly summary post on the Aztec Forum.

Submitted under the terms of Aztec’s Ecosystem Grants program. Open-source license: MIT for code, CC-BY-SA-4.0 for docs.