1. Co to jest zezwolenie?
Zacznijmy od krótkiej historii o pożyczaniu pieniędzy:
Wyobraźmy sobie, że chcę pożyczyć 1 milion od mojego przyjaciela, Jacka Ma. Jack bez wahania podnosi słuchawkę i dzwoni do banku, potwierdzając swoją tożsamość i polecając autoryzować dla mnie limit wypłaty w wysokości 1 miliona. Bank rejestruje tę autoryzację, a wszystko, co muszę zrobić, to odwiedzić bank, zidentyfikować się i wypłacić autoryzowaną kwotę. Jeśli bank nie znajdzie autoryzacji, moja prośba zostanie odrzucona.
Teraz zbadajmy, jak zmienia się ten proces przy użyciu innej metody – zezwolenia. W tym scenariuszu, gdy proszę Jacka o 1 milion, on od niechcenia wyciąga czek, wpisuje kwotę, podpisuje go i wręcza mi. Zanoszę czek do banku i nawet bez rekordu autoryzacji bank realizuje go na podstawie podpisu Jacka.
Ilustruje to różnicę między Approve i Permit. Approve, podstawowa funkcja ERC-20, była szeroko stosowana od czasu uruchomienia Ethereum. Ale dlaczego Permit został wprowadzony później przez ERC-2612, aby osiągnąć ten sam efekt?
2. Dlaczego potrzebne było zezwolenie?
Propozycja ERC-2612 została wprowadzona w marcu 2019 roku i sfinalizowana w październiku 2022 roku. Jego rozwój zbiegł się w czasie z kilkoma skokami cen gazu Ethereum. Szał na rynku podczas hossy sprawił, że użytkownicy wydawali więcej na opłaty za gaz w celu szybszych transakcji, w których nawet przewaga jednego bloku mogła oznaczać znaczny zysk.
Zjawisko to stanowiło jednak obciążenie dla użytkowników, ponieważ proces dwóch transakcji wymagany do zatwierdzenia stał się kosztowny, szczególnie dla osób z mniejszymi funduszami. Wprowadzenie Permit pozwoliło na podpisywanie offline, eliminując potrzebę natychmiastowej autoryzacji w łańcuchu. Zmiana ta oznaczała, że autoryzacja mogła być dostarczona wraz z transferem tokena, podobnie jak realizacja czeku bez konieczności wcześniejszego zatwierdzenia przez bank.
Chociaż wydawało się to korzystne – oszczędzając Jackowi rozmowy telefonicznej i zmniejszając opłaty transakcyjne użytkowników – nieumyślnie otworzyło puszkę Pandory.
3. Gwałtowny wzrost ryzyka
Przed Permit hakerzy często polegali na metodach phishingu, które wymagały od użytkowników podpisania zatwierdzenia transakcji, co wiązało się z opłatami za gaz i wzbudzało wątpliwości. Nawet jeśli użytkownicy przypadkowo kliknęli, opóźnienie czasowe dla transakcji w łańcuchu pozwalało im odwrócić działanie za pomocą nowej transakcji.
Zezwolenie zmieniło jednak zasady gry. Eliminuje opłaty za gaz, wymagając jedynie podpisu, co zmniejsza czujność użytkownika. Ponieważ podpisywanie odbywa się w trybie offline, hakerzy mogą przejąć kontrolę i wykorzystać sytuację w dowolnym momencie, maksymalizując swoje zyski.
Wpływ tej zmiany jest widoczny w rosnącej liczbie ofiar phishingu i skradzionych kwotach. Według @ScamSniffer:
- W 2023 roku straty spowodowane phishingiem osiągnęły 295 milionów dolarów.
- Do połowy 2024 r. liczba ta przekroczyła już 314 mln USD.
- W trzecim kwartale 2024 r. doszło do znaczącego incydentu związanego z portfelem, który padł ofiarą ataku phishingowego Permit, w wyniku którego utracono 12 000 $spWETH o wartości około 30 mln USD.
Takich rezultatów prawdopodobnie nie przewidzieli deweloperzy, którzy zaproponowali Permit, początkowo mający na celu obniżenie kosztów gazu i poprawę komfortu użytkowania. To, co miało być mieczem obosiecznym, okazało się ostrym nożem, przecinającym bariery ochronne wokół aktywów użytkowników.
Pojawiły się podobne metody podpisywania offline, takie jak Permit2 z Uniswap, co zwiększa zależność od podpisywania offline i zwiększa ryzyko phishingu.
4. Jak się chronić
W obliczu zbliżającego się zagrożenia użytkownicy mogą podjąć kilka środków ostrożności, aby złagodzić straty:
1. Zwiększenie świadomości
- Zachowaj ostrożność wobec pokus zrzutów z powietrza: Airdropy mogą być kuszące, ale wiele z nich to próby phishingu. Zawsze weryfikuj legalność zrzutu z wielu źródeł przed wzięciem w nim udziału.
- Unikaj podpisywania w ciemno: Jeśli przypadkowo wejdziesz na stronę phishingową i pojawi się okno transakcji, sprawdź szczegóły transakcji. Terminy takie jak Permit, Permit2, Approve lub IncreaseAllowance wskazują na potencjalne problemy z autoryzacją, co uzasadnia ostrożność. Portfele sprzętowe, takie jak Keystone, mogą pomóc, analizując i wyświetlając szczegóły transakcji, zapobiegając impulsywnym działaniom.
2. Korzystanie z narzędzi
- ScamSniffer: To rozszerzenie przeglądarki ostrzega użytkowników przed wprowadzaniem podejrzanych adresów URL, umożliwiając im szybkie zatrzymanie interakcji.
- Cofnięcie: Revoke.cash wyświetla rekordy autoryzacji tokenów w portfelu, doradzając użytkownikom, aby cofnęli wszelkie podejrzane lub nieograniczone autoryzacje. Regularne czyszczenie autoryzacji minimalizuje ryzyko.
3. Izolacja aktywów i portfele z wieloma podpisami
Powiedzenie „nie wkładaj wszystkich jajek do jednego koszyka” odnosi się również do aktywów kryptograficznych. Przechowuj znaczące aktywa w zimnych portfelach, takich jak Keystone, używając małych gorących portfeli do codziennych transakcji. W ten sposób, nawet jeśli jeden portfel zostanie naruszony, nie wszystkie aktywa są zagrożone.
W celu zwiększenia bezpieczeństwa, portfele z wieloma podpisami mogą zapewnić dodatkową ochronę. Dostęp do aktywów można uzyskać tylko po zatwierdzeniu określonej liczby portfeli, co gwarantuje, że pojedynczy naruszony portfel nie doprowadzi do całkowitej utraty.
5. Wnioski
Chociaż nie możemy zaprzeczyć wartości, jaką przynosi Permit, rosnąca liczba kradzieży sugeruje, że ryzyko może przewyższać korzyści. Podobnie jak w przypadku niegdyś popularnej metody ethsign, która została ostatecznie porzucona z powodu obaw o bezpieczeństwo, Permit stoi teraz w obliczu krytycznego momentu. Deweloperzy muszą dokładnie rozważyć, czy ulepszyć tę metodę, czy też ją porzucić.