Czym Jest Audyt Bezpieczeństwa Smart Kontraktów?
Strona Główna
Artykuły
Czym Jest Audyt Bezpieczeństwa Smart Kontraktów?

Czym Jest Audyt Bezpieczeństwa Smart Kontraktów?

Średnio zaawansowany
Opublikowane Mar 1, 2022Zaktualizowane Apr 27, 2023
8m

TL;DR

Audyt bezpieczeństwa smart kontraktów zapewnia szczegółową analizę smart kontraktów w ramach projektu. Są one ważne dla zabezpieczenia środków zainwestowanych za ich pośrednictwem. Ponieważ wszystkie transakcje na blockchainie są ostateczne, nie można odzyskać środków w przypadku ich kradzieży. Zazwyczaj audytorzy badają kod smart kontraktów, sporządzają raport i przekazują go do projektu, z którym mogą pracować. Następnie publikowany jest raport końcowy, w którym wyszczególnione są wszelkie nieusunięte błędy oraz prace już wykonane w celu rozwiązania problemów z wydajnością lub bezpieczeństwem.


Wprowadzenie

Audyty bezpieczeństwa smart kontraktów są bardzo powszechne w ekosystemie Zdecentralizowanych Finansów (DeFi). Jeśli zainwestowałeś(-aś) w projekt blockchain, Twoja decyzja mogła być częściowo oparta na wynikach przeglądu kodu smart kontraktu.

Choć większość osób rozumie znaczenie audytów dla bezpieczeństwa cybernetycznego, niewiele z nich zagłębia się w wiersze kodu. Przyjrzyjmy się metodom, narzędziom i wynikom typowym dla audytów bezpieczeństwa smart kontraktów, abyś mógł(-ogła) podejmować bardziej świadome decyzje.


Czym jest audyt smart kontraktu?

W ramach audytu bezpieczeństwa smart kontraktów analizuje się i komentuje kod smart kontraktu w projekcie. Zazwyczaj kontrakty te są pisane w języku programowania Solidity i udostępniane za pośrednictwem serwisu GitHub. Audyty bezpieczeństwa są szczególnie cenne dla projektów DeFi, które spodziewają się obsługiwać transakcje blockchain warte miliony dolarów lub dużą liczbę graczy. Audyty przebiegają zwykle w czterech etapach:

1. Smart kontrakty są przekazywane zespołowi audytowemu do wstępnej analizy.

2. Zespół kontrolny przedstawia swoje ustalenia projektowi, aby mógł on podjąć odpowiednie działania.

3. Zespół projektowy wprowadza zmiany w oparciu o wykryte problemy.

4. Zespół audytowy wydaje raport końcowy, w którym uwzględnia wszelkie nowe zmiany lub nieusunięte błędy.

Dla wielu użytkowników kryptowalut audyty smart kontraktów są niezbędne przy inwestowaniu w nowe projekty DeFi. Stało się to standardem dla projektów, które chcą być traktowane poważnie. Niektóre podmioty świadczące usługi biegłych rewidentów są również postrzegane jako liderzy w branży, co sprawia, że ich badania są bardziej wartościowe w oczach inwestorów.


Dlaczego potrzebujemy audytów smart kontraktów?

Ponieważ za pośrednictwem smart kontraktów lub w nich zawierane są transakcje o znacznej wartości, stają się one atrakcyjnym celem złośliwych ataków ze strony hakerów. Drobne błędy w kodowaniu mogą prowadzić do kradzieży ogromnych sum pieniędzy. Na przykład włamanie do DAO na blockchainie Ethereum zabrało ETH o wartości około 60 milionów dolarów i doprowadziło nawet do hard forka sieci Ethereum.

Ponieważ transakcje blockchain są nieodwracalne, kluczowe znaczenie ma zapewnienie bezpieczeństwa kodu projektu. Wysoce bezpieczny charakter technologii blockchain utrudnia odzyskiwanie środków i rozwiązywanie problemów po fakcie, dlatego lepiej za wszelką cenę zapobiegać słabym punktom.


