Een Smart Contract is een belangrijk begrip binnen de wonderen wereld van de blockchain, maar wat is een Smart Contract precies?
Smart Contracts lijken op traditionele contracten zoals wij deze al lang kennen. Denk bijvoorbeeld aan een contract dat eigendom over een auto van persoon A naar persoon B verplaatst. Smart Contracts hebben echter bijzondere eigenschappen, waardoor veel mensen erg enthousiast zijn over de mogelijke toepassingen!
Smart Contracts zijn volledig digitale contracten tussen twee of meer partijen (“nodes”). Deze contracten zijn opgebouwd uit code, worden opgeslagen op de blockchain en zijn dus onmogelijk naderhand te veranderen (zie ook: Hoe werkt de Blockchain?). Een Smart Contract wordt automatisch uitgevoerd zodra aan de (vooraf geprogrammeerde) voorwaarde is voldaan.
‘Smart’ wil niet zeggen dat het contract kan nadenken (zoals mensen), of op een andere manier kan anticiperen op gebeurtenissen. Het contract is opgebouwd uit code en zal een vaste handeling X uitvoeren bij gebeurtenis Y.
Voorbeeld: Weddenschap op de Blockchain
Een Smart Contract is een complex begrip dat veel toepassingen kent. Het is echter belangrijk eerst de basis te begrijpen met het simpelste voorbeeld: een weddenschap!
Theo en Jos besluiten 10 euro in te zetten op een voetbalwedstrijd tussen Barcelona en Real Madrid. Ze spreken de volgende voorwaarden af:
- Wint Barcelona, dan krijgt Theo 20 euro;
- Wint Real Madrid, dan krijgt Jos 20 euro;
- Spelen ze gelijk, dan krijgen Theo en Jos beide 10 terug.
Ze besluiten deze weddenschap vast te leggen op de blockchain middels een Smart Contract. Zodra de wedstrijd is afgelopen en de uitslag bekend is, wordt het contract uitgevoerd en wordt de betaling (of meerdere, indien gelijkspel!) automatisch verricht.
Toen het Smart Contract op de blockchain was geplaatst, was het voor Theo en Jos niet mogelijk om het contract aan te passen: alles was vastgelegd op de blockchain.
Voorbeeld: Crowdfunding met een Smart Contract
Nu de essentie van een Smart Contract duidelijk is, is het tijd voor een voorbeeld op grotere schaal: crowdfunding! Kickstarter is een bestaand crowdfunding platform dat teams in staat stelt geld in te zamelen om nieuwe producten te lanceren.
Kickstarter werkt zo: een team lanceert een campagne en geeft aan vanaf welk bedrag ze het product gaan produceren. Als die grens niet wordt gehaald, krijgt het team geen geld (van Kickstarter, de partij die het geld als tussenpartij houdt) en krijgen backers (mensen die geld hebben gestort) hun geld terug. Als de grens wél wordt gehaald, stort Kickstarter het bedrag naar het project team en kunnen ze beginnen met de ontwikkeling.
Er zijn hier twee partijen bij een transactie betrokken:
- Project Teams (moeten Kickstarter vertrouwen dat als het minimumbedrag is behaald, zij het geld krijgen);
- Backers (moeten Kickstarter vertrouwen dat ze hun geld terugkrijgen als het minimumbedrag niet wordt behaald).
Welke rol kan de Blockchain hier spelen?
De bovenstaande situatie is gemakkelijk te creëeren met een Smart Contract op de blockchain. Mensen kunnen direct geld sturen naar het contract en kunnen er zeker van zijn dat ze hun geld terugkrijgen als het minimumbedrag niet wordt gehaald. Project Teams zijn er zeker van dat zij het geld krijgen, als het minimumbedrag is gehaald. De code van het Smart Contract is publiek inzichtelijk voor iedereen.
Kickstarter is nu niet langer nodig als derde partij, wat het vertrouwen dat zowel de teams als de backers in Kickstarter moeten hebben, niet langer nodig is. Daarnaast ontvangt Kickstarter niet langer een marge, waardoor uiteindelijk meer geld wordt besteed aan het project zelf.
Blockchain Generaties
De eerste generatie blockchain, Blockchain 1.0, werd vooral gebruikt om geld over te maken zonder tussenkomst van een derde partij. Blockchain 2.0 gaat een stap verder met Smart Contracts (en meer): programmeerbare transacties (onderheven aan vooraf vastgelegde condities) die automatisch uitgevoerd worden als aan de voorwaarden is voldaan.