Co je bezpečnostní audit chytrých kontraktů?
Domů
Články
Co je bezpečnostní audit chytrých kontraktů?

Co je bezpečnostní audit chytrých kontraktů?

Pokročilí
Zveřejněno Mar 1, 2022Aktualizováno Apr 27, 2023
8m

TL;DR

Bezpečnostní audit chytrých kontraktů poskytuje podrobnou analýzu chytrých kontraktů projektu. Ty jsou důležité pro zabezpečení prostředků, které jsou jejich prostřednictvím investovány. Protože všechny transakce v blockchainu jsou konečné, nelze v případě krádeže prostředky získat zpět. Auditoři obvykle prozkoumají kód chytrých kontraktů, vypracují zprávu a poskytnou ji projektu, aby s ní mohl pracovat. Poté je vydána závěrečná zpráva, ve které jsou podrobně popsány všechny zbývající chyby a již provedené práce na řešení problémů s výkonem nebo bezpečností.


Úvod

Bezpečnostní audity chytrých kontraktů jsou v ekosystému decentralizovaných financí (DeFi) velmi časté. Pokud jste investovali do nějakého blockchainového projektu, vaše rozhodnutí mohlo být částečně založeno na výsledcích revize kódu chytrého kontraktu.

Zatímco většina lidí chápe důležitost auditů pro kybernetickou bezpečnost, málokdo se do kódu pustí hlouběji. Pojďme se podívat na metody, nástroje a výsledky, které se obvykle objevují při bezpečnostních auditech chytrých kontraktů, abyste mohli činit informovanější rozhodnutí.


Co je to audit chytrých kontraktů?

Bezpečnostní audit chytrých kontraktů zkoumá a komentuje kód chytrého kontraktu projektu. Tyto kontrakty jsou obvykle napsány v programovacím jazyce Solidity a jsou poskytovány prostřednictvím služby GitHub. Bezpečnostní audity jsou zvláště cenné pro projekty DeFi, které očekávají, že budou zpracovávat blockchainové transakce v hodnotě milionů dolarů nebo obrovského množství hráčů. Audity obvykle probíhají ve čtyřech krocích:

1. Chytré kontrakty jsou poskytnuty auditorskému týmu k počáteční analýze.

2. Auditorský tým předloží svá zjištění o projektu, aby projekt mohl podle nich reagovat.

3. Projektový tým provede změny na základě zjištěných problémů.

4. Auditorský tým vydá svou závěrečnou zprávu s přihlédnutím k novým změnám nebo nevyřešeným chybám.

Pro mnoho uživatelů kryptoměn jsou audity chytrých kontraktů zásadní při investování do nových projektů DeFi. Staly se standardem pro projekty, které chtějí být brány vážně. Někteří poskytovatelé auditů jsou také považováni za lídry v oboru, takže jejich audity jsou v očích investorů cennější.


Proč potřebujeme audity chytrých kontraktů?

Vzhledem k tomu, že prostřednictvím chytrých kontraktů se uskutečňují transakce s obrovskou hodnotou, nebo jsou v nich uzamčeny, stávají se atraktivním cílem pro útoky hackerů. Drobné chyby v kódování mohou vést k odcizení obrovských částek. Například hackerský útok na DAO v blockchainu Etherea připravil uživatele o ETH v hodnotě zhruba 60 milionů dolarů a vedl dokonce k hard forku sítě Ethereum.

Vzhledem k tomu, že blockchainové transakce jsou nevratné, je nezbytné zajistit bezpečnost kódu projektu. Díky vysoké bezpečnosti blockchainové technologie je obtížné dodatečně získat zpět finanční prostředky a vyřešit problémy, takže je lepší předcházet zranitelnostem za každou cenu.


Jak fungují audity chytrých kontraktů?

Proces auditu chytrých kontraktů je mezi poskytovateli auditu poměrně standardní. I když se přístup každého auditora může mírně lišit, typický postup je následující:

1. Určení rozsahu auditu. Chytrý kontrakt a specifikace projektu jsou definovány projektem (jejich zamýšleným účelem) a celkovou architekturou. Specifikace pomáhá auditorskému týmu pochopit cíle projektu při psaní a používání kódu.

2. Poskytnutí počáteční cenové nabídky na základě množství potřebných prací.

3. Provedení testů. Jejich přesná povaha se bude měnit v závislosti na auditorském týmu, jeho analytických nástrojích a metodách. Obvykle se provádějí jak manuální, tak automatizované testy.

4. Vytvoření prvního návrhu zprávy s nalezenými chybami a jeho poskytnutí projektovému týmu ke zpětné vazbě a následným opravám.

5. Zveřejnění závěrečné zprávy s přihlédnutím k opatřením, která tým přijal k řešení vznesených problémů.


Metody auditů chytrých kontraktů

Efektivita „gas“ poplatků 

Audity chytrých kontraktů se nezaměřují pouze na bezpečnost blockchainu. Zaměřují se také na efektivitu a optimalizaci. Některé kontrakty provádějí složitou řadu transakcí, aby splnily svou zamýšlenou funkci. Vzhledem k tomu, že „gas“ poplatky v sítích, jako je Ethereum, jsou poměrně nákladné, účinné kontrakty mohou na transakčních nákladech hodně ušetřit.

