Vad är en säkerhetsrevision av ett smart kontrakt?
Hem
Artiklar
Vad är en säkerhetsrevision av ett smart kontrakt?

Vad är en säkerhetsrevision av ett smart kontrakt?

Avancerad
Publicerad Mar 1, 2022Uppdaterad Apr 27, 2023
8m

TL;DR

Säkerhetsrevisioner av smarta kontrakt ger en detaljerad analys av ett projekts smarta kontrakt. Dessa är viktiga för att skydda tillgångar som investeras via dem. Eftersom alla transaktioner på blockkedjan är slutgiltiga kan tillgångar inte hämtas om de skulle bli stulna. Vanligtvis kommer revisorer att undersöka koden för smarta kontrakt, skriva en rapport och tillhandahålla den till projektet så att de kan arbeta med den. En slutrapport ges sedan ut, som beskriver eventuella utestående fel och det arbete som redan gjorts för att åtgärda prestanda- eller säkerhetsproblem.


Introduktion

Säkerhetsrevisioner av smarta kontrakt är mycket vanliga i ekosystemet Decentraliserad finans (DEFi). Om du har investerat i ett blockkedjeprojekt kan ditt beslut delvis ha varit baserat på resultaten av en säkerhetsrevision av smarta kontrakt.

Även om de flesta förstår vikten av revisioner för cybersäkerhet, är det inte många som läser koden. Låt oss ta en titt på de metoder, verktyg och resultat som vanligtvis finns i säkerhetsrevisioner av smarta kontrakt, så att du kan fatta mer välgrundade beslut.


Vad är en revision av smarta kontrakt?

Säkerhetsrevisioner av smarta kontrakt undersöker och kommenterar ett projekts smarta kontraktskod. Vanligtvis är dessa kontrakt skrivna i programmeringsspråket Solidity och tillhandahålls via GitHub. Säkerhetsrevisioner är särskilt värdefulla för DeFi-projekt som förväntar sig att hantera blockkedjetransaktioner värda miljontals dollar eller en enorm mängd användare. Revisionerna följer vanligtvis en process i fyra steg:

1. De smarta kontrakten tillhandahålls till revisionsteamet för inledande analys.

2. Revisionsgruppen presenterar sina resultat för projektet, så att det kan agera efter detta.

3. Projektgruppen gör ändringar baserat på de problem som har hittats.

4. Revisionsgruppen släpper sin slutrapport, och tar hänsyn till eventuella nya ändringar eller utestående fel.

För många kryptoanvändare är revisioner av smarta kontrakt avgörande när man investerar i nya DeFi-projekt. Det har blivit standard för projekt som vill tas på allvar. Vissa revisionsleverantörer ses också som branschledare, vilket gör deras revisioner mer värdefulla i investerarnas ögon.


Varför behöver vi revisioner av smarta kontrakt?

Med de enorma mängder med värde i transaktioner via eller låsta i smarta kontrakt, blir de attraktiva mål för skadliga attacker från hackare. Små kodningsfel kan leda till att enorma summor pengar stjäls. Som exempel tog DAO-hacket på Ethereum-blockkedjan ETH till ett värde av ungefär 60 miljoner dollar, och detta ledde till och med till en hård gaffel av Ethereum-nätverket.

Eftersom blockkedjetransaktioner är oåterkalleliga är det viktigt att se till att ett projekts kod är säker. Blockkedjeteknikens mycket säkra karaktär gör det svårt att hämta tillgångar och lösa problem i efterhand, så det är bättre att förhindra sårbarheter till varje pris.


Hur fungerar revisioner av smarta kontrakt?

Processen för en revision av smarta kontrakt är ganska standard bland revisionsleverantörer. Även om varje revisors tillvägagångssätt kan skilja sig något, ser den typiska processen ut så här:

1. Bestäm revisionens omfattning. Det smarta kontraktet och projektspecifikationerna definieras av projektet (det avsedda syftet) och den övergripande arkitekturen. En specifikation hjälper revisionsteamet att förstå projektets mål när de skriver och använder koden.

2. Ge en första offert, baserad på mängden arbete som behövs.

3. Kör tester. Deras exakta tillvägagångssätt kommer att förändras beroende på revisionsteamet, deras analysverktyg och deras metoder. Vanligtvis utförs både manuella och automatiserade tester.

4. Skapa ett första utkast till rapporten med upptäckta fel och ge det till projektteamet för feedback och uppföljande ändringar.

5. Publicera slutrapporten och överväg eventuella åtgärder som vidtagits av teamet för att ta itu med frågor som uppstår.


Revisionsmetoder för smarta kontrakt

Gaseffektivitet 

Revisioner av smarta kontrakt fokuserar inte bara på blockkedjesäkerhet. De tittar också på effektiviteten och optimeringen. Vissa kontrakt gör en komplicerad serie transaktioner för att slutföra dess avsedda funktion. Eftersom gasavgifter på nätverk som Ethereum är relativt dyra kan effektiva kontrakt spara mycket på transaktionskostnader.

