DAG Blockchain: Hashgraph

Eerst was de blockchain gewoon de blockchain. Maar recent kreeg je ook de Directed Acyclic Graph. En nu heb je alweer de HashGraph. Over die laatste gaat dit stukje.

Het is interessant om te zien, hoe in de wereld van de Cryptocurrencies nieuwe fenomenen snel in een soort van “modegril” terecht kunnen komen. Een paar voorbeelden:

  • Ergens in de periode 2014-2017 kwam het fenomeen ICO op. Eerst had je er een paar. Maar ondertussen schieten ze als paddenstoelen uit de grond! Sommige zijn aardig, maar de meeste nog onzinniger dan de andere.
  • Forken kan natuurlijk al sinds het eerste bestaan van Bitcoin. Maar in 2017 vond een grote en relevante fork plaats, die een soort van fork-golf tot gevolg had. De teller voor het aantal Bitcoin-forks staat op het moment van schrijven al op 11. En ook deze worden steeds onzinniger.
  • En toen kwam de DAG, de “Directed Acyclic Graph”. Als variant op de blockchain. Inmiddels lees je ook over de “HashGraph” en begint ook blockchain-model-innoveren modegevoelig te lijken.

We gaan kijken of de HashGraph onzinnig is of niet.

Blockchain

De “goede ouwe blockchain” kennen we als een ketting van cryptografisch aan elkaar geregen blokken met transacties (of afspraken, of zelfs software-code) erin. Aan elkaar rijgen gebeurt door het herhalen van de hash (vingerafdruk) van het vorige blok bovenaan het volgende blok mee te nemen, en dat ook weer te hashen. Blockchains zijn robuust door distributie van vele kopieën verspreid over ‘nodes’ middels peer-to-peer technologie.

Blockchainnetwerken komen tot consensus door een mechanisme dat momenteel nog vaak “proof of work” is. Er wordt in een wedloop gezocht naar de oplossing van een cryptografisch som. De winnaar bepaalt de inhoud van het volgende blok. Helaas kost PoW veel energie maar tot op de dag van vandaag is dit wel de best bewezen beveiligingswijze.

So far so good.

DAG

In september 2016 kwam met Byteball en iets later IOTA, de Directed Acyclic Graph in beeld. Een systeem waarin voor consensus geen mining nodig is, omdat elke vastgelegde transactie pas echt een vastgelegde transactie is, als deze twee gekoppelde andere transacties heeft geverifieerd en bevestigd. Er zijn geen blokken maar losse transacties. Hoe meer transacties, hoe meer bevestigingen, en dus hoe betrouwbaarder. Er is nog wel een puntje met een gecentraliseerd component dat er nog uit moet.

Collega Sander Grootendorst heeft er een uitgebreid stuk over geschreven.

HashGraph

Dan nu de HashGraph. Ook dit is een techniek om te bereiken wat blockchain en DAG willen bereiken. Namelijk het betrouwbaar vastleggen van transacties, afspraken en zelfs softwareprogrammatuur op een gedistribueerd netwerk van computers. Dus zonder tussenkomst van een derde partij of mens. (Overigens ook wel distributed ledger technology (DLT) genoemd).

Lekker roddelen ?

Hoe werkt de HashGraph? Met het “Roddel over roddel” consensus algoritme. (Gossip about Gossip). Het laat elke node met zo veel en vaak als mogelijk blokken uitbreiden. Zonder mining.

In de HashGraph communiceert iedere node, met willekeurige andere nodes, en vertelt ‘m wat die ander nog niet weet. Op deze manier: “Hé Piet, ik heb net transactie PQR gedaan. En Kees die ik net sprak, heeft transactie XYZ gedaan!” Elke node voegt dus een transactie toe aan het netwerk en bevestigd er een die al in het netwerk gonst. Deze aanpak levert op dat iedere transactie binnen no-time over het netwerk verspreid en daarmee betrouwbaar wordt geverifieerd. Het netwerk convergeert naar één waarheid.

Én het levert op dat dit in een eerlijke volgorde gebeurt. Min of meer “wie het eerst komt, het eerst maalt”. Dit in tegenstelling tot de blockchain waar prioriteit wordt bepaald op basis van commissiehoogte.

Virtueel stemmen

Met de HashGraph die zo ontstaat, ken je alle transacties en hun progressie door het netwerk in de tijd. Je kan dus narekenen (controleren) dat andere nodes hun berekeningen goed hebben gedaan. Het is dus niet meer nodig om nog te stemmen over wat de werkelijkheid is. De consensus wordt inherent bereikt.

De beroemde getuige

Net als bij IOTA en Byteball is er sprake van een getuige. Maar in HashGraph is deze geen centraliserende kracht. In HashGraph ontstaan “beroemde getuigen” al heel snel na het maken van een transactie. Ze zorgen voor een extreem snelle bevestiging. Je zou kunnen zeggen dat ze een soort van accellerator vormen, maar zonder zou het ook werken. (Een beetje zoals de masternodes in Dash die instant-send ondersteunen). In HashGraph wordt er gesproken over 250.000 tot 300.000 transacties per seconde.

Ik zie je goed!

In HashGraph is er een verschil tussen een andere node zien en goed zien. Een node wordt goed gezien wanneer andere nodes al genoeg kennis hebben vergaard om samen in te schatten wat een andere node zou stemmen. Als ze dat al weten, is er dus geen bevestiging meer nodig.

Nadelen

Zitten er ook nadelen aan dit systeem? Natuurlijk. Dat kan bijna niet anders.

  • Om te beginnen is er nog geen enkele kennis over hoe dit systeem zich zal gedragen op een grote schaal. En dat is een belangrijk aspect. De tijd zal het moeten uitwijzen.
  • En ten tweede is het idee gepatenteerd. En niet open source. Dit gaat sterk tegen de natuur van de cryptogemeenschap in. Als het een succesvol model blijkt te zijn zou het me (daarom) helemaal niet verbazen wanneer er simpelweg een anoniem softwarecollectief ontstaat dat een opensourcevariant ontwikkelt en op de wereld loslaat voor iedereen om te gebruiken.
  • Ook is er nog niet echt een community aan het ontstaan rondom HashGraph. Iets wat natuurlijk inherent is aan kiezen voor closed source maar niet wenselijk.

Conclusie

Het lijkt erop dat de HashGraph een ontwikkeling is met potentieel. Jammer dat het gepatenteerd is. Wat er gebeurt bij het toepassen van de HashGraph op grote schaal, of zelfs publieke schaal alleen al, we weten het nog niet. Het blijft een kwestie van geduld.

Tot slot: Hier is nog een uitlegvideo over HashGraph. En hier een interview met Leemon Baird de bedenker. En hier een tweetal (bekende) Bitcoin-core fans, die niet gehinderd door enig kennisgebrek de HashGraph onmiddelijk onderuit halen.