Smart contracts zijn onlosmakelijk verbonden aan blockchains. Waar ‘s werelds eerste blockchain is ontwikkeld voor het laten draaien van cryptocurrencies, zien we dat vandaag ontwikkelde blockchains zich voornamelijk focussen op smart contracts. Niet gek, want smart contracts liggen aan de basis van een groot aantal nieuwe sectoren. Denk aan DeFi (Decentralized Finance), yield farming en Play-to-Earn (P2E) games.
Het is verstandig de basis van deze sectoren te begrijpen, en dat begint bij smart contracts. Hieronder leggen we je uit wat smart contracts zijn, hoe ze werken en waar je ze voor kunt inzetten.
Wat is een smart contract?
Een smart contract, ofwel slim contract, is een digitaal contract dat op de blockchain staat en automatisch handelingen kan uitvoeren zodra aan de vooraf ingestelde voorwaarden is voldaan. Dit betekent dat een smart contract niets meer dan een code is die met een programmeertaal is geschreven.
Je zou een smart contract kunnen zien als de digitale versie van een normaal contract. In een normaal contract zijn afspraken opgenomen. Alle betrokken partijen moeten zich aan de afspraken in het contract houden. Doen ze dat niet, zullen de afgesproken handelingen niet worden uitgevoerd.
Dat werkt ook zo bij traditionele contracten. In het koopcontract van een huis staat bijvoorbeeld dat de koper de sleutel krijgt zodra hij/zij de koopsom voor de afgesproken datum heeft overgemaakt naar de notaris. Deze notaris houdt toezicht en zorgt ervoor dat partijen hun afspraken nakomen.
De blockchain werkt decentraal, en er is daarom geen ruimte voor centrale partijen, zoals een notaris. Alles gebeurt volledig automatisch, zonder tussenkomst van derden. Iedere mogelijkheid moet daarom worden opgenomen in een smart contract.
Voorbeeld van een smart contract
Je begrijpt de werking van smart contracts misschien beter met een voorbeeld. Laten we zeggen dat Anne het huis van Jeroen wil kopen, en het koopcontract als smart contract op de blockchain staat geprogrammeerd.
De deur van het huis kan geopend worden met een toegangscode. Deze toegangscode is alleen bij Jeroen bekend. Zodra Anne 20 Bitcoins naar Jeroen heeft gestuurd, zal Anne de toegangscode ontvangen. Tijdens het opstellen van het smart contract hebben zowel Jeroen als Anne hun wallet adres ingevoerd. Zo kan het smart contract controleren of er een transactie heeft plaatsgevonden. De blockchain is immers transparant en kan dus alle transacties volgen.
Jeroen heeft de toegangscode van het huis naar het smart contract gestuurd, waardoor het smart contract in dit geval ook als escrow werkt. Alleen wanneer Anne 20 Bitcoins naar Jeroen heeft gestuurd, ontvangt Anne de toegangscode. Dat gebeurt volledig automatisch.
Het smart contract zorgt er in dit geval dus voor dat er geen notaris nodig is. Dit betekent dat de verkoop van het huis peer-to-peer uitgevoerd kan worden, er is met andere woorden geen tussenpersoon. Ook is er geen wederzijds vertrouwen nodig. Anne krijgt namelijk alleen de toegangscode wanneer Jeroen 20 Bitcoin heeft ontvangen. Het is dus onmogelijk om Jeroen op te lichten of onder het contract uit te komen.
Wie de eigenaar of beheerder is van het smart contract maakt eigenlijk niet veel uit. Want het is enkel de uitvoering van het contract dat wordt opgeslagen in de blockchain.
De toepassingen van smart contracts
Een groot aantal sectoren is ontstaan uit smart contracts die op de blockchain draaien. Denk aan DeFi, yield farming, de metaverse, Play-to-Earn games, en ga zo maar door. Iedere dag worden er nieuwe toepassingen voor smart contracts gevonden. Maar smart contracts zouden ook al binnen bestaande sectoren gebruikt kunnen worden.
1) Vastgoed
Vastgoedtransacties zouden volledig op de blockchain kunnen plaatsvinden wanneer men smart contracts gebruikt, zoals je in bovenstaand voorbeeld hebt kunnen lezen. Niet alleen voor het verkopen van vastgoed, maar ook voor verhuur kunnen smart contracts ingezet worden.
Huurders zouden met hun code alleen toegang tot het appartement kunnen krijgen wanneer ze maandelijks op tijd de huur betalen. Het zorgt ervoor dat verhuurders geen administratie meer hoeven bij te houden, en ook geen deurwaarders hoeven in te schakelen zodra een huurder niet heeft betaald.
2) Gezondheidszorg
Patiëntgegevens kunnen veilig op de blockchain bewaard worden. Alles is versleuteld door middel van encryptie, waardoor alleen de daarvoor gerechtigde partijen toegang tot data kunnen krijgen. Als patiënt kun je aangeven welke zorginstellingen toegang tot je gegevens mogen krijgen.
Op deze manier kunnen patiëntgegevens makkelijker gedeeld worden. Dat is extra handig wanneer je naar een andere zorginstelling gaat of in het buitenland behandeld moet worden. Normaal gesproken zou het lang kunnen duren voordat patiëntgegevens gedeeld worden.
3) Verzekeringen
Bij het bepalen van de premie kijken verzekeringsmaatschappijen naar hoe vaak je beroep doet op je verzekering. In sommige gevallen ben je echter niet zelf de schuldige, terwijl je hierdoor wel meer premie betaalt.
Je zou gebeurtenissen vast kunnen leggen op de blockchain, waarna smart contracts kunnen bepalen hoe vaak je zelf ‘schuldig’ bent aan het maken van schade. Verzekeringsmaatschappijen hebben veel minder personeel nodig wanneer ze gebruik maken van smart contracts.
4) Logistiek
Bedrijven zouden hun productie door middel van smart contracts naar de blockchain kunnen verplaatsen. Klanten kunnen zo precies zien waar grondstoffen vandaan komen en waar producten ontwikkeld zijn.
Ook kunnen orders volledig geautomatiseerd worden. Wanneer een proces klaar is, kan het volgende proces automatisch uitgevoerd worden. Het zorgt ervoor dat logistieke bedrijven minder personeel nodig hebben en processen efficiënter worden uitgevoerd.
5) Muziekindustrie
Muzikanten verliezen veel geld doordat mensen illegaal muziek kunnen downloaden. Zij zouden albums en nummers ook door middel van smart contracts kunnen lanceren. Wanneer je een nummer alleen middels een smart contract kunt beluisteren, krijgen muzikanten automatisch geld wanneer iemand naar hun muziek luistert.
6) Politiek
Ook bij verkiezingen kan men smart contracts inzetten. Het stemproces verloopt op deze manier een stuk efficiënter dan nu het geval is. Het smart contract houdt bij dat iedere burger slechts één keer kan stemmen. Ook is het mogelijk om stemmen direct te tellen, waardoor de uitslag eerder bekend is. Er zijn dus veel minder mensen nodig wanneer men gebruik maakt van smart contracts.
De voordelen van smart contracts
- Geen tussenpartij nodig – Het is niet nodig om een derde partij, zoals een notaris, in te schakelen voor controle en uitvoering van het contract.
- Meer vertrouwen – Een smart contract voert pas een handeling uit zodra men aan de voorwaarden heeft voldaan. Betrokken partijen kunnen daarom volledig op het smart contract vertrouwen.
- Transparant – Iedereen kan zien wat de voorwaarden van het contract zijn, en of betrokkenen zich aan de afspraken heeft gehouden.
- Goedkoop – Geen kosten voor een derde partij. Men betaalt alleen transactiekosten voor het gebruik van het smart contract.
- Accuraat – Computercode is een stuk accurater dan mensen.
- Veilig – Alles wordt beveiligd door middel van encryptie. Daarbij is het onmogelijk om aanpassingen te doen zodra een smart contract op de blockchain draait.
Hoe werkt een smart contract?
Smart contracts werden pas echt bekend toen het mogelijk was om ze op blockchains te ontwikkelen. Echter werd de eerste smart contract in 1994 door Nick Szabo ontwikkeld. Een aantal jaar later, in 1998, bedacht Szabo ‘s werelds eerste digitale valuta, genaamd Bit Gold. Pas in 2014, toen Ethereum werd gelanceerd, werden smart contracts pas echt populair.
Hoe werken blockchains?
Een smart contract kan niet op iedere blockchain draaien. De blockchain moet niet alleen ondersteuning bieden, maar ook geoptimaliseerd zijn voor smart contracts.
Het is bijvoorbeeld mogelijk om smart contracts op Bitcoin te programmeren, terwijl de blockchain hier niet voor geoptimaliseerd is. Bitcoin is immers ontwikkeld voor de uitvoering van betalingen. Toch draaien er een aantal smart contracts op Bitcoin, waar Lightning Network en Rootstock twee voorbeelden van zijn.
Ethereum is niet alleen ontwikkeld voor de verwerking van transacties, maar vooral geoptimaliseerd voor smart contracts. Men kan van een ontwikkelaar-vriendelijke omgeving gebruik maken wanneer ze een smart contract willen programmeren. Het nadeel is dat het grootste aantal ontwikkelaars hun smart contract op Ethereum ontwikkelen, waardoor de blockchain schaalbaarheidsproblemen heeft. Het netwerk kan het grote aantal transacties niet meer aan, waardoor het veel tijd en geld kost om een transactie uit te voeren.
De afgelopen jaren zijn er een groot aantal blockchains voor smart contracts ontwikkeld. Denk aan de Binance Smart Chain (BSC), Cardano (ADA), Solana (SOL) en Avalanche (AVAX). Deze blockchains leggen hun focus voornamelijk op de schaalbaarheid. Ze willen dat gebruikers en ontwikkelaars zo snel en goedkoop mogelijk transacties kunnen verwerken, waardoor het aantrekkelijker wordt om van deze smart contracts gebruik te maken.
Het nadeel van deze blockchains is dat ze minder breed geadopteerd zijn. In veel gevallen werkt de blockchain pas optimaal zodra een groot aantal ontwikkelaars ervoor kiest hun smart contract hier te programmeren.
Wat zijn de programmeertalen?
Smart contracts kunnen in verschillende programmeertalen ontwikkeld worden. Iedere blockchain kan een andere programmeertaal vereisen. Over het algemeen zien we dat onderstaande programmeertalen het vaakst gebruikt worden voor de ontwikkeling van smart contracts.
- Solidity. Dit is de meest gebruikte programmeertaal voor smart contracts, en ontwikkeld door en voor Ethereum. Sinds Ethereum Solidity gebruikt, zijn ook veel andere blockchains deze programmeertaal gaan gebruiken.
- Vyper. Het is een van de nieuwste programmeertalen voor smart contracts, welke is ontstaan uit Python 3. Vyper wordt gezien als alternatief voor Solidity, en gaat anders om met beveiligingsproblemen.
- JavaScript. Misschien wel de bekendste programmeertaal ter wereld. JavaScript kan ook gebruikt worden voor de ontwikkeling van smart contracts.
- Rust. Steeds vaker zien we dat ontwikkelaars smart contracts met Rust programmeren. Rust is vrij makkelijk onder te knie te krijgen en werkt erg efficiënt.
De uitdagingen van smart contracts
Smart contracts kennen veel voordelen, zoals je hierboven hebt kunnen lezen. Toch kennen smart contracts ook nog een aantal uitdagingen.
1) Meer regulatie nodig
Op dit moment kunnen smart contracts nog niet voor officiële gelegenheden ingezet worden. Er is namelijk geen regulatie voor smart contracts. Voordat smart contracts breed gebruikt kunnen worden, zullen overheden de technologie moeten reguleren.
2) Te afhankelijk van ontwikkelaars
Een tussenpartij lijkt verleden tijd te zijn. Het programmeren van een smart contract is vrij complex, en daarom zul je een ontwikkelaar nodig hebben die zichzelf heeft gespecialiseerd binnen smart contracts. Dit betekent dat er dus toch nog een extra partij nodig is.
3) Met alles moet rekening gehouden worden
Een situatie kan verschillende kanten op gaan. Wanneer een notaris betrokken is bij de uitvoering van een contract, is het makkelijker om op onverwachte situaties in te spelen. Een smart contract moet van te voren geprogrammeerd worden, waardoor men bij de ontwikkeling al met iedere situatie rekening moet houden.
4) Oracle probleem
Oracles zijn protocollen die centrale data kunnen omzetten naar de blockchain. Smart contracts kunnen breed ingezet worden zodra centrale systemen aan blockchains gekoppeld worden. Daarvoor moet men wel het oracle probleem oplossen. Centrale data die naar de blockchain gestuurd wordt, moet gecontroleerd worden. De blockchain werkt decentraal, en er is dus geen centrale partij die kan controleren of data ook daadwerkelijk klopt (of dat iemand expres verkeerde data verstuurd).
5) Problemen met veiligheid
Smart contracts zijn erg veilig. Toch heeft het verleden bewezen dat smart contracts veel veiligheidsproblemen kunnen ondervinden. Deze technologie staat immers nog in zijn kinderschoenen. Men zal nog veel moeten testen en verbeteren voordat we smart contracts op brede schaal kunnen inzetten.
6) Schaalbare blockchains zijn nodig
De belangrijkste blockchain voor smart contracts (Ethereum) ondervindt veel problemen met zijn schaalbaarheid. Het duurt lang en kost veel geld om een transactie te verwerken. Dit zorgt ervoor dat smart contracts praktisch lastig ingezet kunnen worden. We zullen dus blockchains nodig hebben die veiliger, sterker en schaalbaarder zijn dan huidige blockchains.
Hoe ziet de toekomst van smart contracts eruit?
Nog geen 10 jaar geleden werden de eerste smart contracts op de blockchain van Ethereum ontwikkeld. Sinds dat moment is er veel gebeurd. Het is daarom interessant om te kijken naar de rol die smart contracts in onze toekomst gaan spelen.
De kans is groot dat smart contracts steeds vaker ingezet gaan worden, mits bovenstaande problemen en uitdagingen verholpen worden. Regulatie is waarschijnlijk het grootste obstakel.
Het is een kwestie van tijd voordat blockchains schaalbaarder zijn en problemen rondom veiligheid zijn opgelost. Ook is de kans groot dat het in de toekomst steeds makkelijker wordt om smart contracts te programmeren en in te zetten.
Echter, zolang smart contracts juridisch gezien niet gebruikt kunnen worden, hebben deze verbeteringen geen invloed op de inzetbaarheid van smart contracts. Overheden zullen daarom wet- en regelgeving moeten opzetten, zodat we smart contracts binnen een groot aantal sectoren kunnen inzetten.
Conclusie
Deze uitleg over smart contracts heeft je hopelijk geholpen om beter te begrijpen wat een slim contract is. Bitcoin is de eerste blockchain ter wereld die werd ontwikkeld om betalingstransacties te verwerken. Meer dan tien jaar later worden blockchains ingezet voor het laten draaien van smart contracts. Niet gek, want smart contracts kunnen voor een groot aantal toepassingen worden ingezet.
Doordat ontwikkelaars met smart contracts applicaties, dApps, kunnen ontwikkelen op blockchains, zijn een groot aantal nieuwe sectoren ontstaan. Yield farming, NFT’s, P2E-games en de metaverse zijn hier maar een aantal voorbeelden van. Niet alleen nieuwe sectoren, maar ook huidige sectoren kunnen smart contracts gebruiken. Denk aan de logistiek, gezondheidszorg, verzekeringen en vastgoed.
Smart contracts worden steeds populairder. Ze zijn decentraal, goedkoop, accuraat, transparant en veilig. Toch moet men een groot aantal uitdagingen zien op te lossen voordat we smart contracts kunnen gebruiken binnen ons dagelijkse leven. Het grootste obstakel hierbij is de regulatie van smart contracts.