Att optimera deras prestanda är också en indikator på utvecklarens kunskap. Ineffektiva steg ger högre risk för misslyckanden och bör undvikas. När gaskostnaderna är höga kan smarta kontrakt misslyckas, och i ännu högre grad när en låg gasgräns används.

Kontraktssårbarheter

Det mesta av arbetet med revisionerna går ut på att kontrollera kontrakt för säkerhetsbrister. Även om vissa problem kan vara lätta att se, involverar många av dem utnyttjande avancerade tekniker och strategier för att tömma tillgångar. Till exempel kan marknadsmanipulation användas med svaga smarta kontrakt för att genomföra flashlånsattacker. För att hitta dessa problem startar revisorerna testningsprocessen för pauser och simulerar skadliga attacker på det smarta kontraktet. Vanliga sårbarheter inkluderar:

1. Återträdesproblem: När ett smart kontrakt gör ett externt samtal till ett annat externt kontrakt innan några effekter är lösta. Det externa kontraktet kan sedan rekursivt anropa det ursprungliga smarta kontraktet och interagera med det på sätt som det inte borde kunna göra, eftersom det ursprungliga kontraktets balans ännu inte har uppdaterats.
2. Heltalsöver- och underflöden: När ett smart kontrakt utför en aritmetisk operation, men utdata överstiger lagringskapaciteten (vanligtvis 18 decimaler). Detta kan leda till att felaktiga belopp beräknas.
3. Möjligheter till tidig info: Dåligt strukturerad kod kan ge förvarning om marknadsköp eller försäljning. Detta kan i sin tur tillåta andra att använda informationen och handla med den för sin egen fördel.

Säkerhetsbrister på plattformen

De flesta granskningar inkluderar att titta på nätverket som är värd för kontrakten och till och med API:et som används för att interagera med DApp. Ett projekt kan vara sårbart för en DDoS-attack eller att dess webbplats UI hackas, vilket innebär att användare faktiskt kommer att ansluta sina plånböcker till skadliga blockkedjeapplikationer.


Vad är en revisionsrapport?

Revisionsrapporten tillhandahålls i slutet av revisionsprocessen. För transparens förväntas projekten dela sina resultat med communityn. De flesta rapporter kategoriserar problem efter svårighetsgrad, såsom kritiska, större, mindre, osv. Rapporten listar också problemets status, så att projekten får tid att lösa dessa innan slutrapporten släpps.

Förutom en sammanfattning innehåller en standardrapport rekommendationer, exempel på onödig kod och en fullständig uppdelning av var kodningsfel finns. Projektet får sedan tid på sig för att agera utefter rapportens resultat innan den slutliga versionen släpps.


Var kan jag hitta en revision av smarta kontrakt?

Ett antal revisionstjänster för smarta kontrakt har blivit välkända för sina tjänster. Två är särskilt populära och att få en revision från dem kräver en första offert och överlämnande av information.

CertiK

CertiK är branschledande när det gäller revisioner av smarta kontrakt. Hundratals projekt har granskat sina smarta kontrakt hos dem. PancakeSwap, som är BSC:s största Automated Market Maker (AMM) är ett exempel. Nedan är ett avsnitt av Certiks revision av PancakeSwap.


Dessutom har de allra flesta projekt som stöds av Binance Labs granskat sina kontrakt med CertiK. CertiK släpper en topplista med granskade projekt, som låter dig jämföra var och en, tillsammans med en säkerhetspoäng. Observera att förutom Ethereum så täcker CertiK även BSC- och Polygon-projekt.


ConsenSys Diligence

ConsenSys, som drivs av en av Ethereums grundare Joseph Lubin, är ett av kryptovalutabranschens största namn inom blockkedjeutveckling. Som ConsenSys Diligence erbjuder företaget Ethereum revisioner av smarta kontrakt. De tillhandahåller också en automatiserad tjänst som kontrollerar Ethereum Virtual Machine (EVM)-kontrakt för vanliga misstag.


Hur mycket kostar en revision av smarta kontrakt?

Den exakta kostnaden för en revision beror på antalet smarta kontrakt som ska kollas upp. Vanligtvis kostar en revision tusentals dollar. Ett extra stort projekt kan lätt kosta över 10 000 USD. Revisionsföretaget som sköter din revision och dess rykte påverkar också hur mycket du betalar för den.


Sammanfattningsvis

Lyckligtvis för investerare och användare har revisioner av smarta kontrakt blivit en gyllene standard. Men när varje projekt har en sådan är det inte längre en enkel värdeindikator. Det är därför det är otroligt viktigt att läsa revisionen själv. Även om du inte har den tekniska kunskapen är det bra att ta en titt på kommentarerna och hur allvarliga potentiella problem är.

När du går igenom en revision bör du nu åtminstone ha en del förståelse för dess innehåll. Se som alltid till att alla investeringsbeslut innefattar ett helhetsperspektiv och tar hänsyn till all information.