Begin 2014 kondigde de Russische programmeur Vitalik Buterin het idee aan voor een nieuw decentraal netwerk dat net als de bitcoin gebruikmaakt van de blockchaintechnolgie. Dit idee noemde hij Ethereum.
Inmiddels is Ethereum uitgegroeid tot een wereldwijde netwerk van computers waarop duizenden decentrale applicaties draaien. De digitale valuta ether is zelfs de tweede grootste cryptomunt geworden. In deze uiteenzetting zullen we Ethereum proberen in heldere taal uit te leggen.
Wat is Ethereum en hoe werkt het?
Inhoud
Wat is Ethereum?
Ethereum is een decentraal netwerk dat gebruikmaakt van de blockchaintechnolgie. Op dit netwerk is het mogelijk om applicaties te draaien die gedistribueerd worden over het gehele netwerk. Deze applicaties worden ook wel DApps (decentralized apps) genoemd. Doorat de applicaties over heel het netwerk worden verspreid is de kans dat individuele applicaties offline gehaald worden vrijwel onmogelijk. Het resultaat is dat DApps resistent zijn tegen verlies van data, manipulatie en censuur.
Het netwerk van Ethereum is ook de thuisbasis voor de ether, een digitale valuta die functioneert als een soort brandstof. De ethers zijn nodig om wijzigingen aan te brengen in de blockchain van Ethereum. Als gebruikers onderling transacties uitvoeren op het netwerk dienen ze hierover transactiekosten te betalen. De opbrengsten hiervan gaan naar de miners die zorgen dat de transactie wordt opgenomen in de blockchain.
Veel bedrijven zijn ook aangetrokken tot deze nieuwe techniek, mede doordat zij gebruik kunnen maken van het Ethereum-netwerk en doormiddel hiervan nieuwe innovaties op de markt kunnen brengen. Denk bijvoorbeeld aan een koelkast die automatisch een nieuwe voorraad kan bestellen en dus beschikt over zijn eigen budget.
Het platform van Ethereum heeft ook zijn eigen programmeertaal die Solidity genoemd wordt. Developers kunnen van de Ethereum-blockchain gebruik maken en met Solidity eigen applicaties bouwen en cryptovaluta lanceren. Smart contracts en DAO’s zijn voorbeelden van interessante toepassingen die mogelijk zijn dankzij Ethereum.
Hoe werkt Ethereum?
We kunnen Ethereum zien als een stapel van lagen bovenop elkaar. De eerste, basislaag die al het andere mogelijk maakt, is een groot netwerk van computers die transacties verwerken en een gedeelde database in de loop van de tijd up-to-date houden (de Ethereum-blockchain). De tweede is de softwarelaag waarmee ontwikkelaars programma’s kunnen uitvoeren die smart contracts worden genoemd op de Ethereum-blockchain, met behulp van de programmeertaal Solidity. De derde laag bestaat uit applicaties die verschillende services bieden (van governance tot identiteitsbeheer). Het opmerkelijke aan dit platform is dat door gebruik te maken van de hardware- en softwarelagen van Ethereum deze applicaties gedecentraliseerd zijn, geen centraal punt van falen hebben en niet te stoppen zijn. Je kunt de apps gewoon niet uitschakelen.
Laten we elk van deze lagen in detail bekijken.
Ethereum-hardwarelaag: blockchain
Het meeste van wat je op het internet ziet, inclusief dit artikel, wordt gehost door een server in een datacenter ergens in de wereld. Wanneer je jouw browser opent en op internet surft, maakt je computer (client) verbinding met dergelijke servers en downloadt de inhoud die je zoekt. Deze client-serverinfrastructuur was bedoeld voor een internet met weinig gecentraliseerde opslagplaatsen (servers) die inhoud naar veel gebruikers (clients) zouden verspreiden. Het internet van vandaag verbindt echter veel clients met andere clients, omdat we allebei makers en gebruikers van inhoud zijn (Web 2.0). Computers kunnen in een groot netwerk met elkaar worden verbonden en inhoud aan elkaar doorgeven van de computer die het heeft gegenereerd naar de computer die het heeft aangevraagd. Deze grote groep computers die inhoud aan elkaar doorgeven, staat bekend als een ‘peer-to-peer-netwerk’.
De Ethereum-hardwarelaag is een peer-to-peer-netwerk van computers die transacties berekenen en op volgorde houden in een gedeeld grootboek. Hierdoor kunnen ze een gedistribueerde database opbouwen die alle informatie kan bijhouden die in het netwerk wordt gedeeld: alle transacties die plaatsvinden. Elke computer in het netwerk wordt ‘node’ genoemd, en valideert inkomende transacties en organiseert deze in blokken die vervolgens worden uitgezonden naar het hele Ethereum-netwerk. Hieronder zie je het Ethereum-netwerk van computers die transacties in realtime verwerken.
Transacties kunnen zowel waarde als informatie bevatten. De waarde wordt uitgedrukt in ‘ether’, de digitale valuta van het Ethereum-platform. En de informatie is code die gegevens kan doorgeven en acties kan activeren. Dit is relevant voor de softwarelaag van Ethereum, voor de hardwarelaag houden we gewoon in het achterhoofd dat het bestaat uit honderden computers verspreid over de planeet die via internet met elkaar verbonden zijn.
Iedereen kan zijn / haar eigen computer aanbieden om de transacties van het netwerk te verwerken door simpelweg wat code op zijn / haar laptop uit te voeren. Er is een schema van incentives dat de groei van het Ethereum-netwerk bevordert, in feite worden degenen die de nodes beheren beloond in ethers – dat is een waardevol bezit omdat het kan worden gebruikt om gebruik te maken van de toepassingen die op het platform worden uitgevoerd.
Dit zou voldoende moeten zijn om je een algemeen begrip van de Ethereum-hardwarelaag te geven. Als je wilt weten hoe deze computers de werk- en procestransacties coördineren, moet je de werking van de blockchaintechnologie leren: dit artikel is een goed begin (het gebruikt Bitcoin blockchain als voorbeeld om de technologie uit te leggen, maar de meeste de inhoud is ook geldig voor Ethereum).
Ethereum softwarelaag: Solidity
De flexibiliteit van het Ethereum-platform maakt het populair bij de vroege liefhebbers van Bitcoin en blockchain. Hoewel Bitcoin is ontworpen als een valuta om waarde tussen verschillende gebruikers af te handelen, is Ethereum ontwikkeld om het gebruik van Bitcoin-ondergeschikte technologie uit te breiden en een bredere algemene blockchain te bouwen.
De Ethereum-softwarelaag is gebouwd om de transactie van waarde in elke waarde of vorm mogelijk te maken, zijnde het een valuta, een huis, een identiteit, de rechten om een nummer te gebruiken of te reproduceren of een ander actief dat je maar kan bedenken.
Om dit te doen, is een geheel nieuwe programmeertaal gecreëerd, deze wordt ‘Solidity’ genoemd. Voor degenen die softwareontwikkelaars zijn, is het vergelijkbaar met JavaScript. Met behulp van Solidity-programmeurs kunnen eenvoudige programma’s worden gebouwd, ‘smart contracts’ genaamd, die basisstrategieën voor transacties kunnen implementeren.
Alle Ethereum-code is open source en online beschikbaar op Github. In feite kan iedereen de code van bovenstaande afbeelding gratis downloaden (en gebruiken) om een nieuwe applicatie te ontwikkelen. Het open source karakter van Ethereum staat iedereen toe die wil bijdragen om nieuwe code te schrijven en online te delen, nieuwe functies te ontwikkelen of het algemene platform te versterken door bugs te repareren. Dit betekent ook dat het platform van Ethereum op de een of andere manier zichzelf ontwikkelt, omdat de gemeenschap voortdurend nieuwe code toevoegt, net zoals Wikipedia redacteuren heeft die nieuwe artikelen toevoegen en de bestaande bewerken.
Iedereen kan leren programmeren in Solidity, er zijn veel gratis bronnen online, zoals de officiële website van Ethereum of deze gamified lessen met zombies.
Samengevat stelt de softwarelaag van Ethereum softwareontwikkelaars in staat om slimme contracten te ontwerpen die programmeerbare overdracht van waarde mogelijk maken. Alle code voor slimme contracten is openbaar, dus iedereen kan controleren wat deze programma’s daadwerkelijk uitvoeren.
Ethereum-applicatielaag: dApps
Door de combinatie van de hierboven beschreven hardware- en softwarelagen kan Ethereum werken als een wereldwijde, gedecentraliseerde supercomputer waarop applicaties van derden kunnen worden uitgevoerd.
Zelfs als veel early adopters de functie “token emission” van Ethereum gebruiken om fondsen te werven voor nieuwe projecten (Initial Coin Offerings), breiden de toepassingen van Ethereum veel verder dan de financiële sector. Er zijn meer dan 900 applicaties gebouwd op Ethereum, ongeveer 30% van hen zijn live, terwijl de andere 70% nog in ontwikkeling zijn.
Vanwege het open en transparante karakter van Ethereum kwamen veel ontwikkelaars over de hele wereld samen en bouwden een sterke en grote community die momenteel bezig is om de functionaliteiten en toepassingen van dit platform uit te breiden.
Het bouwen van openbare, gedecentraliseerde applicaties heeft verschillende voordelen die beter presteren dan particuliere, gecentraliseerde applicaties, in het bijzonder:
- Transparantie: iedereen kan de code lezen en ervoor zorgen dat de applicatie doet wat hij belooft. Alle transacties zijn ook openbaar en kunnen worden gevolgd.
- Veerkracht: het is moeilijk of vrijwel onmogelijk om die applicaties te stoppen zodra ze op Ethereum worden uitgevoerd.
- Betere code: omdat de code openbaar is en elke hacker deze kan lezen, moeten bugs snel en effectief worden opgelost, wat resulteert in een hogere kwaliteit en betrouwbaardere code.
Nieuwe projecten worden elke dag opgestart en verschillende applicaties op het platform zijn gericht op het verbeteren van de wereld waarin we leven, net als dit project van het WWF.
Het lijkt erop dat Ethereum een grote rol kan spelen bij het verschuiven van ons huidige gecentraliseerde internet naar een meer transparante, op privacy gerichte en gelijke toekomst.
Wat zijn smart contracts en DAO’s?
Een smart contact (ofwel slim contract) is een applicatie die draait op het netwerk van Ethereum en automatisch een reeks van handelingen uitvoert. Denk bijvoorbeeld aan een If this, then that (IFTT). Doordat het contract draait op de Ethereum-blockchain kan deze niet in de tussentijd worden aangepast of stopgezet. De regels die worden afgesproken zijn door niemand meer te veranderen.
Het automatisch uitbetalen van alimentatie naar een ex-partner zou een voorbeeld kunnen zijn van een smart contract. Of wat dacht je dat bij elke transactie automatisch de btw direct naar de belastingdienst wordt verzonden? Andere denkbare toepassingen zijn het voorkomen van fraude, misbruik of manipulatie bij bijvoorbeeld ophaalacties voor een goeddoel. Met smart contracts is het mogelijk om geld te programmeren.
Het is ook mogelijk om een volledig virtueel bedrijf te bouwen aan de hand van een smart contact. Organisaties zouden volledig kunnen draaien op de blockchain van Ethereum en zo de continuïteit waarborgen. Dit type van organisaties worden DAO’s (Decentralized Autonomous Organisation) genoemd.
Nieuwe bedrijven kunnen Ethereum ook gebruiken om eigen cryptocurrencies uit te geven en in eerste instantie een soort aandelen uitgaven te houden. Organisaties die geld willen ophalen voor hun project doen dit middels een ICO (Initial Coin Offering). De ‘token’ die wordt uitgebracht staat in principe helemaal los van het netwerk waar het op draait en heeft ook weinig te maken met de prijs van de ether. Coins (of tokens) die draaien op de blockchain van Ethereum staat ook bekend als ERC-20 tokens.
Zie ook: