Od léku k jedu: Proč se povolení stalo zdrojem rizika?
1. Co je to povolení?
Začněme malým příběhem o půjčování peněz:
Představte si, že si chci půjčit 1 milion od svého přítele Jacka Ma. Jack bez váhání zvedne telefon, zavolá do banky, potvrdí svou totožnost a dá pokyn, aby mi schválili limit pro výběr 1 milionu. Banka tuto autorizaci zaznamená a mně stačí banku navštívit, identifikovat se a vybrat autorizovanou částku. Pokud banka autorizaci nenajde, můj požadavek zamítne.
Nyní prozkoumáme, jak se tento proces změní pomocí jiné metody – povolení. V tomto scénáři, když Jacka požádám o 1 milion, vytáhne zběžně šek, vyplní částku, podepíše ho a předá mi ho. Odnesu šek do banky a banka jej i bez autorizačního záznamu proplatí na základě Jackova podpisu.
To ilustruje rozdíl mezi pojmy Approve a Permit. Approve, základní funkce ERC-20, se široce používá od spuštění Etherea. Proč však bylo povolení zavedeno později prostřednictvím ERC-2612, aby se dosáhlo stejného efektu?
2. Proč bylo povolení potřeba?
Návrh ERC-2612 byl předložen v březnu 2019 a dokončen v říjnu 2022. Jeho vývoj se časově shodoval s několika skokovými nárůsty cen etherea. Zběsilost trhu během býčích sérií vedla uživatele k tomu, že utráceli více za poplatky za plyn za rychlejší transakce, kdy i výhoda jednoho bloku mohla znamenat značný zisk.
Tento jev však pro uživatele představoval zátěž, protože proces dvou transakcí vyžadovaný pro schválení se stal nákladným, zejména pro ty, kteří mají menší finanční prostředky. Zavedení funkce Povolení umožnilo podepisování v režimu offline, čímž odpadla nutnost okamžité autorizace v řetězci. Tato změna znamenala, že autorizace mohla být poskytnuta současně s převodem tokenu, podobně jako při proplácení šeku, aniž by bylo nutné předchozí schválení bankou.
Ačkoli se to zdálo být výhodné – ušetřilo to Jackovi telefonní hovor a snížilo poplatky za uživatelské transakce – nechtěně to otevřelo Pandořinu skříňku.
3. Rychlý nárůst rizik
Před Permitem se hackeři často spoléhali na podvodné metody, které vyžadovaly, aby uživatelé podepsali Schválit transakce, což vedlo k poplatkům za plyn a vyvolávalo obavy. I když uživatelé omylem klikli, časová prodleva u transakcí na řetězci jim umožnila akci zvrátit novou transakcí.
Povolení však změnilo hru. Odstraňuje poplatky za plyn a vyžaduje pouze podpis, což snižuje ostražitost uživatelů. Vzhledem k tomu, že podepisování probíhá offline, mohou hackeři převzít kontrolu a využít situace, kdykoli se jim zachce, a maximalizovat tak své zisky.
Dopad tohoto posunu je patrný z rostoucího počtu obětí phishingu a ukradených částek. Podle @ScamSniffer:
- V roce 2023 dosáhly ztráty způsobené phishingem 295 milionů dolarů.
- V polovině roku 2024 již tato částka přesáhla 314 milionů dolarů.
- Ve 3. čtvrtletí roku 2024 došlo k významnému incidentu, kdy se peněženka stala obětí phishingového útoku Permit, což vedlo ke ztrátě 12 000 $spWETH v hodnotě přibližně 30 milionů USD.
Takové výsledky vývojáři, kteří navrhli povolení, pravděpodobně nepředpokládali, protože jejich cílem bylo původně snížit náklady na plyn a zvýšit uživatelský komfort. To, co mělo být dvousečným mečem, se ukázalo být ostrým nožem, který prořízl ochranné bariéry kolem majetku uživatelů.
Objevily se podobné metody offline podepisování, jako je Permit2 od Uniswap, což zvyšuje závislost na offline podepisování a zesiluje rizika phishingu.
4. Jak se chránit
Tváří v tvář této hrozbě mohou uživatelé přijmout několik opatření ke zmírnění ztrát:
1. Zvyšování povědomí
- Buďte obezřetní vůči pokušení náletů: Airdrops mohou být lákavé, ale mnohé z nich jsou pokusy o phishing. Před účastí na akci si vždy ověřte její legitimitu z více zdrojů.
- Vyhněte se podepisování naslepo: Pokud nechtěně vstoupíte na phishingovou stránku a zobrazí se okno s transakcí, pečlivě si prohlédněte podrobnosti transakce. Výrazy jako Permit, Permit2, Approve nebo IncreaseAllowance naznačují potenciální problémy s autorizací, což je důvodem k opatrnosti. Hardwarové peněženky, jako je Keystone, mohou pomoci tím, že rozeberou a zobrazí podrobnosti o transakci a zabrání tak impulzivním akcím.
2. Využití nástrojů
- ScamSniffer: Toto rozšíření prohlížeče upozorňuje uživatele před zadáním podezřelých adres URL a umožňuje jim tak okamžitě zastavit interakci.
- Odvolání: Revoke.cash zobrazí záznamy o autorizaci tokenů v peněžence a doporučí uživatelům, aby zrušili jakoukoli podezřelou nebo neomezenou autorizaci. Pravidelné čištění autorizací minimalizuje rizika.
3. Izolace aktiv a peněženky s více podpisy
Rčení „nevkládejte všechna vejce do jednoho košíku“ platí i pro kryptoaktiva. Významná aktiva ukládejte do studených peněženek, jako je Keystone, a pro každodenní transakce používejte malé horké peněženky. Tímto způsobem, i když je jedna peněženka ohrožena, nejsou ohrožena všechna aktiva.
Další ochranu mohou poskytnout peněženky s více podpisy. Přístup k aktivům je možný pouze s předem stanoveným počtem schválení peněženky, což zajistí, že jediná kompromitovaná peněženka nepovede k úplné ztrátě.
5. Závěr
I když nemůžeme popřít hodnotu, kterou povolení přináší, rostoucí počet krádeží naznačuje, že jeho rizika mohou převážit nad jeho přínosy. Podobně jako kdysi rozšířená metoda ethsign, která byla nakonec z bezpečnostních důvodů opuštěna, i metoda Permit nyní čelí kritickému okamžiku. Vývojáři musí promyšleně zvážit, zda tuto metodu dále zdokonalovat, nebo od ní upustit.