Jak działają audyty smart kontraktów?

Proces audytu smart kontraktów jest dość standardowy wśród firm audytorskich. Chociaż podejście każdego audytora może się nieco różnić, typowy proces wygląda następująco:

1. Określenie zakresu audytu. Specyfikacje smart kontraktu i projektu są określane przez projekt (jego przeznaczenie) i ogólną architekturę. Specyfikacja pomaga zespołowi audytowemu zrozumieć cele projektu podczas pisania i używania kodu.

2. Przedstawienie wstępnej wyceny na podstawie ilości potrzebnej pracy.

3. Wykonanie testów. Ich dokładny charakter będzie się zmieniał w zależności od zespołu audytorów, ich narzędzi analitycznych i metod. Zazwyczaj przeprowadza się zarówno testy ręczne, jak i automatyczne.

4. Utwórz pierwszy projekt raportu z uwzględnieniem znalezionych błędów i przekaż go zespołowi projektowemu w celu uzyskania informacji zwrotnych i wprowadzenia dalszych poprawek.

5. Opublikowanie raportu końcowego, uwzględniającego wszelkie działania podjęte przez zespół w celu rozwiązania zgłoszonych problemów.


Metody audytu smart kontraktów

Wydajność gas 

Audyty smart kontraktów nie koncentrują się wyłącznie na bezpieczeństwie blockchainu. Zwracają również uwagę na wydajność i optymalizację. Niektóre kontrakty wymagają skomplikowanej serii transakcji, aby spełnić swoją zamierzoną funkcję. Ponieważ opłaty gas w sieciach takich jak Ethereum są stosunkowo drogie, efektywne kontrakty mogą znacznie obniżyć koszty transakcji.

Optymalizacja ich wydajności jest także wskaźnikiem umiejętności programisty. Nieefektywne kroki stwarzają więcej punktów krytycznych i należy ich unikać. Gdy opłaty gas są wysokie, smart kontrakty mogą nie zostać zrealizowane, tym bardziej, gdy stosowany jest niski limit gas.

Słabe punkty kontraktu

Większość pracy w ramach audytów polega na sprawdzaniu umów pod kątem luk w zabezpieczeniach. Niektóre problemy są łatwe do zauważenia, ale wiele exploitów wykorzystuje zaawansowane techniki i strategie do drenażu środków. Na przykład manipulacja rynkiem może być wykorzystywana w połączeniu ze słabymi smart kontraktami do przeprowadzania ataków typu flash loan. Aby znaleźć te problemy, audytorzy rozpoczynają proces testowania przerwań i symulują złośliwe ataki na smart kontrakt. Typowe luki w zabezpieczeniach obejmują:

1. Problemy związane z wielopoziomowością: Ma miejsce, gdy smart kontrakt wykonuje zewnętrzne wywołanie do innego zewnętrznego kontraktu przed rozwiązaniem wszelkich skutków. Kontrakt zewnętrzny może wtedy rekurencyjnie wywoływać pierwotny smart kontrakt i wchodzić z nim w interakcje w sposób, w jaki nie powinien, ponieważ saldo pierwotnego kontraktu nie zostało jeszcze zaktualizowane.
2. Przepełnienie i niedopełnienie liczby całkowitej: Występuje, gdy smart kontrakt wykonuje operację arytmetyczną, ale wynik przekracza pojemność pamięci (zwykle 18 miejsc po przecinku). Może to prowadzić do obliczania nieprawidłowych kwot.
3. Okazje do front runningu: Źle skonstruowany kod może stanowić ostrzeżenie przed zakupami lub sprzedażą na rynku. To z kolei może umożliwić innym wykorzystanie informacji i obrót nimi z korzyścią dla siebie.

