Čo je bezpečnostný audit smart kontraktu?
Domov
Články
Čo je bezpečnostný audit smart kontraktu?

Čo je bezpečnostný audit smart kontraktu?

Stredne pokročilý
Zverejnené Mar 1, 2022Aktualizované Apr 27, 2023
8m

Zhrnutie

Bezpečnostný audit smart kontraktov poskytuje podrobnú analýzu smart kontraktov projektu. Bezpečnostné audity sú dôležité na ochranu prostriedkov investovaných prostredníctvom nich. Keďže všetky transakcie na blockchaine sú konečné, v prípade krádeže nie je možné získať finančné prostriedky späť. Audítori zvyčajne preskúmajú kód smart kontraktov, vypracujú správu a poskytnú ju projektu, aby s ňou mohol pracovať. Potom sa zverejní záverečná správa s podrobnosťami o všetkých nevyriešených chybách a už uskutočnených aktivitách na vyriešenie problémov súvisiacich s výkonom alebo bezpečnosťou.


Úvod

Bezpečnostné audity smart kontraktov sú v ekosystéme decentralizovaných financií (DeFi) veľmi bežné. Ak ste investovali do blockchainového projektu, vaše rozhodnutie mohlo byť čiastočne založené na výsledkoch kontroly kódu smart kontraktu.

Zatiaľ čo väčšina ľudí chápe dôležitosť auditov pre kybernetickú bezpečnosť, len málokto sa pozrie podrobnejšie na riadky kódu. Pozrime sa na metódy, nástroje a výsledky, ktoré sa zvyčajne vyskytujú pri auditoch zabezpečenia smart kontraktov, aby ste mohli robiť informovanejšie rozhodnutia.


Čo je audit smart kontraktu?

Bezpečnostný audit smart kontraktu skúma a poskytuje komentáre týkajúce sa kódu smart kontraktu projektu. Tieto kontrakty sú zvyčajne napísané v programovacom jazyku Solidity a poskytované cez GitHub. Bezpečnostné audity sú mimoriadne cenné pre projekty DeFi, ktoré očakávajú spracovanie blockchainových transakcií v hodnote miliónov dolárov alebo obrovského množstva hráčov. Audit zvyčajne prebieha v 4 krokoch:

1. Audítorskému tímu sa poskytnú smart kontrakty na úvodnú analýzu.

2. Audítorský tím predloží svoje zistenia projektu, aby na základe nich mohol konať.

3. Tím projektu uskutoční zmeny na základe zistených problémov.

4. Audítorský tím zverejní svoju záverečnú správu, v ktorej uvedie všetky nové zmeny alebo nevyriešené chyby.

Pre mnohých používateľov kryptomien sú audity smart kontraktov pri investovaní do nových projektov DeFi nevyhnutné. Stali sa štandardom pre projekty, ktoré chcú, aby ich brali vážne. Niektorí poskytovatelia auditov sú tiež považovaní za lídrov v odvetví, vďaka čomu sú ich audity v očiach investorov hodnotnejšie.


Prečo potrebujeme audity smart kontraktov?

Vďaka obrovskej hodnote, ktorá sa predáva alebo je uzamknutá v smart kontraktoch, sa stávajú atraktívnymi cieľmi pre škodlivé útoky hackerov. Malé chyby v kódovaní môžu viesť k odcudzeniu veľkých súm peňazí. Napríklad hacknutie DAO na blockchaine Ethereum spôsobilo odcudzenie ETH v hodnote približne 60 miliónov USD, dokonca viedlo k hard forku siete Ethereum.

Keďže blockchainové transakcie sú nezvratné, je nevyhnutné zabezpečiť, aby kód projektu bol bezpečný. Povaha technológie blockchain s vysokou bezpečnosťou sťažuje získavanie finančných prostriedkov a následné riešenie problémov. Preto je lepšie predchádzať zraniteľnostiam za každú cenu.


Ako fungujú audity smart kontraktov?

Proces auditu smart kontraktu je medzi poskytovateľmi auditu pomerne štandardný. Aj keď prístup každého audítora sa môže mierne líšiť, štandardný postup je:

1. Stanovenie rozsahu auditu. Smart kontrakt a špecifikácie projektu sú definované projektom (zamýšľaným účelom) a celkovou architektúrou. Špecifikácia pomáha audítorskému tímu pochopiť ciele projektu pri písaní a používaní kódu.

2. Poskytnutie úvodnej cenovej ponuky na základe množstva potrebnej práce.

3. Uskutočnenie testov. Ich presná povaha sa mení v závislosti od audítorského tímu, jeho analytických nástrojov a používaných metód. Zvyčajne sa uskutočňujú manuálne aj automatické testy.

4. Vypracovanie prvého návrhu správy s nájdenými chybami a predloženie správy projektovému tímu na spätnú väzbu a uskutočnenie náprav.

5. Zverejnenie záverečnej správy a zváženie krokov, ktoré treba podniknúť na vyriešenie vzniknutých problémov.


Metódy auditu smart kontraktu

Účinnosť cenového mechanizmu gas 

Audity smart kontraktov sa nezameriavajú len na bezpečnosť blockchainu. Skúmajú aj efektivitu a optimalizáciu. Niektoré zmluvy na uskutočnenie zamýšľanej funkcie tvoria komplikovanú sériu transakcií. Keďže poplatky gas v sieťach ako Ethereum sú relatívne vysoké, efektívne kontrakty dokážu ušetriť veľa prostriedkov na nákladoch na transakciu.

