Hashgraph

Hashgraph (Cryptovaluta techniek)

Hashgraph is een nieuw consensusprotocol, wat de laatste tijd steeds meer in de belangstelling is komen te staan. Het wordt als een technologie beschouwd die blockchains overbodig maakt.

Hashgraph ontrafeld: voordelen en valkuilen

Volgens de website van Hashgraph wordt beweerd dat Hashgraph de volgende eigenschappen heeft:

HashgraphSnel: 250.000+ transacties per seconde.
Eerlijk: wiskundig bewezen eerlijkheid (via consensus tijdstempeling).
Veilig: beveiliging op het niveau van banken (asynchrone Byzantijnse fouttolerantie).

Een vluchtige blik op deze drie eigenschappen geeft de infruk dat Hashgraph inderdaad het speelveld van cryptovaluta zou kunnen veranderen. Met ruim 250.000 transacties per seconde zou het het schaalbaarheidsprobleem van de meeste huidige blockchains oplossen.

In dit artikel geven we onze visie op Hashgraph, laten we de voor- en nadelen de revue passeren en beantwoorden we de volgende hamvraag: “Is de blockchain nu overbodig geworden?” Let wel, alle verwijzingen in dit artikel zijn gebaseerd op de whitepaper en website van Hashgraph.

Wat is Hashgraph?

Hashgraph is een nieuw consensusalternatief voor de blockchain. Het maakt gebruik van een zogenoemd gossipprotocol, wat op de volgende manier werkt: elke node in Hashgraph kan ondertekende informatie (‘events’) over nieuw gecreëerde transacties en transacties die van anderen zijn ontvangen naar zijn willekeurig gekozen buren verspreiden. Deze buren verzamelen ontvangen events met informatie die van andere nodes is ontvangen, waarna ze er een nieuw event van maken, wat ze vervolgens weer naar andere willekeurig gekozen buren sturen. Dit proces gaat door totdat alle nodes op de hoogte zijn gebracht van de informatie die aan het begin is aangemaakt of werd ontvangen. Vanwege de snelle convergentie-eigenschappen van het gossipprotocol kan elk stukje nieuwe informatie elke node in het netwerk op een snelle manier bereiken.

De geschiedenis van het gossipprotocol kan middels een grafiek geïllustreerd worden. Met andere woorden: elke node houdt een grafiek waarin de doorstuurders/getuigen van elke transactie terug te vinden zijn.. In het ideale geval hebben alle nodes dezelfde grafiek van alle transacties en hun getuigen. Middels een virtueel stemsysteem, kan elke node daarnaast bepalen of een transactie geldig is. Dit wordt bepaald op basis van het feit of het meer dan twee derde van de nodes in het netwerk als getuigen optreden. Hou er rekening mee, dat Hashgraph met de Byzantijnse instelling werkt. waarbij ervan wordt uitgegaan dat minder dan een derde van de nodes Byzantijns zijn (nodes die gedrag vertonen door inkomende en/of uitgaande berichten te vervalsen, te vertragen en/of gewoon niet te verwerken).

Voor- en nadelen hashgraph

Laten we de drie claims die Hashgraph opvoert eens nader bekijken.

Snelheid

Hashgraph is snel, omdat het het gossipprotocol gebruikt om berichten naar het netwerk te verspreiden> Het optimaliseert de gossipberichten ook een beetje om zo de communicatieoverhead te verminderen. Gossipberichten over andere gossipberichten zorgen daarnaast ook voor een consensusprotocol. Er is echter nog een andere reden waarom Hashgraph snel is: het werkt momenteel op basis van toestemming. “Op dit moment werkt Hashgraph uitsluitend in een privaat en gecontroleerd netwerk”, laat het Hashgraph Team via Telegram weten.

Hieronder bespreken we het verschil tussen netwerken met en zonder toestemming. Het verschil is cruciaal omdat het een directe impact op de doorvoer van de consensusoplossing heeft.

