Hvad er en sikkerhedsrevision af smart contracts?
Hjem
Artikler
Hvad er en sikkerhedsrevision af smart contracts?

Hvad er en sikkerhedsrevision af smart contracts?

Let √łvet
Offentliggjort Mar 1, 2022Opdateret Apr 27, 2023
8m

TL;DR

En sikkerhedsrevision af smart contracts giver en detaljeret analyse af et projekts smart contracts. Disse er vigtige for at beskytte de midler, der er investeret gennem dem. Eftersom alle transaktioner i blockchainen er endelige, kan midlerne ikke hentes tilbage, hvis de bliver stj√•let. Typisk unders√łger revisioner koden for smart contracts, udarbejder en rapport og giver den til projektet, s√• de kan arbejde med den. Derefter udgives en endelig rapport med en detaljeret beskrivelse af eventuelle udest√•ende fejl og det arbejde, der allerede er udf√łrt, for at l√łse problemer med ydeevne eller sikkerhed.


Introduktion

Sikkerhedsrevisioner af smart contracts er meget almindelige i Decentralized Finance-√łkosystemet (DeFi). Hvis du har investeret i et blockchain-projekt, kan din beslutning delvist v√¶re baseret p√• resultaterne af en revision af smart contract-koden.

Mens de fleste mennesker forst√•r vigtigheden af revisioner for cybersikkerhed, er der ikke mange, der dykker ned i kodelinjerne. Lad os se n√¶rmere p√• de metoder, v√¶rkt√łjer og resultater, der typisk ses i sikkerhedsrevisioner af smart contracts, s√• du kan tr√¶ffe mere velinformerede beslutninger.


Hvad er en revision af en smart contract?

En sikkerhedsrevision af en smart contract unders√łger og kommenterer et projekts kode for en smart contract. Typisk er disse contracts skrevet i Solidity-programmeringssproget og leveres via GitHub. Sikkerhedsrevisioner er s√¶rligt v√¶rdifulde for DeFi-projekter, der forventer at h√•ndtere blockchain-transaktioner til en v√¶rdi af millioner af dollar eller et stort antal brugere. Revisionerne f√łlger normalt en proces i fire trin:

1. Smart contracts stilles til rådighed for revisionsteamet med henblik på en indledende analyse.

2. Revisionsteamet fremlægger sine resultater for projektet, så de kan handle på grundlag af dem.

3. Projektteamet foretager ændringer på baggrund af de fundne problemer.

4. Revisionsteamet udsender sin endelige rapport og tager h√łjde for eventuelle nye √¶ndringer eller udest√•ende fejl.

For mange kryptobrugere er revisioner af smart contracts afg√łrende, n√•r de investerer i nye DeFi-projekter. Det er blevet en standard for projekter, der √łnsker at blive taget alvorligt. Visse revisionsudbydere betragtes ogs√• som f√łrende i branchen, hvilket g√łr deres revisioner mere v√¶rdifulde i investorernes √łjne.


Hvorfor har vi brug for revision af smart contracts?

Med de store m√¶ngder v√¶rdi, der handles gennem eller er l√•st i smart contracts, bliver de attraktive m√•l for ondsindede angreb fra hackere. Mindre kodningsfejl kan f√łre til, at der stj√¶les store bel√łb. F.eks. tog DAO-angrebet p√• Ethereum-blockchainen ETH for omkring 60 millioner USD og f√łrte endda til en nedl√¶gning af Ethereum-netv√¶rket.

Eftersom blockchain-transaktioner er irreversible, er det vigtigt at sikre, at et projekts kode er sikker. Blockchain-teknologiens meget sikre karakter g√łr det vanskeligt at hente midler og l√łse problemer efterf√łlgende, s√• det er bedre at forebygge s√•rbarheder for enhver pris.


Hvordan fungerer revisioner af smart contracts?

Processen for en revision af en smart contract er temmelig standard blandt revisionsudbydere. Selv om hver enkelt revisors fremgangsm√•de kan variere en smule, er den typiske proces som f√łlger:

1. Fastslå revisionens omfang. Smart contract og projektspecifikationer er defineret af projektet (deres formål) og den overordnede arkitektur. En specifikation hjælper revisionsteamet med at forstå projektets mål, når de skriver og bruger koden.

2. Giv et f√łrste tilbud baseret p√• det n√łdvendige arbejde.

3. K√łr test. Deres n√łjagtige karakter vil √¶ndre sig afh√¶ngigt af revisionsteamet, deres analysev√¶rkt√łjer og metoder. Normalt udf√łres der b√•de manuelle og automatiserede test.

4. Udarbejd et f√łrste udkast til rapporten med de fundne fejl, og giv det til projektteamet med henblik p√• feedback og opf√łlgende rettelser.

5. Offentligg√łr den endelige rapport, og tag hensyn til eventuelle foranstaltninger, som teamet har truffet for at l√łse de fundne problemer.


Metoder til revision af smart contracts

Gaseffektivitet 

Revisioner af smart contracts fokuserer ikke kun på blockchain-sikkerhed. De ser også på effektivitet og optimering. Nogle contracts omfatter en kompliceret række transaktioner for at opfylde deres tilsigtede funktion. Eftersom gasgebyrer på netværk såsom Ethereum er relativt dyre, kan effektive contracts spare en masse på transaktionsomkostninger.

