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.