In een niet-geautoriseerde setting (oftewel een openbare blockchain), zoals bij Bitcoin en Ethereum, zijn de nodes die aan het consensusprotocol deelnemen niet van tevoren bekend en kan hun betrouwbaarheid in twijfel getrokken worden. Elke node heeft in zo’n setting per slot van rekening op elk gewenst moment de mogelijkheid om zich op het netwerk aan te sluiten of het te verlaten. Bovendien moeten de consensusmechanismen met een dergelijke setting rekening houden met kwaadwillenden. Met name Sybil-aanvallen kunnen voor problemen zorgen. In dat geval genereert een enkele gebruiker meerdere entiteiten om het consensusproces te kunnen beïnvloeden om bijvoorbeeld dubbele uitgaven uit te kunnen voeren. Het oplossen van deze problemen in een niet-geautoriseerde setting heeft vervolgens invloed op de algehele doorvoer.

Als er daarentegen gebruik gemaakt wordt van privaat (gemachtigde) gedistribueerde grootboeken, waarbij de identiteit van alle nodes vooraf bekend is, kan een twijfelachtige deelnemer aan het netwerk bij voorbaat worden uitgesloten. De voorkennis van de identiteit van de deelnemende nodes biedt een natuurlijke bescherming tegen Sybil-aanvallen en maakt het gemakkelijker om de consensus te bereiken. Dit betekent dat er geen mechanismen geïmplementeerd hoeven te worden om bescherming te biden tegen Sybil. Dit kan de transactieverwerkingssnelheid (in vergelijking tot publieke blockchains) substantieel verhogen.

Aangezien Hashgraph momenteel een privaat gedistribueerd grootboek is, zou de doorvoersnelheid eigenlijk met andere private blockchains vergeleken moeten worden. Denk in dat geval bijvoorbeeld aan IBM Hyperledger Fabric (700 transacties per seconde) of Red Belly (400.000 transacties per seconde). De doorvoer zou dan ook niet met publieke blockckains, zoals die van Bitcoin of Ethereum (10 transacties per seconden) vergeleken moeten worden. Dat zou namelijk neerkomen op appels met peren vergelijken. Op dit moment heeft Hashgraph nog geen concrete technische details vrijgegeven voor de gebruiksmogelijkheid als een grootboek.

Eerlijkheid Hashgraph

HashgraphHashgraph zorgt via consensus tijdstempeling ook voor eerlijkheid. Dit betekent dat als één transactie twee derde van het netwerk eerder bereikt dan andere transacties, dat deze dan als eerste wordt beschouwd. Het is een relatief eerlijk systeem, aangezien twee derde van het netwerk als getuige fungeert en het voor een meerderheid van hen moeilijk is om oneerlijke beslissingen te nemen. Hashgraph is echter op het gossipprotocol gebaseerd, wat inhoudt dat wanneer een node zijn opvolgers standaard willekeurig kiest, er een zekere waarschijnlijkheid ontstaat dat alle gekozen knooppunten Byzantijns of kwaadaardig kunnen zijn . Deze kwaadwillende opvolgers kunnen vervolgens stoppen met het doorgeven van de transactie aan de volgende groep nodes, waardoor wordt voorkomen dat de transactie uiteindelijk tweederde van het netwerk bereikt. Zoiets tot een oneerlijk eindresultaat leiden voor de eerlijke aanmaker van een transactie. Proberen om er zeker van te zijn dat elke eerlijke node verbinding maakt met enkele andere eerlijke nodes en te zorgen dat elk bericht ook weer naar andere eerlijke nodes wordt doorgestuurd, zonder dat er Byzantijnse nodes in de keten voorkomen, is een nu nog onopgelost probleem op zich. Ook al is het met het oog op het private karakter van Hashgraph op dit moment nog geen probleem, toch zal deze horde eerst genomen moeten worden voordat het grootboek publiek gedistribueerd gaat worden.

Veiligheid hashgraph

Hashgraph is een asynchrone BFT, maar is daarentegen niet deterministisch. In Fischer et al. (1985) werd aangetoond dat in asynchrone systemen deterministische consensusprotocollen onmogelijk zijn, zelfs als er slechts sprake is van één niet goed werkende node. Een consensusprotocol kan ofwel niet-deterministisch asynchroon of deterministisch niet volledig asynchroon zijn in de Byzantijnse setting.

