Online beleggen

Je bent hier: Home > Nieuws > Hoe veilig zijn smart contracts op Ethereum?

Hoe veilig zijn smart contracts op Ethereum?

Hoe veilig zijn smart contracts op Ethereum?

woensdag 12 januari 2022 - door Redactie

Na de hack op TheDAO gingen steeds meer mensen zichzelf afvragen hoe veilig de smart contracts op Ethereum eigenlijk zijn.

Er gaat immers veel geld rond in deze smart contracts, en daarom is het terecht om kritisch te kijken naar de veiligheid van Ethereum en zijn smart contracts. We vertellen je in dit artikel hoe veilig smart contracts op Ethereum zijn, en zullen ook dieper ingaan op de hack van TheDAO die in 2016 plaatsvond.

Zijn smart contracts op Ethereum veilig?

In het verleden is er een grote hack geweest in een smart contract dat op Ethereum draait. Verder in dit artikel gaan we dieper in op deze hack. Nu zullen we je eerst vertellen of smart contracts op Ethereum veilig zijn.

De veiligheid van een smart contract ligt in de handen van de ontwikkelaar van een dApp. In essentie bevatten smart contracts op Ethereum enkele bekende kwetsbaarheden. Dit heeft mede te maken met de programmeertaal die gebruikt wordt voor de ontwikkeling van smart contracts. Dit is Solidity.

Het is onder ontwikkelaars algemeen bekend dat Solidity niet de veiligste programmeertaal is. Dat is bijvoorbeeld ook de reden dat Cardano besloot om een eigen programmeertaal voor hun smart contracts te ontwikkelen, genaamd Plutus. Deze taal is volgens hen veiliger en bevat minder kwetsbaarheden.

Consensys, een blockchain bedrijf, heeft een gids samengesteld met de belangrijkste aanvallen waar rekening mee moet worden gehouden bij de ontwikkeling van smart contracts. In deze gids wordt bijvoorbeeld herinnerd aan de soorten bugs die tot de aanval op TheDAO hebben geleid.

Een van de veel voorkomende bugs in smart contracts die met Solidity zijn geprogrammeerd, kan worden uitgevoerd als contract functies meerdere malen kunnen worden aangeroepen, zonder dat de vorige aanroepen zijn voltooid. Dit zorgt ervoor dat er bijvoorbeeld meerdere transacties worden uitgevoerd in plaats van één, als het saldo van de gebruikers pas aan het eind van de functie worden gewijzigd.

Een smart contract op Ethereum wordt veiliger zodra ontwikkelaars extra stappen nemen in de beveiliging ervan en wanneer het uitvoerig getest is door white hat hackers. Het is dus niet voldoende om alleen aan de functionaliteit van het smart contract te denken. Er zal ook gedacht moeten worden aan veiligheid ervan, zodat bekende kwetsbaarheden vermeden kunnen worden.

De hack van TheDAO

Er ontstonden vragen rondom de veiligheid van smart contracts op Ethereum door de hack op TheDAO. De fouten in de Ethereum smart contracts van TheDAO was dan ook een grote klap voor de community achter het project. Het TheDAO-project werd gefinancierd door Ethereum-gebruikers en had tot doel, zoals de naam al aangeeft, een gedecentraliseerd bedrijfsmodel op te zetten. Dit noemen we een Decentralized Autonomous Organisation en wordt ook vaak weergegeven als DAO.

Er was meer dan 100 miljoen dollar opgehaald voor dit project, en het was opgezet tussen april en mei 2016. In juni werd er echter een kwetsbaarheid in de code gevonden. Het is nu de bekendste kwetsbaarheid die in het ecosysteem van Ethereum is gevonden, en herinnert alle ontwikkelaars eraan dat een slecht geprogrammeerd smart contract ernstige gevolgen kan hebben. Vandaag zijn DAO-tokens niet langer gelist op de belangrijkste exchanges.

Al in mei 2016 werden kwetsbaarheden gepresenteerd en werd investeerders geadviseerd zich te richten op het verhelpen van deze gebreken alvorens nieuwe projecten op te zetten. Begin juli waren er oplossingen voorgesteld, maar door de manier waarop TheDAO werkt, zat er een week tussen het voorstel en de uitvoering. Dankzij dit uitstel konden beleggers stemmen over de vraag of de oplossingen al dan niet moesten worden uitgevoerd. Dit zorgde ervoor dat iedereen te weten kwam over de gebreken van het systeem.

Op 17 juli werd een aanval uitgevoerd op de smart contracts die gekoppeld zijn aan TheDAO, waarbij verschillende kwetsbaarheden werden gebruikt. Deze aanval leidde tot de overdracht van 3,6 miljoen Ethers van TheDAO. Dit betekent dat ongeveer 33% van het geld van TheDAO is gestolen. Dit geld werd niet naar de wallet van de hackers verplaatst, maar naar een wallet die voor een periode van 28 dagen was bevroren.

