1. Ethereum, blockchain technologie die de wereld gaat veranderen?

Door xos op zaterdag 14 november 2015 11:19 - Reacties (13)
Categorie: -, Views: 4.737

Introductie

Ethereum heeft de potentie om de manier waarop wij met elkaar communiceren en afspraken maken fundamenteel te veranderen. Bij voldoende intresse zal ik in een serie van blogposts op een praktische en laagdrempelige manier uitleggen wat het project probeert te bereiken, welke problemen zijn en nog moeten worden overwonnen, en hoe de lezer gebruik kan maken van deze technologie. In deze post wordt een introductie gegeven over het project, hoe het ontstaan is en wat de mogelijkheden zijn.


Blockchain technologie
Om Ethereum te begrijpen is een korte uitleg over blockchain technologie noodzakelijk. Op internet zijn diverse bronnen te vinden die dit in detail uitleggen. Daarom beperkt deze uitleg zich tot het algemene principe.

De natuur geeft ons 1 universele waarheid die wetenschapper proberen te begrijpen en te formaliseren in de vorm van natuurwetten. Globaal werk het als volgt, een onderzoeker voert een experiment uit, publiceert bevindingen en doet een voorstel om de bestaande kennis uit te bereiden. Onderzoekers van over heel de wereld kunnen het onderzoek herhalen. Er kunnen dan 2 dingen gebeuren:
  1. Onderzoeker zijn niet in staat om de resultaten van het onderzoek te reproduceren, of zijn het niet eens met de conclusie van het rapport. Gevolg is dat het rapport verworpen zal worden.
  2. Onderzoekers zijn in staat om het onderzoek te reproduceren en zijn het eens met het voorstel in het rapport. Wanneer genoeg onderzoekers hun fiat hebben gegeven zal het voorstel uit het rapport toegevoegd worden aan de bestaande set aan kennis en als fundament dienen voor verder onderzoek.
Belangrijk om op te merken is dat iedereen een rapport kan publiceren en dat dit rapport door iedereen te controleren, te accepteren of te verwerpen is. Pas als de meerderheid het rapport heeft geaccepteerd zal het definitief geaccepteerd worden.

De blockchain werkt volgens een vergelijkbaar principe. In plaats van het publiceren van een rapport kan iedereen een blok publiceren. Een blok bouwt verder op een ouder blok en kan data bevatten. Ook hier geldt dat iedereen het blok en haar inhoud kan controleren, accepteren of verwerpen. Het fundamentele verschil met de wetenschap is dat de natuur een mysterie is wat wetenschappers proberen te ontrafelen terwijl in de blockchain wereld de regels waaraan een blok moet voldoen nauwgezet zijn gedefinieerd. Dit maakt het het controleren van een blok een eenvoudige taak die iedereen onafhankelijk, betrouwbaar en snel kan uitvoeren.

Om te voorkomen dat er een storm aan blokken worden gegenereerd die allemaal gecontroleerd moeten worden dient ieder blok de oplossing van een cryptografische puzzel te bevatten. In geval van Ethereum wordt er naar gestreeft om gemiddeld iedere 17 seconden om een oplossing te vinden en daarmee een geldig blok te maken (in geval van bitcoin is dit iedere 10 minuten).

Door in ieder nieuw blok een verwijzing op te nemen naar een vorig blok ontstaat een keten van blokken. Door de simpele afspraak dat de lange keten de dominante keten is kunnen deelnemers het eens worden over uit welke blokken de keten bestaat. We noemen dan dat het netwerk in consensus is. En dit biedt enorme mogelijkheden.


Bitcoin
Bitcoin was een van de eerste toepassingen van de blockchain en maakt het mogelijk om transacties in deze blokken op te nemen. Door heel precies de regels te beschrijven voor een transactie kan iedereen de transacties in het blok controleren. Op deze manier ontstaat consensus over welke transacties zijn uitgevoerd, wanneer en wat de huidige balans van een account is.

Een van de nadelen van Bitcoin is dat zich beperkt tot het sturen van een hoeveelheid bitcoins naar een adres. Daarom zijn er in de loop van de jaren diverse "alt coins" gekomen. Deze werken veelal op basis van de bitcoin technologie maar hebben een andere toepassing. Bijvoorbeeld door een domain naam aan een specifieke coin toe te kennen kan een DNS achtig systeem gemaakt worden waarbij de eigenaar van de coin eigenaar is van de domain naam. Nadeel van deze oplossing is dat de blockchains niet compatibel zijn en gebruikers dus meerdere clients moeten draaien.


Ethereum
Eind 2013 publiceerde Vitalik Buterin een white paper (https://github.com/ethereum/wiki/wiki/White-Paper) waarin hij omschreef hoe een virtuele machine (EVM) gecombineerd kan worden met de blockchain. Dit maakt het mogelijk om niet alleen eenvoudige transacties uit te voeren maar programma's op de blockchain te plaatsen waarbij iederen de uitvoer van deze programma's kan controleren. Dit biedt enorme voordelen:
  • Eens een programma op de blockchain is geplaatst kan deze niet meer gewijzigd worden. Als de maker van een programma ineens minder goede bedoelingen heeft (of een cracker) kan deze het programma niet ongemerkt aanpassen.
  • De uitvoer van een programma volgt een set aan nauw gedefinieerde regels en is dus door iedereen te controleren. Als er vreemde zaken gebeuren dan wordt het resultaat verworpen en wordt het blok met de malafide transactie verworpen.
  • Geen Single Point Of Failure, omdat de werking van de EVM zo strak is gedefinieerd kan iedereen transacties zelf uitvoeren en in een blok plaatsen en publiceren. Er is dus geen centrale partij noodzakelijk.
Vanwege deze sterke garanties worden deze applicaties smart contracts genoemd. En in feite zijn is dit ook een betere benaming. Partijen die elkaar niet kennen of vertrouwen kunnen gezamenlijk een smart contract opstellen en via dit contract zaken met elkaar doen zonder kleine letters, taal barriŤres of dat iemand het contract eenzijdig kan schenden.


Mogelijkheden
De mogelijkheden zijn op dit moment nog niet helemaal duidelijk en worden volop besproken in de community. Persoonlijk denk ik dat er grofweg 3 stadia van smart contracts zullen bestaan:
  1. De voor de hand liggende applicaties zoals een online wallet
  2. Een generatie applicaties die gebruik maken van de sterke eigenschappen van smart contracts. Denk aan een predication market zoals Augur, of de mogelijkheid om je spullen te verhuren.
  3. Decentralized Autonome Organisaties, denk aan een smart contract wat een transport dienstverlening aanbiedt. Mensen die een pakket van A naar B willen versturen kunnen een rit plaatsen en iedereen kan deze rit accepteren en het pakketje vervoeren. Een drone die is aangesloten op het Ethereum netwerk kan deze rit accepteren en de fee gebruiken voor haar onderhoud en brandstof. Wanneer deze fee onvoldoende blijkt te zijn dan is ze verouderd en kan ze niet meer concurreren met nieuwere en efficiŽntere transporteurs en dus overbodig geworden.
Bij voldoende interesse laat ik de volgende blogpost zien hoe je via een smart contract een online marktplaats gemaakt kan worden waarbij koper en verkoper beide belang hebben om integer te handelen.

Volgende: 2. Ethereum, introductie smart contract 11-'15 2. Ethereum, introductie smart contract

Reacties


Door Tweakers user H!GHGuY, zaterdag 14 november 2015 13:50

Ik heb zeker interesse hierin, maar je hebt het zo erg versimpeld dat ik de technische concepten er niet meer in zie (i.e. hoe het werkt/kan werken).

Door Tweakers user Blokker_1999, zaterdag 14 november 2015 14:17

Wanneer men programma's in een blockchain wil plaatsen zit men wel met 1 groot probleem dat inherent is aan het schrijven van software: wat met bugs in de software? Het oplossen van die bugs brengt ook veranderingen met zich mee die door de deelnemers moeten geverifieerd en goedgekeurd worden.

Bijkomend heeft een blockchain nog een inherent nadeel: wanneer 1 partij meer dan 50% van de controlerende nodes in bezig heeft, bepaald die partij in essentie wat er wel of niet geldig is en word manipulatie van de block chain opnieuw mogelijk. Een tijd terug was er zo een situatie met bitcoin waarin 1 groep gedurende korte tijd +50% in handen had. Hoewel men dit snel heeft opgelost door nodes uit te schakelen blijft dit een risico vormen.

Door Tweakers user xos, zaterdag 14 november 2015 14:31

H!GHGuY schreef op zaterdag 14 november 2015 @ 13:50:
Ik heb zeker interesse hierin, maar je hebt het zo erg versimpeld dat ik de technische concepten er niet meer in zie (i.e. hoe het werkt/kan werken).
De eerste post wilde ik eenvoudig en niet te lang maken. Toekomstige posts zullen meer technische diepgang hebben en de bouwstenen en algoritmes bespreken die dit mogelijk maken. Dat is waarschijnlijk interessanter voor je :)

[Reactie gewijzigd op zaterdag 14 november 2015 14:32]


Door Tweakers user xos, zaterdag 14 november 2015 14:39

Blokker_1999 schreef op zaterdag 14 november 2015 @ 14:17:
Wanneer men programma's in een blockchain wil plaatsen zit men wel met 1 groot probleem dat inherent is aan het schrijven van software: wat met bugs in de software? Het oplossen van die bugs brengt ook veranderingen met zich mee die door de deelnemers moeten geverifieerd en goedgekeurd worden.

Bijkomend heeft een blockchain nog een inherent nadeel: wanneer 1 partij meer dan 50% van de controlerende nodes in bezig heeft, bepaald die partij in essentie wat er wel of niet geldig is en word manipulatie van de block chain opnieuw mogelijk. Een tijd terug was er zo een situatie met bitcoin waarin 1 groep gedurende korte tijd +50% in handen had. Hoewel men dit snel heeft opgelost door nodes uit te schakelen blijft dit een risico vormen.
Dit is inderdaad een probleem waar momenteel over gediscussieerd wordt. Het is allemaal nog erg jong. Een idee wat heerst is het scheiden van data en logica. En de logica kan vervangen worden via een name scheme systeem waarbij je kunt afspreken wie toestemming moet geven om de logica te vervangen.

De >50% aanval (eigenlijk hoef je zelfs net iets minder dan 50% van de nodes te controleren) is inderdaad een probleem. Er wordt daarom ook nagedacht over een geheel ander mechanisme om blokken te generen.

Door Tweakers user PixelPhobiac, zondag 15 november 2015 17:14

Vorige week toevallig een geth (Go Ethereum) server opgezet en ik ben nu guides aan het volgen over het schrijven van contracten. Machtig interressant allemaal! Ethereum het potentieel dezelfde innovatieve impact voor blockchains hebben als javascript en PHP voor het vroege internet had.

Door Tweakers user _Garu_, zondag 15 november 2015 20:33

Zou je hiermee ok MitM kunnen voorkomen?

Door Tweakers user Vulpecula, maandag 16 november 2015 10:19

Hier ook interesse in een vervolg.

Door Tweakers user M.l., maandag 16 november 2015 11:27

Het probleem met diensten aanbieden via een BlokChain is dat je moeilijk kunt controleren of alle afspraken die onder de 'smart contract' vallen wel zijn nagekomen. Stel dat je een bestelling doet van een computeronderdeel en het thuis wil laten bezorgen, hoe controleer je dan de volgende dingen:
  • Zit het juiste onderdeel in het pakketje
  • Is het pakketje verstuurd
  • Is het pakketje (op de juiste plaats) aangekomen
  • Is het onderdeel niet stuk
Stel dat de ontvangende partij aangeeft dat het pakketje niet is aangekomen, of dat er iets anders in het pakketje zat, maar de versturende partij zegt dat het pakketje naar het juiste adres is verstuurd, dat het gecontroleerd heeft dat het is aangekomen en dat het juiste product er in zit. Hoe ga je dan uitzoeken wie er liegt? Wat moet er volgens het gebruikte BlockChain-protocol worden gedaan om na te gaan welke partij recht heeft op wat?

Het einige wat je dan zou kunnen doen om een aantal controles in zo'n 'smart contract' te verwerken. Bijvoorbeeld hoe je controleert wat er in het pakketje zit, hoe je controleert dat het pakketje dicht is gebleven, hoe je na gaat onder welke omstandigheden het pakketje is vervoerd (is het gevallen of nat geworden) en hoe je continu de locatie in de gaten houd.

Nu zie ik niet echt het voordeel van een fysieke dienst op basis van een BlokChain, maar een digitale dienst zou nog wel eens nuttig kunnen zijn. Bijvoorbeeld bij de verkoop van softwarelicenties en -support.
Bij voldoende interesse laat ik de volgende blogpost zien hoe je via een smart contract een online marktplaats gemaakt kan worden waarbij koper en verkoper beide belang hebben om integer te handelen.
Geinteresseerd. Kom maar door met die post.

Door Tweakers user Raspii, maandag 16 november 2015 16:17

weer een geintereseerde erbij !!
KEEP ON POSTING.

Door Tweakers user oehoe, maandag 16 november 2015 17:18

Interesse gewekt. :)

Door Tweakers user yeadder, vrijdag 20 november 2015 11:15

Hier lees ik graag meer over.
Helder verhaal.
Ik kijk uit naar de diepte.

Door Tweakers user xos, zaterdag 21 november 2015 12:44

Bedankt, ik zal proberen morgen een vervolg te maken.

Door DAB, dinsdag 27 september 2016 07:54

Erg interessant. Is deze discussie nog levend?

Reageren is niet meer mogelijk