Proč provádět pravidelný audit peněženky
Ekosystém kryptoměn je dynamický a povolení (approvals) udělených smart kontraktům se v průběhu času hromadí. Mnohá z nich jsou „nekonečná“ (unlimited), navázaná na nepřehledné proxy a samotný kód se v čase mění (upgradeable implementace). Pravidelný audit peněženky pomocí bezpečnostních dashboardů a nástrojů typu revoke minimalizuje riziko vyprázdnění peněženky při exploitu dApp, phishingu nebo chybné integraci. Tento článek popisuje, co přesně kontrolovat, jak číst výsledky a jaká rozhodnutí činit.
Co jsou approvals a proč představují riziko
- ERC-20 allowance: povolení, aby adresovaný kontrakt (spender) mohl utrácet vaše tokeny. Typicky je nastaveno na „max uint“ (nekonečné) pro pohodlí uživatelského prostředí.
- ERC-721/1155 setApprovalForAll: globální oprávnění přesouvat všechny NFT/partie jednoho kontraktu. Při útoku postačí jediný transferFrom.
- Permit / Permit2: podpisem (EIP-2612, Permit2) udělujete off-chain schválení, které se on-chain uplatní později. Výborné pro UX, ale lákavé pro phishery (nekonečné a bez interakce peněženky při samotné úhradě).
- Session/Delegation: herní dApps a nástroje používají dočasné „session keys“, delegace nebo relayer schémata. Pokud expirace nebo rozsah oprávnění nejsou přísné, riziko přetrvává.
Jaké události sledovat na blockchainu
Při ruční validaci v explorere 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 povolení napříč sítěmi a třídí je podle rizika. Obvykle zobrazují:
- Seznam spenderů s ikonou důvěryhodnosti (verified contract, 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á“ povolení jsou hlavními kandidáty pro revoke.
- Multichain zobrazení: EVM sítě (Ethereum, L2, sidechains) i nezávislé řetězce (pokud podporovány).
- Akční tlačítka: Revoke, Reduce (snížení limitu), případně Batch revoke s odhadem gasu.
Rozhodovací rámec: zrušit, snížit, nebo ponechat
- Kritická a neaktivní povolení: neznámí nebo dlouhodobě nepoužívaní spenders → Revoke.
- Důvěryhodné, často používané dApps: zvažte Reduce na just-in-time částku nebo časově omezené Permit.
- NFT tržiště: pokud neprodáváte → zrušte setApprovalForAll, v případě potřeby jej znovu udělte.
- Bridge a DeFi kontrakty: ponechte pouze nezbytné; preferujte kontrakty s permit-like flow, pull-based rozhraním a scoped approvals.
Specifika podle tokenového standardu
- ERC-20: preferujte DecreaseAllowance na 0, pak Increase na požadovanou částku. Předejdete typické race condition při změně limitu.
- ERC-721/1155: vždy upřednostněte per-item approvals před ApprovalForAll, pokud to tržiště umožňuje.
- Permit/Permit2: podepisujte s nízkou hodnotou, krátkou expirácí 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 phishing: podepsaná nekonečná povolenka přes hezké modální okno; v historii uvidíte použitý Permit s enormní hodnotou.
- Leakage approval přes zapomenuté dApps: starý farmovací kontrakt má stále práva – uvidíte nulovou aktivitu > 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é/nezveřejněné spendery, unlimited limity a stará povolení (> 30–90 dní bez aktivity).
- Akce: revoke/limit. Při větším množství využijte batch – sjednotíte poplatky.
- Simulace: nové transakce procházejte simulátorem; potvrďte, že po revoke dApp stále funguje (jinak udělte minimálně nové povolení).
- Monitorování: zapněte upozornění (push/e-mail) na nové Approval* eventy z vašich adres.
Cross-chain a L2 specifika
Každý řetězec znamená samostatnou sadu povolení. L2 mají levné transakce, proto je rozumné častěji revokovat. Dávejte pozor na:
- Canonical vs. third-party bridges: 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 upgrades: při zásadní aktualizaci sítě znovu ověřte integritu spenderů (nové adresy, migrace).
Account Abstraction a session oprávnění
Při používání EIP-4337 peněženek 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í nezbytné.
Operační hygiena: pro jednotlivce a týmy
- Hardwarová peněženka na hodnoty, hot wallet na interakce; nikdy nesdílejte povolení mezi nimi.
- Sandbox pro testy: novou dApp testujte s čerstvou adresou a minimálním zůstatkem.
- Oddělené profily prohlížeče a rozšíření; minimalizujte oprávnění doplňků.
- Signing hygiena: č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, za kterou se platí gas. U drahého L1:
- Upřednostněte nejrizikovější povolení a ta s velkým zůstatkem tokenu.
- Zvažte časování (nižší 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 reakce: co dělat při kompromitaci
- Okamžitě odpojit a zrušit všechna povolení vůči podezřelému kontraktu (ve všech sítích).
- Migrace aktiv: přenos do studené peněženky nebo nového trezoru; zvažte permit-less převody (pokud existují).
- Revokace session/pluginů a pozastavení modulů (multisig).
- Forenzní logy: exportovat historii povolení a transakcí; nahlásit adresy monitorovacím službám a tržiští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í práva nevrací ukradené prostředky, ale zastavuje další škody.
Checklist měsíčního auditu (TL;DR)
- Projít všechny sítě a exportovat povolení.
- 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* eventy.
- 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ý akt, ale proces. Revoke a bezpečnostní dashboardy poskytují přehled a páku pro rychlé zásahy, ale rozhodující je disciplína: minimální povolení, 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.



