Optimering af deres ydeevne er ogs√• en indikator for udviklerens dygtighed. Ineffektive trin giver flere punkter for fejl og b√łr undg√•s. N√•r gasomkostningerne er h√łje, kan det v√¶re umuligt at udf√łre smart contracts, og det g√¶lder i endnu h√łjere grad, n√•r der anvendes en lav gasgr√¶nse.

Sårbarheder i contracts

Det meste af arbejdet med revisioner best√•r i at kontrollere contracts for sikkerhedshuller. Mens nogle problemer kan v√¶re lette at se, involverer mange udnyttelser avancerede teknikker og strategier til at dr√¶ne midler. F.eks. kan markedsmanipulation bruges med svage smart contracts til at udf√łre flashl√•nsangreb. For at finde disse problemer starter revisorerne brudtestprocessen og simulerer ondsindede angreb p√• en smart contract. Almindelige s√•rbarheder omfatter:

1. Problemer med reentrancy: N√•r en smart contract foretager et eksternt kald til en anden ekstern contract, f√łr eventuelle effekter er l√łst. Den eksterne contract kan derefter rekursivt kalde den oprindelige smart contract og interagere med den p√• m√•der, den ikke burde kunne, da den oprindelige contracts saldo endnu ikke er blevet opdateret.

2. Overflow og underflow af heltal: N√•r en smart contract udf√łrer en aritmetisk handling, men resultatet overstiger lagerkapaciteten (normalt 18 decimaler). Dette kan f√łre til, at der beregnes forkerte bel√łb.

3. Muligheder for frontrunning: D√•rligt struktureret kode kan give forudg√•ende varslinger om k√łb eller salg p√• markedet. Dette kan igen give andre mulighed for at bruge oplysningerne og handle med dem til deres egen fordel.

Sikkerhedsbrister i platformen

De fleste revisioner omfatter et kig på det netværk, der hoster contracts, og endda det API, der bruges til at interagere med DAppen. Et projekt kan være sårbart over for et DDoS-angreb eller få dets websites brugergrænseflade kompromitteret, hvilket betyder, at brugerne faktisk vil knytte deres wallets til ondsindede blockchain-applikationer.


Hvad er en revisionsrapport?

Revisionsrapporten udarbejdes ved afslutningen af revisionsprocessen. Af hensyn til gennemsigtigheden forventes det, at projekterne deler deres resultater med f√¶llesskabet. De fleste rapporter kategoriserer problemerne efter sv√¶rhedsgrad, f.eks. kritisk, alvorlig, mindre alvorlig osv. Rapporten vil ogs√• indeholde en status for problemerne, eftersom projektteamsene f√•r tid til at l√łse dem, inden den endelige rapport offentligg√łres.

Sammen med et sammendrag vil en standardrapport indeholde anbefalinger, eksempler p√• overfl√łdig kode og en fuldst√¶ndig opdeling af, hvor der er kodningsfejl. Projektteamet f√•r tid til at reagere p√• rapportens resultater, inden den endelige udgave offentligg√łres.


Hvor kan jeg få en revision af en smart contract?

En række revisionstjenester for smart contracts er blevet kendt for deres service. To af dem er særligt populære, og for at få en revision fra dem skal der udarbejdes et indledende tilbud og udleveres oplysninger.

CertiK

CertiK er f√łrende i branchen, n√•r det g√¶lder revision af smart contracts. Hundredvis af projekter har revideret deres smart contracts hos dem. PancakeSwap, som er BSC's st√łrste Automated Market Maker (AMM), er et eksempel herp√•. Nedenfor er et uddrag af Certiks revision af PancakeSwap.


Langt de fleste projekter, der st√łttes af Binance Labs, har ogs√• revideret deres contracts med CertiK. CertiK udgiver en rangliste over reviderede projekter, som giver dig mulighed for at sammenligne hvert enkelt projekt med en sikkerhedsscore. Bem√¶rk, at CertiK ud over Ethereum ogs√• d√¶kker BSC- og Polygon-projekter.


ConsenSys Diligence

ConsenSys, der drives af Joseph Lubin, som er √©n af medstifterne af Ethereum, er √©t af kryptovalutaindustriens st√łrste navne inden for blockchain-udvikling. Under ConsenSys Diligence tilbyder virksomheden revisioner af Ethereum-smart contracts. De tilbyder ogs√• en automatiseret tjeneste, der kontrollerer Ethereum Virtual Machine-contracts (EVM) for almindeligt forekommende fejl.


Hvor meget koster en revision af en smart contract?

De n√łjagtige omkostninger ved en revision afh√¶nger af antallet af smart contracts, der skal kontrolleres. En revision koster typisk flere tusinde USD. Et s√¶rligt stort projekt kan nemt koste over 10.000 USD. Det revisionsfirma, der udf√łrer din revision, og dets omd√łmme vil ogs√• p√•virke, hvor meget du betaler.


Sammenfatning

Heldigvis for investorer og brugere er revisioner af smart contracts blevet en gylden standard. Men når alle projekter har en sådan, er det ikke længere en nem indikator for værdi. Derfor er det utroligt vigtigt, at du selv læser revisionen. Selv hvis du ikke har den tekniske viden, er det nyttigt at se på kommentarerne og alvoren af potentielle problemer.

N√•r du st√łder p√• en revision, skulle du nu i det mindste have lettere ved at forst√• indholdet. Som altid skal du s√łrge for, at enhver investeringsbeslutning er baseret p√• et helhedsbillede og tager alle oplysninger i betragtning.