Veiligheid is één van de belangrijkste zaken als het gaat om crypto. Dat crypto voor het overgrote deel decentraal is, wordt door velen als iets erg positiefs gezien. Echter, er komen ook risico’s bij kijken.
Wanneer er iets fout gaat, kan het namelijk ook niet meer teruggedraaid worden. Dit biedt voor oplichters natuurlijk een mooie kans. Wanneer een slachtoffer dan namelijk ergens intrapt, is het niet meer terug te draaien. Daarnaast kunnen de oplichters volledig privé blijven. Oftewel: crypto is ideaal voor oplichters.
Om te voorkomen dat mensen in deze oplichtingspraktijken trappen, zijn smart contract audits in het leven geroepen. Deze controles van de veiligheid zijn namelijk een soort keurmerk dat aangeeft dat je een project kunt vertrouwen. Echter, hier komen ook weer kanttekeningen bij kijken, daarover later meer.
Maar wat is een smart contract audit precies? En hoe zorgt het ervoor dat oplichtingen voorkomen kunnen worden? Dat, en meer, lees je in de blog van vandaag. Laten we snel beginnen!
Bekijk snel
Wat is een smart contract?
Voordat je goed kunt begrijpen wat een smart contract audit is, is het uiteraard belangrijk om een goed begrip te hebben van wat een smart contract is. Laten we allereerst eens kijken naar de exacte betekenis:
Een smart contract is een geprogrammeerd contract waarvan de afspraken in computercode staan vastgelegd op de blockchain. Het contract wordt automatisch uitgevoerd zonder dat hier (vertrouwen in) een tussenpartij voor nodig is. Deze afspraken zijn altijd in te zien, maar kunnen onmogelijk nog worden aangepast.
Eigenlijk is een smart contract dus een stukje code. In deze code staan regels beschreven. Een smart contract komt in the picture wanneer iemand een bepaalde transactie door wil voeren. Het smart contract gaat deze transactie dan controleren. Als de transactie voldoet aan de regels, kan deze worden doorgevoerd. Dat gebeurt dus volledig automatisch.
Bij veel cryptoprojecten worden smart contracts ingezet, omdat een project op deze manier volledig decentraal kan blijven. De smart contracts bepalen dan namelijk of bepaalde transacties wel of niet door kunnen gaan, en hier is dus niemand meer de baas over. De regels staan vast in het smart contract en deze kunnen niet meer aangepast worden. Op deze manier kan een project dus volledig decentraal acteren.
Wat hierbij dus wel heel erg belangrijk is, is dat deze smart contracts volledig veilig en legitiem zijn. Wanneer er een klein foutje in het smart contract zit, kan dit ervoor zorgen dat mensen die gebruikmaken van het smart contract heel veel geld verliezen.
Zo kunnen oplichters bijvoorbeeld iets in het smart contract verwerken waardoor je al je geld naar hen overmaakt en je ze de volledige toegang tot je wallet geeft. Dat is maar 1 van de vele voorbeelden waarin fouten in het smart contract tot slechte dingen kunnen leiden.
Het is dus cruciaal dat de smart contracts helemaal kloppen. Dit kan verzekerd worden door smart contract auditing. Maar hoe werkt dit?
Wat is een smart contract audit?
Smart contract auditing is dus een manier waarop de legitimiteit en de veiligheid van een smart contract gecontroleerd wordt. Maar hoe werkt dit dan?
Het Engelse werkwoord ‘to audit’ betekent controleren of verifiëren. Een audit, in dit geval, is dus eigenlijk de controle of verificatie van een smart contract. Zo’n audit van een smart contract wordt vaak uitgevoerd door een bedrijf dat zich hierin specialiseert.
Wanneer een smart contract audit wordt uitgevoerd door zo’n bedrijf, betekent dit simpelweg dat de volledige code van het smart contract wordt doorgrond door het auditing bedrijf. Ze zoeken naar alle mogelijke foutjes, om zo te kunnen verzekeren dat het contract veilig en legitiem is.
Waarom is een audit zo belangrijk?
Een smart contract is voor beide partijen erg belangrijk: voor de potentiële gebruikers van een project, maar ook voor de makers van een project.
Voor de potentiële gebruikers is het erg logisch waarom zo’n audit belangrijk is. Door zo’n audit mogen zij ervan uitgaan dat het smart contract veilig is, en dat het protocol hierdoor veilig te gebruiken is. Er zijn veel investeerders die er dan ook voor kiezen geen gebruik te maken van projecten die niet ge-audit zijn door een audit bedrijf dat zij goed vinden.
Ook voor de makers van een project kan zo’n audit erg belangrijk zijn. Hoewel zij misschien de beste bedoelingen hebben in het coderen van hun eigen smart contracts, kunnen zij nog steeds fouten maken waar ze misschien zelf bij een dubbele check nog steeds overheen kijken. Natuurlijk willen ze voorkomen dat ze hun gebruikers onbedoeld oplichten. Door een audit te laten uitvoeren door een bedrijf, kunnen ze deze fouten toch herkennen en verzekeren dat hun smart contract volledig klopt. Ook voor de eigen veiligheid van hun platform is het slim als makers om een audit uit te laten voeren, zodat je zeker weet dat er geen fouten in je smart contracts zitten.
Het proces van een smart contract audit
Het proces van een smart contract bestaat uit verschillende stappen. Deze stappen zijn; het testproces, de automatische analyse, de handmatige analyse en het rapport. Het is niet altijd zo dat er zowel een automatische analyse, als een handmatige analyse wordt uitgevoerd. Soms wordt er de keuze gemaakt voor 1 van de 2.
Het testproces
De eerste stap in het uitvoeren van een smart contract audit is het testproces. In het testproces worden de smart contracts simpelweg getest door transacties door te voeren. Op deze manier kunnen eerste mogelijke errors al herkend worden.
In dit testproces wordt er vaak gekeken naar de line coverage. De line coverage betekent hoeveel procent van de code uitgevoerd kan worden voordat er een error plaatsvindt. Wanneer je een smart contract runt worden er regels aan code gevormd. Laten we zeggen dat een succesvolle smart contract transactie resulteert in een code bestaande uit 40 regels. Als er dan een error plaatsvindt op regel 20, betekent dit dat de line coverage 50% is.
Ideaal is natuurlijk een line coverage van 100%. Echter, een smart contract met een line coverage van 85% tot 90% kan vaak ook prima werken. Het verschilt per audit uitvoerder welke line coverage wordt toegelaten.
Automatische analyse
Wanneer het testproces is voltooid, is het tijd voor de automatische analyse. Smart contracts worden steeds vaker gebruikt, nu DeFi (decentralized finance) steeds populairder wordt. Dit zorgt er ook voor dat de vraag naar smart contract audits groter wordt. Inmiddels wordt er dan ook steeds meer software ontwikkeld, die dit proces tot op zekere hoogte kan automatiseren.
Software zoals deze kun je zelf bijvoorbeeld vinden op GitHub. Bedrijven die smart contract audits uitvoeren hebben vaak zelf dit soort software. We weten niet precies wat daarin staat en waar ze naar zoeken.
De automatische analyse zorgt ervoor dat errors in de code herkend kunnen worden, zodat deze opgelost kunnen worden.
Handmatige analyse
Het is afhankelijk van het bedrijf of er een handmatige analyse plaats zal vinden. Sommige bedrijven kiezen ervoor om zowel een automatische analyse, als een handmatige analyse uit te voeren. Sommige bedrijven kiezen voor 1 van de 2. Weer andere bedrijven kiezen er bijvoorbeeld voor alleen een handmatige analyse uit te voeren, wanneer er teveel errors gevonden worden in de automatische analyse.
In principe spreekt deze fase wel voor zich. Smart contract experts doorgronden de code van het smart contract en gaan op zoek naar elke mogelijke zwakte in het smart contract. Deze mensen weten precies hoe smart contracts in elkaar zitten en in theorie zouden ze er elke fout uit moeten halen.
Na deze stap is de analyse klaar en is het tijd voor het rapport.
Rapport
Wanneer alle tests en analyses voltooid zijn, is het tijd voor het rapport. Ook deze stap spreekt in principe wel voor zich. Het auditbedrijf stelt een rapport op met daarin alle bevindingen. Het blockchainbedrijf weet zo precies wat er mis is met hun smart contracts en kunnen aan het werk.
Vaak geven de auditbedrijven ook een ‘security score’. Zo werkt het bedrijf CertiK bijvoorbeeld met een score van tussen de 0 en 100. Op de website van CertiK, een groot auditbedrijf, kun je de livescores van alle audits zien die zij ooit uitgevoerd hebben.
Nadat CertiK een audit heeft uitgevoerd komt het project, die zij ge-audit hebben, in hun decentralized security scoring system terecht. Dit systeem blijft voortdurend de security scores van de projecten updaten. Hier kun je dus live zien hoe een project wordt beoordeeld door CertiK.
Welke bedrijven voeren smart contract audits uit?
Smart contract audits zijn dus erg belangrijk. Dat maakt ook de bedrijven die ze uitvoeren erg belangrijk. Het kan namelijk natuurlijk ook dat er een oplichtingspraktijk smart contract audits uitdeelt, die dus helemaal niet valide zijn. Zo kunnen oplichters samen werken. Vertrouw dus niet blind op een smart contract audit, en kijk altijd of je zo’n audit bedrijf kunt vertrouwen.
OpenZeppelin
Een voorbeeld van een bedrijf dat smart contract audits doet, is OpenZeppelin. OpenZeppelin werd opgericht in 2015 en is inmiddels de grootste partij die er is, als het gaat om het auditen van contracten binnen de cryptowereld. De belangrijkste missie van OpenZeppelin is ‘het beschermen van de open economie’ zo geven zij zelf aan op hun website.
OpenZeppelin heeft al met vele grote cryptobedrijven gewerkt. Voorbeelden hiervan zijn Brave, Ethereum Foundation, Coinbase, The Graph en Cosmos.
CertiK
Een ander bekend crypto auditbedrijf is CertiK. CertiK werd opgericht in 2017 door Prof. Zhong Shao en Prof. Ronghui Gu. Het bedrijf wordt gebacked door investeerders als Sequoia Capital, Binance, Coinbase en Yale University. Werknemers van CertiK hebben in het verleden al gewerkt bij bedrijven als Google, Microsoft, Samsung en Uber en komen van universiteiten af als Yale University, Columbia University, Harvard University, Stanford University en University of Pennsylvania.
CertiK voerde al audits uit voor vele grote projecten. Denk hierbij bijvoorbeeld aan Terra, The Sandbox, PancakeSwap, Aave, Polygon en Decentraland. Tot nu toe werden 1577 projecten ge-audit door CertiK. Ook de projecten die niet door de tests kwamen zijn te zien op de website. Zo kun je dus ook zien welke smart contracts door audit als onveilig gezien worden.
Meer weten over Certik? Deze introductievideo vertelt je meer!
ConsenSys
ConsenSys is een ander bedrijf dat smart contract audits uitvoert. Het bedrijf werd opgericht in 2014, door Andrew Keys en Joseph Lubin. Zij zijn beiden niet meer actief binnen het bedrijf. ConsenSys heeft in het verleden al meer dan 100 blockchainbedrijven geholpen met het verbeteren van de veiligheid van hun platform, zo geven zij zelf aan op hun website. Al meer dan 200 veiligheidsproblemen zouden verholpen zijn door de audits van ConsenSys.
Voorbeelden van projecten die al ge-audit zijn door ConsenSys zijn Aave, 0x, Covantis, Aragon, OMG Foundation en Horizon Blockchain Games.
Dit is niet alles wat het bedrijf ConsenSys doet. Zo bouwen zij ook verschillende eigen blockchainprojecten. Voorbeelden hiervan zijn MetaMask en Codefi.
Conclusie
Smart contract audits kunnen dus heel belangrijk zijn in je onderzoek naar een project. Ze kunnen namelijk iets zeggen over of het project te vertrouwen is of niet. Echter, het hoeft niet altijd zo te zijn. Er kunnen namelijk ook oplichtingspraktijken zijn die succesvolle audits uitdelen, zonder dat een smart contract daadwerkelijk veilig is. Hoewel het dus zeker iets zegt, moet je je niet blind staren op zo’n smart contract audit.
Verschillende grote bedrijven die zich specialiseren in smart contract audits zijn: OpenZeppelin, CertiK en ConsenSys. Alle 3 deze bedrijven hebben al voor grote projecten gewerkt en inmiddels een grote naam opgebouwd als het gaat om het auditen van contracten.
Het proces van een smart contract audit bestaat uit 3 delen, namelijk: het testproces, de automatische analyse, de handmatige analyse en het rapport. Alle stappen zijn erg belangrijk en hebben een bijdrage in het verzekeren van de veiligheid van de cryptowereld.
Hopelijk begrijp je door deze blog wat smart contracts audits zijn, want deze veiligheidscontrole kunnen je nog eens veel geld gaan besparen. Heb je toch nog vragen? Stel ze dan in onze AllesOverCrypto Facebookgroep waar onze experts voor je klaar staan. Daarnaast kom je terecht in een community van ruim 100.000 crypto fanaten! Antwoorden op je vragen kun je ook vinden in onze FAQ. Verder vind je snel antwoorden door je vraag + AllesOverCrypto te googelen.
Header photo: Olivier Le Moal / Shutterstock.com