Optimalizácia výkonu je tiež indikátorom zručnosti vývojára. Neefektívne kroky ponúkajú viac možností na zlyhanie, preto je potrebné vyhnúť sa im. Keď sú náklady na poplatky gas vysoké, smart kontrakty sa nemusia realizovať. O to viac, keď sa použije nízky limit gas.

Úskalia kontraktov

Väčšina činnosti pri auditoch zahŕňa kontrolu bezpečnostnej zraniteľnosti kontraktov. Zatiaľ čo niektoré problémy sú ľahko viditeľné, mnohé zneužitia využívajú na odčerpanie finančných prostriedkov pokročilé techniky a stratégie. Pri slabých smart kontaktoch sa napríklad môže na vykonávanie bleskových útokov na pôžičky použiť manipulácia s trhom. Aby audítori našli tieto problémy, použijú proces testovania a nasimulujú škodlivé útoky na smart kontrakt. Medzi bežné úskalia patria:

1. Problémy s opätovným vstupom: Keď smart kontrakt uskutoční externý kontakt s iným externým kontraktom predtým, ako sa vyriešia všetky vplyvy. Externý kontrakt môže potom rekurzívne kontaktovať pôvodný smart kontrakt a interagovať s ním spôsobmi, ktoré by nemali byť možné, pretože zostatok pôvodného kontraktu ešte nebol aktualizovaný.

2. Prebytok alebo nedostatok celých čísel: Keď smart kontrakt vykoná aritmetickú operáciu, ale výstup prekročí kapacitu úložiska (zvyčajne 18 desatinných miest). To môže viesť k nesprávnemu výpočtu súm.

3. Príležitosti predbiehania: Zle štruktúrovaný kód môže poskytnúť predznamenanie nákupov alebo predajov na trhu. To zase môže umožniť iným osobám použiť informácie na obchodovanie vo svoj vlastný prospech.

Bezpečnostné chyby platformy

Väčšina auditov zahŕňa pohľad na sieť, kde sa kontrakty ukladajú, dokonca aj na API používané na interakciu s DApp. Projekt môže byť zraniteľný voči útoku DDoS, prípadne môže byť ohrozené používateľské rozhranie jeho webovej stránky, čo znamená, že používatelia v skutočnosti pripájajú svoje peňaženky k škodlivým blockchainovým aplikáciám.


Čo je audítorská správa?

Audítorská správa sa predkladá po skončení auditu. V záujme transparentnosti sa očakáva, že projekty budú zdieľať zistenia z auditu s komunitou. Väčšina správ kategorizuje problémy podľa závažnosti, t. j. kritické, závažné, menej závažné atď. V správe je uvedený aj stav problému, keďže projekty majú čas na vyriešenie pred vydaním správy.

Spolu so zhrnutím štandardná správa obsahuje aj odporúčania, príklady nadbytočného kódu a úplný súpis chýb v kódovaní. Pred predložením konečnej verzie má projekt čas konať na základe zistení uvedených v správe.


Kde môžem získať audit smart kontraktu?

Množstvo poskytovateľov auditu smart kontraktov sa stalo svojimi službami známymi. Dvaja poskytovatelia sú obzvlášť obľúbení. Aby uskutočnili audit vášho kódu, je potrebné poskytnúť im počiatočnú cenovú ponuku a odovzdať informácie.

CertiK

Platforma CertiK je lídrom v odvetví auditov smart kontraktov. Uskutočnila audity smart kontraktov stoviek projektov. Jedným z nich je napríklad PancakeSwap, najväčší automatizovaný tvorca trhu (AMM) BSC. Nižšie je uvedená časť auditu PancakeSwap, ktorý uskutočnila platforma Certik.


CertiK preverila tiež veľkú väčšinu projektov podporovaných Binance Labs. CertiK vydáva rebríček auditovaných projektov, ktorý umožňuje ich vzájomné porovnanie, spolu so skóre bezpečnosti. Upozorňujeme, že okrem siete Ethereum pokrýva platforma CertiK aj projekty BSC a Polygon.


ConsenSys Diligence

Spoločnosť ConsenSys, ktorú vedie Joseph Lubin, spoluzakladateľ siete Ethereum, je jedným z najväčších mien v oblasti vývoja blockchainu v odvetví kryptomien. V rámci služby ConsenSys Diligence spoločnosť ponúka audity smart kontraktov siete Ethereum. Poskytuje tiež automatizovanú službu, ktorá kontroluje, či kontrakty virtuálneho stroja Ethereum (EVM) neobsahujú bežne sa vyskytujúce chyby.


Koľko stojí audit smart kontraktu?

Presné náklady na audit závisia od počtu smart kontraktov, ktoré sa majú skontrolovať. Štandardne je cena auditu v tisíckach dolárov. Obzvlášť veľký projekt môže stáť aj viac ako 10 000 USD. Výšku ceny tiež ovplyvňuje audítorská spoločnosť, ktorá vykonáva audit, a jej reputácia.


Záverečné myšlienky

Našťastie pre investorov a používateľov sa audity smart kontraktov stali zlatým štandardom. Keď ho však má každý projekt, už neslúži ako jednoduchý ukazovateľ hodnoty. Preto je nesmierne dôležité, aby ste si audit prečítali sami. Aj keď nemáte technické znalosti, je užitočné pozrieť sa na komentáre a závažnosť možných problémov.

Keď sa potom neskôr stretnete s auditom, malo by byť pre vás jednoduchšie pochopiť jeho obsah. Ako vždy sa uistite, aby všetky investičné rozhodnutia brali do úvahy celkový obraz a zohľadnili všetky informácie.