Dit stelde TheDAO en de Ethereum-community in staat om discussies te voeren over hoe het nu verder moet. Deze discussie leidde ook tot de opsplitsing van de blockchain in twee projecten, Ethereum en Ethereum Classic.

Hoe kunnen ontwikkelaars zorgen voor de beste veiligheid?

In het verleden is het dus al eens fout gegaan met een smart contract dat op Ethereum draait. Niemand wil dat dit in de toekomst nogmaals gebeurt. Er zijn gelukkig verschillende manieren waarop ontwikkelaars ervoor kunnen zorgen dat hun dApp veilig is wanneer zij gebruik maken van smart contracts op Ethereum. Hieronder staat hoe ze dat kunnen doen.

Veel testen

Om problemen in smart contracts op voorhand op te sporen, moet je op zoveel mogelijk problemen voorbereid zijn. Testen en de community erbij betrekken is een zeer goede manier om fouten in de code op te sporen. Andere methoden, zoals beloningen of buy bounties voor het ontdekken van gebreken en het controleren van smart contracts, zijn ook belangrijk. Dit noemen we ook wel het bug bounty project. Recent kon Polygon zo een lek dichten dat 24 miljard dollar in gevaar bracht.

Nieuwsupdates in de gaten houden

De blockchain technologie evolueert snel en de tools en libraries worden zeer regelmatig bijgewerkt. Het is daarom erg belangrijk de moeite te nemen om ze bij te werken en nieuwe protocollen in het oog te houden. Het in de gaten houden van de technologieën die je gebruikt is nu gebruikelijk voor ontwikkelaars, maar het is nog belangrijker in ecosystemen die zo snel evolueren als dat van Ethereum. Het is niet voldoende om alleen nieuwe projecten of functies te bestuderen. Vooral belangrijk is het in acht nemen van nieuwe beveiligingspraktijken.

Maak het niet te complex

Vaak worden ontwikkelaars als ‘lui’ bestempeld wanneer ze code van bijvoorbeeld Github afhalen. Echter is het ook een manier om de veiligheid van je code te garanderen. Als je functies herbruikbaar en gemakkelijk aanpasbaar zijn, is dat een teken van een goede werkmethode.

Complexe logica wordt bereikt door een veelheid van eenvoudige functies te gebruiken. Hierdoor kun je ook dezelfde code hergebruiken en dubbel werk vermijden. Je moet niet aarzelen om libraries van door de gemeenschap erkende functies te gebruiken, zoals bijvoorbeeld de OpenZepelin-library.

Maar ook bij het programmeren van smart contracts is het belangrijk ze zo eenvoudig mogelijk te houden. Het is de rest van het project dat complexere taken zal uitvoeren om bijvoorbeeld interfaces te bieden aan gebruikers. Het smart contract zelf kan het beste alleen voor simpele functies gebruik worden, waardoor de kans op fouten in de code verkleint wordt.

Smart contracts blijven controleren

Hoewel de beveiliging van smart contracts vaak in handen van de ontwikkelaars wordt gelaten, is het gebruik van smart contract audits gebruikelijk in de blockchain wereld. Dit zijn automatische controles die ervoor zorgen dat simpele problemen niet in de code voorkomen, en op tijd verholpen zouden kunnen worden. Dankzij deze controles zijn gebruikers niet afhankelijk van hun technische capaciteiten om smart contracts te vertrouwen.

Conclusie

In het verleden is er een grote hack geweest op TheDAO. Dit was een crypto project dat gebruik maakte van een smart contract op Ethereum. Doordat er kwetsbaarheden in dit smart contract zaten, waren hackers in staat om minimaal een derde van de Ethers van TheDAO te stelen.

Er zijn verschillende kwetsbaarheden bekend in de smart contracts van Ethereum. Toch betekent dit niet dat je geen gebruik zou moeten maken van deze smart contracts. Ontwikkelaars kunnen er namelijk zelf voor zorgen dat ze deze kwetsbaarheden oplossen. Hiervoor zullen ze echter wel op de hoogte moeten zijn van de kwetsbaarheden. Deze worden allemaal beschreven in de gids die door Consensys is uitgegeven. Ook hebben wij je in dit artikel verteld hoe een smart contract ontwikkelaar ervoor kan zorgen dat de kwetsbaarheden in het smart contract snel gevonden worden.

Ethereum grafiek in euro

Finst



Advertentie

Finst

Gratis e-book

Gratis te downloaden:
Bitcoin & crypto uitgelegd

Bitcoin & crypto uitgelegd

Download hier meteen het meer dan 150 pagina's tellende e-book "Bitcoin & crypto uitgelegd".

Populair op Beleggenonline







Advertentie






Beleggenonline.info is een
informatieve website van
Sigma Services bv
[email protected]
Sigmaservices.eu