Optimalizace jejich výkonu je také ukazatelem schopností vývojáře. Neefektivní kroky poskytují více bodů pro selhání a je třeba se jim vyhnout. Při vysokých nákladech na „gas“ poplatky mohou chytré kontrakty při provádění selhat, tím spíše, pokud je použit nízký limit poplatku.

Slabá místa kontraktu

Většina práce při auditech spočívá v kontrole kontraktů z hlediska bezpečnostních slabin. Zatímco některé problémy lze snadno odhalit, mnoho případů zneužití využívá k odčerpání finančních prostředků pokročilé techniky a strategie. Například manipulace s trhem může být se slabými chytrými kontrakty použita k provedení útoků typu flash loan. K nalezení těchto problémů zahájí auditoři proces testování prolomení a simulují škodlivé útoky na chytrý kontrakt. Mezi běžné zranitelnosti patří např:

1. Problémy s opětovným vstupem: Pokud chytrý kontrakt provede externí vyvolání jiného externího kontraktu předtím, než jsou vyřešeny jakékoli účinky. Externí kontrakt pak může rekurzivně vyvolat původní chytrý kontrakt a interagovat s ním způsobem, jakým by neměl, protože zůstatek původního kontraktu ještě nebyl aktualizován.
2. Přetečení a podtečení celých čísel: Když chytrý kontrakt provede aritmetickou operaci, ale výstup překročí kapacitu úložiště (obvykle 18 desetinných míst). To může vést k výpočtu nesprávných částek.
3. Příležitosti pro front running: Špatně strukturovaný kód může poskytnout předběžné upozornění na nákupy nebo prodeje na trhu. To zase může umožnit ostatním, aby tyto informace využili a obchodovali s nimi ve svůj prospěch.

Chyby v zabezpečení platformy

Většina auditů zahrnuje kontrolu sítě, v níž jsou kontrakty umístěny, a dokonce i rozhraní API používaného k interakci s decentralizovanou aplikací. Projekt může být náchylný k útoku DDoS nebo může být ohroženo uživatelské rozhraní jeho webových stránek, což znamená, že uživatelé připojí své peněženky ke škodlivým blockchainovým aplikacím.


Co je to auditní zpráva?

Auditní zpráva se předkládá na konci procesu auditu. V zájmu transparentnosti se od projektů očekává, že se o svá zjištění podělí s komunitou. Většina zpráv kategorizuje problémy podle závažnosti, např. kritické, závažné, méně závažné atd. Ve zprávě je také uveden stav problému, protože projekty mají čas na jeho vyřešení před vydáním závěrečné zprávy.

Standardní zpráva obsahuje kromě shrnutí také doporučení, příklady nadbytečného kódu a úplný rozpis chyb v kódování. Před vydáním konečné verze zprávy je projektu poskytnut čas na to, aby na její závěry reagoval.


Kde mohu získat audit chytrého kontraktu?

Existuje řada velmi známých služeb auditu chytrých kontraktů. Obzvláště populární jsou dvě z nich, u kterých je nutné si audit objednat, a to na základě úvodní cenové nabídky a předání informací.

CertiK

CertiK je lídrem v oboru auditů chytrých kontraktů. Své chytré kontrakty s nimi auditovaly stovky projektů. Jedním z příkladů je PancakeSwap, největší automatizovaný tvůrce trhu (AMM) BSC. Níže je uvedena část auditu Certiku týkající se PancakeSwap.


Převážná většina projektů podporovaných společností Binance Labs také provedla audit svých kontraktů prostřednictvím CertiKu. CertiK zveřejňuje žebříček auditovaných projektů, který umožňuje porovnat jednotlivé projekty spolu s bezpečnostním skóre. Všimněte si, že kromě Etherea pokrývá CertiK také projekty BSC a Polygon.


ConsenSys Diligence

Společnost ConsenSys, kterou vede Joseph Lubin, spoluzakladatel Etherea, je jedním z největších jmen kryptoměnového průmyslu v oblasti vývoje blockchainu. Pod hlavičkou ConsenSys Diligence nabízí audity chytrých kontraktů sítě Ethereum. Poskytuje také automatizovanou službu, která kontroluje kontrakty Ethereum Virtual Machine (EVM) na běžné chyby.


Kolik stojí audit chytrého kontraktu?

Přesná cena auditu závisí na počtu kontrolovaných chytrých kontraktů. Obvykle se pohybuje v řádu tisíců dolarů. U konkrétního velkého projektu může cena snadno přesáhnout 10 000 dolarů. Výši částky ovlivní také auditorská společnost, která audit provádí, a její pověst.


Závěrem

Naštěstí pro investory a uživatele se audity chytrých kontraktů staly zlatým standardem. Když ho však má každý projekt, přestává být snadným ukazatelem hodnoty. Proto je nesmírně důležité, abyste si audit sami přečetli. I když nemáte technické znalosti, je užitečné podívat se na komentáře a závažnost potenciálních problémů.

Pokud se s auditem setkáte, měli byste nyní alespoň snáze porozumět jeho obsahu. Jako vždy se ujistěte, že každé investiční rozhodnutí bere v potaz celkový obraz a zvažuje všechny informace.