Direct naar de inhoud
PlatformCrypto.nl

Wat is een smart contract?

Door Redactie PlatformCrypto.nl · Laatst gecontroleerd op

Kort antwoord

Een smart contract is een programma dat op een blockchain staat en vanzelf uitvoert wat erin is vastgelegd, zodra aan de voorwaarden is voldaan. Er komt geen bank of notaris aan te pas. Tokens, DeFi-apps en NFT's draaien allemaal op smart contracts.

De term is ouder dan bitcoin. Informaticus Nick Szabo bedacht hem in 1994 en vergeleek een smart contract met een snoepautomaat: gooi je het juiste bedrag erin en kies je een product, dan valt dat product eruit, zonder winkelmedewerker. Op grote schaal kwamen smart contracts pas in gebruik met Ethereum, volgens ESMA vanaf 2015. Ondanks de naam is het geen juridisch contract, maar gewoon software.

Hoe werkt een smart contract?

Op Ethereum is een smart contract een programma met een eigen adres. Het bestaat uit code (de functies) en gegevens (de stand van zaken, zoals saldi). Het contract is zelf een soort account: het kan munten bezitten en transacties ontvangen. Niemand bestuurt het, ook de maker niet. Na de publicatie doet het precies wat in de code staat.

Je gebruikt een smart contract door er vanuit je wallet een transactie naartoe te sturen. Daarvoor betaal je netwerkkosten; hoe die werken, lees je bij wat gas fees zijn. Wat je met een contract doet, is onomkeerbaar.

Drie eigenschappen maken smart contracts bijzonder:

  • Iedereen mag ze maken. Wie code kan schrijven, kan een contract op het netwerk zetten. Daar is geen toestemming voor nodig.
  • De code is openbaar. Iedereen kan meelezen, en contracten kunnen elkaar aanroepen. Zo bouwen projecten voort op elkaars werk.
  • Ze kennen de buitenwereld niet. Een contract kan zelf geen koers of uitslag opvragen. Dat doen oracles: diensten die gegevens van buiten aanleveren. EBA en ESMA noemen Chainlink de leidende aanbieder daarvan.

Waar kom je smart contracts tegen?

ESMA deelt de smart contracts op Ethereum in vijf groepen in: financieel, operationeel, tokens, wallets en infrastructuur. In de praktijk zie je ze vooral hier:

  • Tokens. Een token zoals LINK, UNI of USDC is zelf een smart contract dat bijhoudt wie hoeveel heeft. Het verschil tussen een coin en een token lees je bij wat een altcoin is.
  • Ruilen en lenen. Uniswap is een verzameling smart contracts waarmee iedereen tokens kan ruilen, zonder orderboek. Bij Aave leen je via smart contracts crypto uit of leen je zelf. Samen heet dit DeFi.
  • NFT's. Een NFT is een uniek nummer in een smart contract, met de eigenaar erbij. Meer bij wat een NFT is.
  • Layer 2-netwerken. Netwerken als Arbitrum One en Base gebruiken contracten op Ethereum voor stortingen en om hun transacties te laten controleren. Zie wat een layer 2 is.
  • Andere blockchains. Ook Solana, Cardano, Avalanche en Polkadot voeren smart contracts uit. Welke munten op welk netwerk staan, zie je bij crypto-netwerken.

Kan een smart contract nog veranderen?

De code die op een adres staat, kan niet meer worden aangepast, en een contract wordt standaard niet verwijderd. Toch bouwen veel projecten bewust een manier in om te upgraden. Via een zogeheten proxy blijft het adres hetzelfde, terwijl de code erachter wordt vervangen.

Volgens ethereum.org moet je dan op de ontwikkelaars vertrouwen: wie de upgradefunctie beheert, kan bij een proxy het hele contract veranderen. Projecten beperken dat met een multisig (er zijn meerdere handtekeningen nodig) of een stemming, en met een wachttijd waarin gebruikers kunnen vertrekken als ze het niet eens zijn met een wijziging. Uniswap kiest de andere kant: het protocol zelf is niet te upgraden. Kijk dus niet alleen naar wat een contract doet, maar ook naar wie het kan veranderen.

Welke risico's horen erbij?

  • Fouten in de code. Volgens ethereum.org is er door kwetsbaarheden in smart contracts makkelijk meer dan een miljard dollar gestolen of verloren gegaan. Bij de hack van The DAO verdween 3,6 miljoen ETH. Een audit helpt, maar vindt niet elke fout.
  • Geen weg terug. Wat gestolen is, krijg je meestal niet terug, juist omdat de code vastligt. Bij wie je kunt aankloppen, is in DeFi vaak onduidelijk of er is niemand, schrijven EBA en ESMA.
  • Onbeperkte toestemming. Veel apps vragen toestemming om een onbeperkt aantal van je tokens te gebruiken. Die toestemming verloopt niet, ook niet als je je wallet loskoppelt. Een kwaadaardig contract kan je tokens zo leeghalen. Intrekken doe je met een aparte transactie, waarvoor je netwerkkosten betaalt.
  • Tekenen zonder te begrijpen. Je wallet toont vaak ruwe gegevens die voor software bedoeld zijn. ethereum.org noemt het goedkeuren van zo'n transactie zonder te weten wat erin staat een groot veiligheidsrisico. Hoe oplichters daar misbruik van maken, lees je bij crypto-oplichting herkennen.

Smart contracts gebruik je vanuit een eigen wallet, zoals MetaMask. Op Ethereum betaal je de netwerkkosten in ether. Op de pagina over ethereum kopen zie je welk platform met een MiCA-vergunning je voor jouw bedrag de meeste ETH geeft.

Meer vragen over crypto

Alle 35 vragen