Blockchain en coderen: hoe wordt een smart contract gecodeerd?

with Geen reacties

De term smart contract is wellicht een beetje ongelukkig gekozen, omdat een dergelijke digitale overeenkomst niet vanzelf slim is en ook niet mag worden verward met het bestaande traditionele wettelijke contract. Een smart contract op de blockchain kan alleen maar zo slim zijn als dat de programmeur hem heeft ontworpen, aan de hand van alle beschikbare relevante informatie. En ondanks het feit dat de smart contracts in de toekomst misschien ooit dezelfde juridische status krijgen als onze bestaande contracten, is het voorlopig nog lang niet zover. De eerste overeenkomsten op de blockchain die door het bedrijfsleven en particulieren worden gebruikt, zullen waarschijnlijk een combinatie zijn van smart contracts en reguliere wettelijke overeenkomsten.

Man achter computer, programmeur, coderen

Wanneer een smart contract wordt geprogrammeerd dan zijn de volgende elementen belangrijk:

  • Een voorgedefinieerde overeenkomst
  • Triggers bij specifieke gebeurtenissen
  • De uitvoering en waardeoverdracht
  • Registratie op de blockchain
Programmeren, coderen
Tutorial: smart contracts programmeren op de Ethereum blockchain

Voorgedefinieerde overeenkomst

De voorwaarden voor de uitvoering van het contract zijn vooraf overeengekomen met alle bij de overeenkomst betrokken partijen. Hierbij kan het bijvoorbeeld gaan over variabele rentes en wisselkoersen (bij financiële contracten), maar ook bijvoorbeeld om de voorwaarden voor het verhuren van een vakantieappartement (zoals de borg die door de huurders moet worden betaald).

Logo van de Solidity programmeertaal
Solidity voor beginners: coderen van smart contracts

 

Triggers bij gebeurtenissen

Binnen het contract kunnen bepaalde triggers worden gecodeerd. Deze triggers zorgen er vervolgens voor dat er bij een zekere gebeurtenis, een vooraf gedefinieerde actie volgt. Wat moet er gebeuren in welk situatie? Wanneer moet er precies een transactie worden uitgevoerd? Op welk moment moet er bepaalde informatie worden gedeeld en met wie allemaal?

 

Uitvoering en waardoverdracht

Hoe en wanneer een smart contract moet worden uitgevoerd is dus exact voorgeprogrammeerd. Er kan dan ook alleen waardeoverdracht plaatsvinden, als aan alle voorwaarden en condities is voldaan.

Blockchainnetwerk, afbeelding linkt naar een tutorial die dieper ingaat op het coderen van smart contracts
Tutorial: coderen van smart contracts

 

Registratie op de blockchain

Digitale assets zoals virtuele valuta worden automatisch binnen de blockchain geregistreerd. Wanneer cryptocurrency-tokens een bepaalde waarde buiten de blockchain vertegenwoordigen (off-chain), zoals bijvoorbeeld aandelen, onroerende goederen of reguliere valuta, dan zullen alle voorgeprogrammeerde condities (binnen en buiten de blockchain) met elkaar in overeenstemming moeten zijn. Wanneer dat niet het geval is dan vindt de transactie niet plaats.

Blokken van de blockchain. Afbeelding linkt naar een tutorial over het coderen van smart contracts
Tutorial: introductie programmeren van smart contracts

Voorbeeld van het coderen van een smart contract:

Als twee partijen elkaar niet of nauwelijks kennen maar graag zaken met elkaar willen doen, dan is er in verreweg de meeste situaties altijd een betrouwbare derde partij nodig, om te bemiddelen en de transacties te bekrachtigen. Blockchaintechnologie en de gecodeerde smart contracts nemen als het ware de plaats in van die betrouwbare derde partijen. Stel nu dat Henk zijn motor wil verkopen voor minimaal € 18.000. Hij heeft een Kawasaki van nog geen drie jaar oud, maar heeft inmiddels iets anders op het oog.

Kawasaki, motor

Welke informatie kan er in een smart contract worden gecodeerd?

Evelien is op haar beurt juist op zoek naar een nog niet zo oude Kawasiki en heeft de motor van Henk dan ook al snel online gevonden. Op het moment dat ze het besluit heeft genomen om de motor van Henk te kopen dan zijn er normaal gesproken meerdere partijen nodig om de deal rond te maken zoals banken, de RDW voor de registratie van het voertuig, de verzekeringsmaatschappij en wellicht een notaris. Wanneer deze partijen binnen de blockchain worden geïntegreerd, dan kan er in het smart contract precies worden gecodeerd wat de exacte rol is van iedere partij en op welke momenten zij specifieke acties moeten ondernemen.

Nodes, uitleg blockchain, Ethash

Nodes verifiëren de transactie

Als Evelien de Kawasaki van Henk wil overnemen door middel van een smart contract op de blockchain, dan kan de transactie worden geverifieerd door iedere node binnen het netwerk. Er kan dan worden gecontroleerd of Henk daadwerkelijk de legitieme eigenaar is van de motor, maar ook of Evelien wel genoeg geld heeft om de Kawasaki überhaupt te kunnen kopen. Als het blockchain-ecosysteem heeft geverifieerd dat aan alle condities uit het smart contract is voldaan, dan kan de verkoop worden afgerond.

Sleutels, de afbeelding linkt naar een video waarin wordt uitgelegd wat de functie is van private en publieke sleutels is binnen een blockchainnetwerk
Video: eenvoudige uitleg van asymmetrische encryptie

Publieke en private sleutels

Henk heeft zijn Kawasaki met de motorsleutels gestald in een garage met een smart lock ergens in Den Haag. Dit smart lock wordt gecontroleerd door een smart contract. Ook de Kawasaki heeft een eigen blockchain-adres. Henk identificeert zich met zijn blockchain-adres (de publieke sleutel) en ondertekent het contract met zijn private sleutel. Evelien ondertekent het smart contract met haar eigen private sleutel en hierdoor verzendt zij € 18.000 vanaf haar eigen blockchain-adres (publieke sleutel), naar het blockchain-adres van Henk. In dit geval is het smart contract toegankelijk vanaf een webbrowser en kunnen eventuele andere relevante traditionele online diensten de contracten gebruiken vanuit de backend.

Silhouet motorrijder

Consensus en registratie op de blockchain

Wanneer de nodes consensus (overeenstemming) bereiken over alle informatie binnen de blockchain, dan wordt Evelien geregistreerd als wettige eigenaar van de Kawasaki, is Henk € 18.000 rijker en ontvangt Evelien automatisch de toegangscode van het smart lock van de garage in Den Haag. Hierna kan ze de motor ontgrendelen met het smart contract en de weg opgaan.

 

Infographic over het coderen van een smart contract

 

 

Op de hoogte blijven van de ontwikkelingen op het gebied van de blockchaintechnologie? Meld je dan nu aan voor onze blogpost!

 

Meld je aan voor de blogpost!
Ik ga ermee akkoord dat mijn naam en e-mailadres worden gedeeld met Mailchimp.
Met de blogpost van Uitleg Blockchain blijf je automatisch op de hoogte van de nieuwste ontwikkelingen omtrent de blockchain technologie.
We hebben een hekel aan spam. Uw e-mailadres zal niet worden verkocht of gedeeld met anderen (afgezien van het marketing automation platform dat wij gebruiken voor onze e-maillijst).

Leave a Reply