Bij deterministische protocollen bereiken alle eerlijke nodes consensus tijdens ronde r dankzij een als a priori bekend staande constante r. Voor niet-deterministische of probabilistische protocollen is de kans dat een eerlijke node onbepaald is, nadat r-ronden de nul naderen terwijl r het verder opstuwt naar het oneindige. Voor synchrone protocollen geldt ruwweg dat berichten na een bepaalde bound Δ gegarandeerd worden afgegeven. Asynchrone protocollen hebben echter niet zo’n bound.

Hashgraph is een niet-deterministisch asynchroon protocol waaraan willekeur is toegevoegd. Het compromis is dat het consensusprotocol uiteindelijk wordt beëindigd, maar daarbij bestaat dan wel de onzekerheid over het moment waaarop die beëindiging plaats zal vinden. In het huidige ontwerp gebruikt Hashgraph een toss-oplossing voor nodes (bijvoorbeeld door de middelste bit van een handtekening te gebruiken) om beslissingen te nemen op het moment dat er er geen vooruitgang plaatsvindt in het consensusprotocol. Daardoor ontstaat geen nul-kans op een situatie waarbij alle nodes na talloze toss-rondes over dezelfde waarde beschikken. Uiteindelijk zullen alle eerlijke nodes een unaniem eindresultaat afleveren. Als alle Byzantijnse nodes echter proberen het protocol te verstoren door het te manipuleren op de manier zoals in punt 2 hierboven beschreven werd, dan wordt de effectiviteit en efficiëntie van deze manier van tossen dubieus, omdat het dan meerdere rondes kan duren om consensus te bereiken.

En hoe zit het nu met de alles omvattende vraag of Hashgraph blockchains overbodig maakt?

Hashgraph is een interessant consensusprotocol, waarvan is aangetoond dat het in een private en statische omgeving een hoge doorvoercapaciteit levert . Hashgraph is snel, eerlijk en veilig binnen de goedgekeurde setting waarin het momenteel actief is. Op het moment dat het echter in een openbare omgeving wordt gebruikt, zal Hashgraph dezelfde problemen ondervinden als andere openbare blockchains momenteel ondervinden. En dat kan vervolgens betekenen dat het systeem mogelijk niet in staat is om de beveiliging en prestaties optimaal te kunnen behouden.

Schaalbaarheid is in feite nog steeds een onopgelost probleem voor openbare blockchains. Het is echter interessant om te zien dat de gemmenschap nieuwe oplossingen voorstelt. Ethereum maakt bijvoorbeeld gebruik van PoS voor hun Casper protocol, NEO past dBFT toe, EOS heeft een op dPoS gebaseerde oplossing en Zilliqa implementeert sharding. Al deze oplossingen hebben zo hun eigen sterke en zwakke punten, aangezien er geen enkel wondermiddel bestaat om het schaalbaarheidsprobleem op te lossen en er nog nooit één heeft bestaan voor talloze wetenschappelijke problemen.

Een andere belangrijke vraag is, wat een schaalbare oplossing eigenlijk precies inhoudt. Betekent zoiets dan dat de oplossing schaalbaar is in het aantal gebruikers of in het aantal transacties? Off misschien in de omvang van het netwerk? Als een P2P-netwerk duizenden transacties kan verwerken, kunnen we de oplossing dan schaalbaar noemen? Zo ja, wat gebeurt er wanneer het netwerk zijn omvang verdubbelt? Kan de doorvoer dan worden gehandhaafd? Een oplossing die schaalbaar is in een enkele dimensie, kan mogelijk totaal ongeschikt zijn voor een gebruikstoepassing waarvoor schaalvergroting in een geheel andere dimensie nodig is. Hashgraph schaalt momenteel alleen het aantal verwerkte transacties, maar schaalt niet met het aantal nodes in het netwerk. Zilliqa schaalt daarentegen bijvoorbeeld het aantal nodes in het netwerk.

Dus laten we allen gewoon de onderliggende technologie van Hashgraph waarderen, maar ons er vooral niet blind op staren. En terwijl we Hashgraph waarderen, zouden we ook meteen onze waardering moeten laten blijken voor blockchains die innovaties, zoals die van Hashgraph, geïntroduceerd hebben. Denk daarbij aan Ethereum, EoS, NEO, Zilliqa en vele anderen.