Błędy w zabezpieczeniach platformy

Większość audytów obejmuje sprawdzenie sieci, w której znajdują się kontrakty, a nawet interfejsu API używanego do interakcji z DApp. Projekt może być podatny na atak DDoS lub może dojść do naruszenia interfejsu użytkownika jego strony internetowej, co oznacza, że użytkownicy będą w rzeczywistości podłączać swoje portfele do złośliwych aplikacji blockchain.


Czym jest raport z audytu?

Raport z audytu jest przekazywany na zakończenie procesu audytu. W celu zapewnienia przejrzystości oczekuje się, że projekty będą się dzielić wynikami ze społecznością. Większość raportów kategoryzuje problemy według stopnia ważności, np. krytyczny, poważny, drobny itp. W raporcie znajdzie się również informacja o statusie danego problemu, ponieważ projekty mają czas na jego rozwiązanie przed opublikowaniem raportu końcowego.

Oprócz streszczenia standardowy raport będzie zawierał zalecenia, przykłady zbędnego kodu oraz pełne zestawienie miejsc, w których występują błędy w kodowaniu. W projekcie przewidziano czas na podjęcie działań w związku z wnioskami zawartymi w raporcie, zanim zostanie opublikowana jego ostateczna wersja.


Gdzie mogę uzyskać audyt smart kontraktu?

Wiele firm zajmujących się audytem smart kontraktów stało się znanych ze swoich usług. Dwie z nich są szczególnie popularne, a przeprowadzenie u nich audytu będzie wymagało wstępnej wyceny i przekazania informacji,

CertiK

CertiK jest liderem w branży audytów smart kontraktów. Dzięki nim setki projektów przeprowadziło audyt swoich smart kontraktów. Jednym z przykładów jest PancakeSwap, największy Automated Market Maker (AMM) w BSC. Poniżej znajduje się fragment audytu przeprowadzonego przez firmę Certik w firmie PancakeSwap.


Ponadto zdecydowana większość projektów wspieranych przez Binance Labs przeprowadziła audyt swoich umów z CertiK. CertiK udostępnia tabelę liderów skontrolowanych projektów, która umożliwia porównanie każdego z nich wraz z oceną bezpieczeństwa. Należy zauważyć, że oprócz Ethereum, CertiK obejmuje również projekty BSC i Polygon.


ConsenSys Diligence

Firma ConsenSys, kierowana przez Josepha Lubina, współzałożyciela Ethereum, jest jedną z największych firm branży kryptowalutowej zajmujących się rozwojem blockchain. W ramach usługi ConsenSys Diligence firma oferuje audyty smart kontraktów Ethereum. Udostępniają również automatyczną usługę, która sprawdza kontrakty Ethereum Virtual Machine (EVM) pod kątem często spotykanych błędów.


Ile kosztuje audyt smart kontraktu?

Dokładny koszt audytu zależy od liczby smart kontraktów, które mają zostać sprawdzone. Zazwyczaj audyt może kosztować tysiące dolarów. Koszt jednego dużego projektu może z łatwością przekroczyć $10 000. Firma audytorska przeprowadzająca audyt oraz jej reputacja również wpłyną na wysokość wynagrodzenia.


Przemyślenia końcowe

Na szczęście dla inwestorów i użytkowników audyty smart kontraktów stały się złotym standardem. Jednak gdy każdy projekt ma taki wskaźnik, nie jest on już łatwym wyznacznikiem wartości. Dlatego niezwykle ważne jest samodzielne zapoznanie się z audytem. Nawet jeśli nie posiadasz wiedzy technicznej, warto zapoznać się z komentarzami i stopniem nasilenia potencjalnych problemów.

Gdy natkniesz się na audyt, teraz powinieneś(-naś) przynajmniej łatwiej zrozumieć jego treść. Jak zawsze należy upewnić się, że każda decyzja inwestycyjna uwzględnia wszystkie informacje.