Smartkontrakt to świetny wynalazek. Trzeba jednak zadbać by nie był bardziej “smart” od ciebie i na przykład nie wyczyścił ci całego konta. Rozwiązaniem może być audyt smartkontraktu. Co zatem warto sprawdzić i jak to zrobić?
Po co komu audyt?
Smartkontrakt działa automatycznie. Naciskasz klawisz i zapisany na blockchainie kod wykonuje się automatycznie. Nic nie jest w stanie przerwać jego działania, może poza odcięciem prądu. Jak jednak ochronić się przed kontraktami napisanymi niedbale, albo wręcz mającymi działać na szkodę użytkowników? Warto sprawdzić, czy były poddane audytowi przez firmę, zajmującą się bezpieczeństwem blockchain.
Audyt polega na dokładnym zbadaniu kodu w poszukiwaniu ewentualnych wad, furtek lub pułapek. Może on być kosztowny w przypadku skomplikowanych projektów, ale finalnie opłaca się zarówno twórcom jak i klientom. Z jednej strony pozwala naprawić ewentualne błędy programistów, z drugiej zwiększa bezpieczeństwo i zaufanie użytkowników do projektu.
Bezpieczeństwo szczególnie istotne jest tam, gdzie w grę wchodzą pieniądze. Projekty DeFi są łakomym kąskiem, dlatego też sprawdzenie czy platforma, w którą chcemy zainwestować, przeprowadziła audyt i wdrożyła jego zalecenia, powinno być rzeczą oczywistą.
Jak to robią zawodowcy
Audyt smartkontraktu nie jest rzeczą łatwą. Należy zbadać jego działanie w rozmaitych sytuacjach, przy występowaniu – lub nie – setek zmiennych. W dodatku języków programowania jest wiele – Solidity, Vyper, Rust, Java Script… Dokładne wyjaśnienie, jak robią to profesjonaliści, zajęłoby wiele stron. Podsumujmy więc tylko najważniejsze działania w punktach:
- Ustalenie zakresu audytu. To autor kontraktu określa, czego audytor ma szukać, przekazuje mu też dokumentację.
- Wielokrotne testowanie. Zmieniają się warunki pracy, dane wejściowe, obciążenie sieci – wszystko w celu symulowania rzeczywistości.
- Analiza danych. Kod jest sprawdzany zarówno przez wyspecjalizowane programy jak i “czytany” przez zawodowych programistów.
- Raport końcowy. Audytorzy wskazują co, gdzie i jak należy poprawić, aby zwiększyć bezpieczeństwo smartkontraktu.
- Wdrożenie zaleceń. Trudno uwierzyć, ale niektórzy płacą ciężkie pieniądze za audyt tylko po to, by włożyć go do szuflady i nie wprowadzać sugerowanych działań.
Komu można zaufać?
Pytanie, który audytor jest najlepszy, jest częstą przyczyną sporów. Wymieńmy więc kilku czołowych zawodników:
- Hacken – audytor takich projektów, jak Solana, VeChain, KuCoin, FTX czy Avalanche,
- Certik – założony przez profesorów z Yale i Columbia, badał kontrakty Binance, OKEx czy Huobi,
- ConsenSys – oprócz stworzenia Metamask, w dorobku ma audyty m.in. 0x czy Keep Network,
- OpenZeppelin – platforma do tworzenia dApps, przeprowadzała audyty m.in. Compound, Aave czy Coinbase,
- Chainsulting – oprócz wielu projektów DeFi, audytował także Algorand, Ethereum, Binance Smart Chain i Solana,
- Quantstamp – BNB Chain, Cardano, Ethereum 2.0, Curve, Axie Infinity i inne projekty warte ponad 200 mld dolarów,
- Trail of Bits – w dorobku ma audyt smartkontraktów Ampleforth, CREAM, LooksRare, Aleph Zero czy
- SolidProof – specjalizuje się w DeFi, ma na koncie zapisał prawie 500 wykonanych badań!
Nie jest to kompletna lista – w kolejce stoją LeastAuthority, Chainsecurity, SlowMist, Runtime Verification…
Trzeba jednak pamiętać, że nawet najlepszy audyt smartkontraktu nie zapewni 100% bezpieczeństwa. Znacząco zwiększa on odporność protokołu, nie czyni go jednak niezniszczalnym, o czym przekonali się klienci takich audytowanych projektów, jak Solana, Alpha Finance, Audius czy Crypto.com. Audyt jest jednak przynajmniej gwarancją, że projekt nie jest zwyczajnym scamem, oraz że dołożono starań, by działał prawidłowo.
Przedszkole – sprawdzamy podstawy
Niestety, rozważania o podatności smartkontraktu na exploity czy ataki DDoS to poziom powyżej kompetencji 99% użytkowników krypto. Co możemy sprawdzić sami?
- zanim zainwestujemy w dowolny projekt, wpiszmy w Google jego nazwę + „audit” lub +”hack”
- rzućmy okiem na ten artykuł, omawiający popularne metody oszustw na DeFi,
- sprawdźmy, czy projekt audytowany był przez którąś firmę z listy powyżej, jeszcze lepiej, jeśli przez dwie lub trzy,
- plusem jest jawny kod smartkontraktu, który możemy znaleźć w sieci, np. na GitHub,
- warto sprawdzić, czy projekt nie jest wymieniony na stronie RugScreen.
Podstawówka – Etherscan i podobne
Warto wykorzystać możliwości eksploratora danego blockchaina. Dla ETH i tokenów ERC-20 będzie to Etherscan, jednak prawie każdy inny łańcuch ma jakiś jego odpowiednik. Co możemy w nim sprawdzić?
- ustalimy adres interesującego nas smartkontraktu,
- sprawdzimy podstawowe informacje, jak adres twórcy czy tokenów projektu,
- zobaczymy maksymalną ilość tokenów oraz dane o ich ew. spalaniu,
- ile jest portfeli posiadających token oraz jak wygląda jego dystrybucja,
- ile było dotąd transakcji tokenem i czy przypadkiem nie odbywają się one stale między tymi samymi adresami,
- możemy też sprawdzić analitykę, a nawet przestudiować kod smartkontraktu.
W przypadku popularnych projektów część tych danych znajdziemy także bez użycia eksploratora, np. na Coingecko, które jednak nie notuje np. ilości transakcji, portfeli czy dystrybucji.
Polecamy nasz artykuł o dowodach rezerw, czyli Proof of Reserves.
Szkoła średnia – GitHub
GitHub to najpopularniejszy serwis internetowy, hostujący masę projektów programistycznych. Trudno znaleźć projekt blockchain, który nie ma tam swojego repozytorium.
Choć GitHub służy głównie programistom, również zwykli użytkownicy znajdą tam odpowiedź na wiele pytań. Rzut oka powie nam:
- czy dany projekt jest forkiem, czy jest tworzony od zera,
- jak wielu programistów w nim uczestniczy,
- jak intensywnie pracują oni nad projektem,
- jakie problemy zostały zgłoszone i czy już je rozwiązano,
- czy funkcjonuje program Bug Bounty, podnoszący bezpieczeństwo.
Bardziej zaawansowani mogą zapoznać się z całym kodem smartkontraktu, bezpośrednio wyszukując w nim interesujące kwestie, jak możliwość łatwej zmiany kontraktu (proxy), zablokowania obrotu tokenem (pauseable), możliwość emisji nowych tokenów (mint) czy blokowania środków użytkownika (blacklist).
Bezpieczeństwo smartkontraktów i ich audyt to temat rzeka, warto jednak zgłębić przynajmniej podstawy. Kto wie, może temat nam się spodoba i kiedyś zostaniemy nawet deweloperem blockchain? W końcu zarabiają oni znacznie więcej, niż ich koledzy w klasycznych firmach IT…
Inwestowanie jest ryzykowne. Inwestuj odpowiedzialnie.