Audits
Smart-contract-auditsdie lezen als een aanval.
Ik loop je Solidity-code regel voor regel door, schrijf de tests die een aanvaller zou schrijven en geef je een rapport waar je mee verder kunt: wat er mis is, waarom het ertoe doet, hoe je het bewijst en hoe je het oplost.
- tests in mijn eigen protocollen
- 838
- echte hacks in mijn checklist
- 860
- rapporttalen: Engels en Arabisch
- 2
Wat ik controleer
De bugs die echt geld kosten
Mijn checklist komt uit de oorzaken van 860 echte incidenten.
- 01
Toegangscontrole
Wie wat mag aanroepen: ontbrekende modifiers, onbeschermde initializers, te ruime rollen.
- 02
Reentrancy
Externe calls vóór statuswijzigingen, cross-function en read-only reentrancy.
- 03
Oracle- en prijsmanipulatie
Spotprijzen, dunne pools, verouderde data, prijzen gestuurd door flash loans.
- 04
Rekenen en afronden
Afrondingsrichting, precisieverlies, share-inflatie en first-depositor-aanvallen.
- 05
Bedrijfslogica
Regels die apart werken maar samen breken, randgevallen in state machines.
- 06
Handtekeningen en replay
EIP-712, nonces, chain-ID’s, permit en signature malleability.
- 07
Upgrades en storage
Proxypatronen, storage-layout, initializers en adminsleutels.
- 08
Denial of service en griefing
Onbegrensde loops, geblokkeerde opnames, gasvallen.
Hoe het werkt
Zes stappen, van scope tot fixreview
Scope en prijs
Je stuurt de repository en de commit. Ik kijk naar de omvang en het risico en stuur je een vaste prijs en een datum.
Dreigingsmodel
Ik schrijf op wat nooit mag breken: de invarianten, de rollen en de geldstromen.
Handmatige review
Regel voor regel, met de checklist uit echte exploits naast me.
Fuzz- en invariant-tests
Foundry-tests die met willekeurige input de invarianten proberen te breken.
Rapport
Elke bevinding met een ernst, de impact, een proof of concept en een fix.
Fixreview
Als je de problemen oplost, controleer ik elke fix opnieuw. Dit is inbegrepen.
Wat je krijgt
Een rapport waar je mee verder kunt
Heldere bevindingen
Ernst, impact, de plek in de code en de stappen om het te reproduceren.
Proof of concept
Foundry-tests die de bug laten zien, zodat je team hem ziet falen en daarna slagen.
Advies voor de fix
Een concrete fix voor elke bevinding, niet alleen een beschrijving van het probleem.
Fixreview
Een tweede ronde over je fixes, met de eindstatus van elke bevinding.
Ernst
Hoe ik een bevinding beoordeel
- Kritiek
- Direct verlies of blokkering van geld, of volledige controle over het protocol, zonder speciale voorwaarden.
- Hoog
- Verlies van geld of een kapotte kernfunctie, onder voorwaarden die waarschijnlijk zijn.
- Gemiddeld
- Verlies is mogelijk maar vraagt speciale voorwaarden, of een functie breekt op een manier die te herstellen is.
- Laag
- Klein risico, een ontbrekende check of een slecht patroon zonder direct verlies.
- Informatief
- Codekwaliteit, gas en best practices. Geen beveiligingsrisico.
Vragen
Wat kost het?
Elke audit krijgt een vaste prijs nadat ik de code heb gezien. De prijs hangt af van de omvang en de complexiteit, niet van de uren die ik eraan besteed.
Hoe lang duurt het?
De meeste audits duren één tot drie weken. Je krijgt de datum samen met de prijs.
Teken je een NDA?
Ja. Je code blijft privé. Ik publiceer een bevinding alleen als jij dat toestaat.
Welke code audit je?
Solidity op Ethereum en EVM-chains: DeFi, tokens, NFT’s, governance, vaults en meer.
In welke taal werk je?
Ik werk in het Engels. Mail me gerust in het Engels; het rapport is ook in het Engels (of in het Arabisch).
Audits
Audit aanvragen
Stuur de link naar je code en een korte beschrijving. Ik antwoord per e-mail met de volgende stappen.
Wat er daarna gebeurt
- Je stuurt de aanvraagDe link naar je code, de commit voor de audit en een korte beschrijving.
- Je krijgt een vaste prijsIk kijk naar de omvang en het risico en stuur je per e-mail een prijs en een datum.
- De audit begintWanneer jij er klaar voor bent. Je krijgt het rapport en daarna een gratis controle van je fixes.
Elke aanvraag komt direct in mijn inbox. Ik antwoord per e-mail, in het Engels.