Proč provádět pravidelný audit peněženky
Ekosystém kryptoměn je dynamický a oprávnění (approvals) udělená smart kontraktům se v průběhu času hromadí. Mnohá z nich jsou „nekonečná“ (unlimited), navázaná na nepřehledné proxy a zároveň se mění i samotný kód (upgradeable implementace). Pravidelný audit peněženky prostřednictvím bezpečnostních dashboardů a nástrojů typu revoke minimalizuje riziko ztráty prostředků po exploitu dApp, phishingu nebo chybné integraci. Tento článek popisuje, co přesně kontrolovat, jak interpretovat výsledky a jaká rozhodnutí přijímat.
Co jsou to approvals a proč jsou riziková
- ERC-20 allowance: povolení, aby adresovaný kontrakt (spender) mohl utrácet vaše tokeny. Typicky bývá nastaveno na „max uint“ (nekonečné) pro pohodlí uživatelského zážitku (UX).
- ERC-721/1155 setApprovalForAll: globální oprávnění přesouvat všechny NFT nebo partie jednoho kontraktu. Při útoku stačí jeden příkaz transferFrom.
- Permit / Permit2: podpisem (EIP-2612, Permit2) udělujete off-chain schválení, které se on-chain uplatní později. Skvělé pro UX, ale lákavé pro phishery (nekonečné a bez potřeby interakce peněženky při samotné platbě).
- Session/Delegation: herní dApps a nástroje používají dočasné „session keys“, delegace nebo relayer schémata. Pokud expirace či rozsah nejsou přísně definovány, přetrvává riziko.
Jaké události sledovat na blockchainu
Při ruční validaci v blockchain exploreru věnujte pozornost:
- Approval (ERC-20), ApprovalForAll (ERC-721/1155) – nová a změněná povolení.
- Permit, Permit2 – aplikovaná podpisová schválení, deadline, nonce a value.
- IncreaseAllowance/DecreaseAllowance – zda dApp nepoužívá bezpečnější inkrement/dekrement.
- Proxy upgrade a ImplementationChanged – u UUPS/beacon/proxy sledujte změny implementace; stará approvals tak mohou „změnit chování“.
Bezpečnostní dashboardy: co od nich očekávat
Moderní dashboardy agregují vaše oprávnění napříč sítěmi a třídí je podle rizika. Obvykle zobrazují:
- Seznam spenderů s ikonou důvěryhodnosti (ověřený kontrakt, audit, populární dApp) a proxy chain (transparentní vs. upgradeable).
- Rozsah: unlimited vs. limitované částky; u NFT – všechny položky vs. konkrétní tokenId.
- Čas poslední aktivity: stará „zapomenutá“ approvals jsou hlavní kandidáti na revoke.
- Multichain zobrazení: EVM sítě (Ethereum, L2, sidechains) i nezávislé řetězce (pokud jsou podporovány).
- Akční tlačítka: Revoke, Reduce (snížení limitu), případně Batch revoke s odhadem poplatku za plyn.
Rozhodovací rámec: zrušit, snížit nebo ponechat
- Kritická a neaktivní povolení: neznámí nebo dlouhodobě nepoužívaní spendři → Revoke.
- Důvěryhodné, často používané dApps: zvažte Reduce na just-in-time částku nebo časově omezený Permit.
- NFT marketplaces: pokud neprodáváte → zrušte setApprovalForAll, v případě potřeby jej můžete znovu udělit.
- Bridge a DeFi kontrakty: ponechte pouze nezbytné; preferujte kontrakty s permit-like postupem, pull-based rozhraním a scoped approvals.
Specifika podle tokenového standardu
- ERC-20: preferujte DecreaseAllowance na 0, poté Increase na požadovanou částku. Vyhnete se typické race condition při změně limitu.
- ERC-721/1155: vždy upřednostněte per-item approvals před ApprovalForAll, pokud to marketplace umožňuje.
- Permit/Permit2: podepisujte s nízkou hodnotou, krátkou expirací a kontrolujte domain separator, chainId a verifyingContract v EIP-712 okně.
Typické útoky a jak je dashboard odhalí
- Malicious spender: neznámý kontrakt s unlimited allowance – nástroj jej zvýrazní jako vysoké riziko.
- Upgrade trap: legitimní proxy získal novou implementaci; dashboard zobrazí implementation hash a datum změny.
- Permit phish: podepsaná nekonečná povolenka přes elegantní modální okno; v historii uvidíte použitý Permit s enormní hodnotou.
- Leakage approvals přes zapomenuté dApps: starý farmovací kontrakt má stále práva – zobrazí se nulová aktivita > 90 dní.
Workflow pravidelného auditu (měsíční rytmus)
- Inventarizace: projděte všechny sítě, kde máte aktiva. Exportujte seznam spenderů a povolení (CSV).
- Skórování rizika: označte neznámé/neuveřejněné spendery, unlimited limity a stará povolení (> 30–90 dní bez aktivity).
- Akce: revoke/limit. U větší sady využijte batch – sjednotíte poplatky.
- Simulace: nové transakce projděte simulátorem; potvrďte, že po revoke dApp stále funguje (jinak udělit minimálně nové povolení).
- Monitorování: zapněte upozornění (push/e-mail) na nové Approval* události z vašich adres.
Cross-chain a L2 specifika
Každý řetězec = samostatná sada approvals. L2 mají levné transakce, proto je rozumné revokovat častěji. Dávejte pozor na:
- Canonical vs. third-party mosty: pouze canonical kontrakty by měly mít práva k vašim aktivům.
- Multisig a trezory: u treasury pravidelně auditujte Module rozšíření (Safe Modules) a delegace.
- Rollup upgrade: při major upgrade sítě znovu ověřte integritu spenderů (nové adresy, migrace).
Account Abstraction a session oprávnění
Při EIP-4337 peněženkách sledujte:
- Pluginy/Modules: které mohou přenášet práva na třetí kontrakty.
- Session keys: krátké expirace, omezené call-targets a value.
- Paymasters: nepovolujte neomezené výdaje, pokud to není nutné.
Operační hygiena: pro jednotlivce i týmy
- Hardwarová peněženka na hodnoty, hot wallet na interakce; nikdy nesdílejte approvals mezi nimi.
- Sandbox pro testování: novou dApp vyzkoušejte s čerstvou adresou a minimálním zůstatkem.
- Oddělené profily prohlížeče a rozšíření; minimalizujte práva doplňků.
- Signing hygiene: čtěte EIP-712; kontrolujte chainId, verifyingContract, spender, value, deadline.
- DNS/typo-squatting: používejte záložky; nikdy neklikejte na odkazy z DM.
Náklady, poplatky a strategie revokací
Revoke je standardní transakce, platí se gas. U drahých L1:
- Upřednostněte nejrizikovější approvals a ty s velkým tokenovým zůstatkem.
- Zvažte načasování (nízký gas), případně batch revoke, pokud nástroj podporuje.
- Pro ERC-20 využijte DecreaseAllowance na 0 (někdy levnější než plný revoke).
Incident response: co dělat při kompromitaci
- Okamžitě odpojit a zrušit všechna approvals vůči podezřelému kontraktu (ve všech sítích).
- Migrace aktiv: přesun do studené peněženky nebo nového trezoru; zvažte permit-less převody (pokud existují).
- Revokace session/plug-inů a pozastavení modulů (multisig).
- Forenzní logy: exportovat historii approvals a transakcí; nahlásit adresy monitorovacím službám a marketplaceům.
Co by měl vědět každý začátečník
- „Connect wallet“ ≠ „bezpečné“: samotné připojení je neškodné, riziko vzniká při podpisu nebo schválení.
- „Sign to proceed“ může být permit: pokud nevíte, co podepisujete, nedělejte to. Hledejte spender/value/deadline.
- Revoke ≠ refund: zrušení oprávnění nevrací ukradené prostředky, ale zastavuje další škody.
Checklist měsíčního auditu (TL;DR)
- Projít všechny sítě a exportovat approvals.
- Označit unlimited, neznámé spendery a stará/neaktivní práva.
- Revoke/Reduce podle rizika; u NFT vypnout ApprovalForAll, pokud se neprodává.
- Zapnout upozornění na nové Approval* a Permit* události.
- Ověřit proxy implementace a změny kódu u důležitých dApps.
- Zkontrolovat rozšíření, prohlížeč a oddělení „hot/cold“ peněženek.
Bezpečnost peněženky není jednorázový úkon, ale proces. Revoke a bezpečnostní dashboardy poskytují přehled a nástroj k rychlým intervencím, ale rozhodující je disciplína: minimální oprávnění, krátké expirace, pravidelný audit a zdravá skepse při podepisování. Takto se z pohodlí „nekonečných approvals“ stane kontrolovaný a auditovatelný bezpečnostní režim, který ochrání vaše aktiva i v době, kdy se ekosystém mění rychleji než dokumentace dApps.



























