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.