Hashgraph – Tratsch über Tratsch

Hashgraph wird als Blockchain-Killer gehandelt. Selbst IOTA soll im Angesicht der angeblich überragenden Transaktionsgeschwindigkeiten erblassen.

Denn Hashgraph verspricht gleich mehrere hervorragende Dinge:

  • Sichere Kommunikation mit sgn. byzantinischen Fehlertoleranz
  • Schnelle und kostenlose Transaktionen
  • Korrektheit, Konsistenz und Integrität der Daten
  • Faire Kommunikation

Der folgende Artikel handelt davon was Hashgraph ist, wie es funktioniert und warum die Behauptungen stimmen aber von Blockchain-Killer keine Rede sein kann.

Hashgraph – Tratsch auf einer neuen Ebene

In der Schule gab es sie schon und vermutlich haben Sie immer noch so jemanden in Ihrem Freundeskreis: Die Tratschtante. Nicht zwangsläufig eine Frau aber auf jeden Fall immer top-informiert über den neuesten Klatsch und sofort bereit ihn weiter zu tragen. Sie können sich sicher sein, wenn Sie ihr den neuesten Büroklatsch erzählen, weiß am nächsten Tag jeder der mit der Tratschtante Kontakt hatte bescheid.

Hashgraph denkt dieses Prinzip noch einen Schritt weiter: Wenn Sie wissen, dass Ihre Tratschtante in Verbindung mit einer zweiten Tratschtante steht, weiß übermorgen auch deren Bekanntenkreis über die pikanten Liebschaften in Ihrem Büro bescheid. Um Information möglichst schnell zu streuen, müssen Sie gezielt an solche Tratschtanten die Neuigkeiten verteilen.

Im Gegensatz zur nicht so stillen Post des Büroklatsches hat Hashgraph einen großen Vorteil: Es kann angenommen werden, dass ein jeder Bekannter im Normalfall ehrlich ist und nicht versehentlich die Information verfälscht.

Hashgraph und Kommunikation, Fairness und Korrektheit

Das Hashgraph-Whitepaper definiert einen simplen Algorithmus: Jeder Teilnehmer im Netzwerk, synchronisiert regelmäßig seinen aktuellen Wissensstand mit einigen anderen zufällig ausgewählten Teilnehmer. Außerdem merkt er sich mit wem er getratscht hat und teilt auch dies bei jeder Synchronisation mit.

Um die Korrektheit der Neuigkeiten zu bestimmen, wird, ähnlich wie bei Bitcoin, mit digitalen Signaturen gearbeitet. Das besondere an Hashgraph ist das Versprechen, dass die Transaktionen anhand des First-In First-Out Prinzips geordnet sind. Es ist also nur der Zeitpunkt entscheidend an dem die Nachricht abgeschickt wurde und nicht eine etwaige Fee an Miner – denn weder Gebühren noch Miner gibt es im Netzwerk.

Um die Nachrichten ordnen zu können, muss ein Konsensus im Netzwerk zwischen den Teilnehmern hergestellt werden. Der naive Ansatz wäre, die Netzwerkteilnehmer abstimmen zu lassen. Bei nur 100 Teilnehmern im Netzwerk wären das bereits mindestens 10.000 Nachrichten.

Der Hashgraph-Algorithmus löst das auf, in dem die Abstimmungen nur virtuell durchgeführt werden. Da wir annehmen können, dass jeder Teilnehmer ehrlich ist, ist es zulässig, anzunehmen, dass auch alle im Bekanntenkreis eines Teilnehmers gleich abstimmen.

Eine jede Synchronisation teilt dem anderen Knoten mit welche Synchronisationen statt gefunden haben sowie welche Transaktionen dem Knoten bekannt sind. Um also zu wissen, wer von welchem Ereignis erfahren hat, wird eine Eigenschaft ermittelt, die im Whitepaper als strongly seeing definiert wird.

Auf Deutsch könnte man das als unübersehbar übersetzen. Es bedeutet, dass es eine direkte Kette des Tratsches zwischen Teilnehmer A und Teilnehmer F gibt, solange klar ist, dass A sich mit B, B mit C, C mit D, D mit E und E mit F synchronisiert hat. Die Information wer mit wem getratscht hat, wird in einer speziellen Datenstruktur gespeichert die zwischen den Teilnehmern im Netzwerk synchronisiert wird. Diese Datenstruktur ist der Hashgraph.

Sie ist platzsparend, da es unerheblich ist, was C mit E synchronisiert hat wenn ich den Wissensstand von A habe und nur enthält mit wem sich die Knoten synchronisiert haben.

Formale Logik und mathematische Beweise

Das Whitepaper trumpft mit einer reihe formaler Definitionen auf die dann herangezogen werden die Behauptungen im mathematischen Sinne zu beweisen. Das bedeutet, dass alle Angaben unter der Annahme bestimmter Bedingungen erfüllt sind.

Es ist also defakto möglich nicht nur eine totale Ordnung der Transaktionen zu ermitteln, sich der Konsistenz der Daten absolut sicher zu sein sondern das auch noch relativ schnell in einem Peer-to-Peer-Netzwerk ohne Transaktionskosten implementiert zu sehen.

Das große Problem daran ist allerdings, dass eine sehr wichtige Grundanahme ist, dass es möglich zu einem beliebigen Zeitpunkt zu wissen Welche Knoten im Netzwerke sind.

Beim ersten Mal lesen scheint das harmlos zu sein. Es wird nur erwähnt, dass es klar sein muss wer wen sieht und es nötig ist zu wissen wieviele Knoten es insgesamt gibt um bestimmte Eigenschaften zu errechnen und angenommen wird.

Faktisch bedeutet das allerdings:

Hashgraph ist kein dezentrales Netz da eine Zugangs- und Abtrittskontrolle mit Register nötig sind. Theoretisch kann das dezentral durchgeführt werden indem eine Ebene unter dem Hashgraph-Protokoll ein Protokol dafür sorgt, diese Informationen bereit zu stellen. Die immense Geschwindigkeit von Hashgraph – auch in großen Netzen – macht es unwahrscheinlich, dass das dezentral gelöst wird. Dieser Punkt wurde von Christoph Mertens in den Kommentaren angesprochen und er hat recht damit, dass das nicht unmöglich ist. Allerdings wäre es notwendig ebenfalls Paper über dieses Protokoll zu veröffentlichen damit die Grundanahmen die in den Papern über Hashgraph getroffen wurden, auch bewiesen werden können.

So wie Ripple? Wo kann ich kaufen!?

Hashgraph ist im Moment keine Kryptowährung. Es ist ein Algorithmus und ein sg. SDK um verteilte Systeme zu bauen. Im Gegensatz zu Ripple, die eine Blockchain-Lösung mit zentralem Register für die Validator-Knoten aufgebaut haben, und einen Token handeln, ist Hashgraph eine Technologie.

Das Unternehmen hinter Hashgraph nennt sich Swirlds Inc. und bietet das SDK gratis zum Ausprobieren an. Ich habe mir ihre Beispielanwendungen auf Github angesehen und finde, dass es nach einem netten Framework aussieht.

Allerdings sehe Hashgraph weniger in Konkurrenz mit Bitcoin, IOTA oder einer anderen Blockchain sondern mehr in Konkurrenz mit Lösungen für verteilte Systeme wie verschiedene Queue-Bibliotheken, Space-Based-Bibliotheken oder RMI-Bibliotheken.

Es gibt also keine Token zu kaufen. Es ist nur ein Stück fein ausgedachter Technologie.

Einsatzgebiete für Blockchains

Blockchains und verteilte Kryptosysteme generell, kennen drei verschiedene Anwendungsfälle:

  1. Private Blockchains
  2. Permissioned Blockchains
  3. Public Blockchains

Private Blockchains sind komplett abgeschottet. Die Kontrolle über diese Blockchain liegt bei dem Schöpfer. Das macht Sinn für Systeme die nach außen hin unerreichbar sein sollen, wie zB. Sensornetzwerke und erlauben es echte Low-Energy-Ansätze für die Sensorknoten zu wählen. (Im Gegensatz zu IOTA).

Public Blockchains sind völlig offen und definieren ein Protokoll an das sich jeder zu halten hat. Bitcoin ist der bekannteste Vertreter dieser Gruppe. Es steht jedem offen einen Mining-Knoten, Full-Node oder nur ein Wallet zu erstellen. Es gibt keine zentrale Stelle die den Stecker ziehen könnte oder einzelne Mitglieder ausschließen könnte.

Permissioned Blockchains sind eine Mischung aus diesen beiden Kategorien. Ripple ist der bekannteste Vertreter dieser Gruppe da die Validator-Knoten (in Bitcoin-Terminologie „Miner“) nur von Unternehmen betrieben werden können die vom Unternehmen Ripple autorisiert wurden. IOTA kann auch dazu gezählt werden solange die Firma noch den Coordinator-Node betreibt. (Auch wenn das ein Thema für Kontroversen ist, siehe IOTA is centralized, Reddit IOTA decentralized discussion, etc.) Interessant sind auch dezentralisierte Ansätze für permissioned Netzwerke wie zB. Sovrin. Dieser Distributed Ledger – der nicht als Blockchain aufgebaut ist – verteilt die Permissioning-Logik auf das Netzwerk über ein fest definiertes Protokol. Damit machen sich die Teilnehmer untereinander aus wem zu trauen ist und wem nicht. Fakt bleibt aber, das bestimmte Rollen im Netzwerk bei permissioned Blockchains hinter Zugangskontrollen versteckt bleiben. Diese werden zentral oder dezentral durchgeführt.

Besser als IOTA, Bitcoin und co?

Ob Hashgraph die bessere Lösung ist, muss anhand des Use-Cases entschieden werden. Ich habe hier einmal eine kleine Gegenüberstellung von IOTA, Bitcoin und Hashgraph gemacht. Sehen Sie und urteilen Sie selbst.

Hashgraph

IOTA

Bitcoin

Öffentlich

Nein

Ja

Ja

Zentralisiert

Ja

Teilweise

Nein

Verfügbarkeit der Technologie

Closed Source (mit Audits), Lizenzkosten

Open Source, gratis

Open Source, gratis

Transaktionsgeschwindigkeit

Schnell

Schnell beim Erstellen

Marktabhängig, schwankt ständig

IoT geeignet

Ja

Teilweise (nicht für low-energy)

Nein

Datenkonsistenz

Ja (eventual consistency)

Nein (nur hohe Wahrscheinlichkeit)

Nein (nur hohe Wahrscheinlichkeit)

Fälschungssicher

Ja

Ja

Ja

Transaktionskosten

Keine

Keine

Marktabhängig, schwankt ständig

Kurz zusammengefasst, heißt das für mich, dass IOTA, Bitcoin und Hashgraph jeweils Bereiche haben in denen Sie die Konkurrenz übertrumpfen. Wo welche Technologie zum Einsatz kommt muss also für jeden Einzelfall entschieden werden.

7 Replies to “Hashgraph – Tratsch über Tratsch”

  1. Interssant das hier gesagt wird IoT BitCoin = nein

    Gerne mal Satoshi School besuchen
    und erfahren wie das mit BitCoin funktioniert und somit auch die neue Technik überflüssig ist 😉

    Zentralisation braucht man nicht

    • Wenn du nur davon ausgehst, dass Transaktionen abgeschickt werden, stimmt das. Aber sobald du zB. das Register der UTXOs parsen möchtest, brauchst du einen relativ hohen Hauptspeicher in der Gegend von 2GB.

      Das ist weit weg von dem was schwachen Devices wie zB. den gängien aus der Atmega-Familie mitbringen. Ich habe vor einigen Jahren mit den 8080er Prozessoren von TI gearbeitet und weiß wie die in der Praxis zu programmieren sind.

      Es ist also möglich schwache Devices in ein IoT-Netz einzubringen wenn diese nur Signale geben. Du ignorierst aber gleich mehrere Dinge:
      a) Du musst Gebühren zahlen.
      b) Technisch musst du die TXs überwachen um zu überprüfen, dass die Daten tatsächlich in der Blockchain landen. Dafür brauchst du nicht die ganze UTXO-DB aber zumindestens Zeit und eine Super-Node die, die Blockchain überwacht in deinem IoT-Netz.

      Technisch ist’s also nicht die beste Wahl – bzw. weit weg davon – Bitcoin für IoT einzusetzen.

      Ihr könnt mich gerne anschreiben, wenn ihr weitere Hintergrundinformationen für eure Lehrpläne braucht.

    • durch die hohen Transaktionsgebühren – bzw. überhaupt Kosten – bei Bitcoin sind Mikrotransaktionen de facto nicht möglich! Da IoT-Geräte sicher keine tausenden Euro herumsenden, ist es somit absolut nicht sinnvoll.

  2. Hallo – das gossip about gossip sowie das virtual voting benötigen keinerlei zentrale Instanz. Das ist in dem ansonsten guten Beitrag faktisch falsch wiedergegeben. In einem permissionierten Netz (siehe CULedger, zus. mit Evernym / Sofrin) wird das ebenfalls nicht benötigt.

    Ferner sei anzumerken, dass das Swirlds / Hasgraph Team ein eher ungewöhliches, konservatives Vorgehen für die Finanzierung wie auch die Kommunikation hat – kein Open source, kein Public Ledger, Kein ICO, Kein Coin. Aber es gibt ein Produkt, ein SDK. Und es wird produktiv bei Kunden eingesetzt. Das Gaming oder auction example im SDK ist gut, um herauszubekommen, was hier anders ist: Nicht nur die Geschwindigkeit (jede Bewegung im Spiel eine Transaktion!) sondern die garantierte sequentielle Ordnung der Transaktionen, die nicht durch Miner oder Staker beinflusst werden kann. Ich denke, 2018 sollte man dem Tratsch-über-den-Tratsch im Auge behalten. Nicht nur im Hinblick auf einen Public Ledger und Open Source. Es ist weit mehr als ein smartes Framework wie dargestellt – es lohnt sich überdies Leemon Baird mal auf Youtube zu erleben. Good guy, charismatisch – älter als Vitalik – aber ebenfalls mit Visionen. Stay tuned!

    • Sie haben auf jeden Fall damit recht, dass Konsistenz sowie Reihung der Transaktion die größten Vorteile von Hashgraph sind. Allerdings muss ich vehement widersprechen was die zentrale Instanz ist. Es ist theoretisch richtig, dass über einen zusätzlichen Protokolllayer ebenfalls die Informationen über aktuell verfügbare Knoten im Netz verteilbar wären, allerdings ist da nicht möglich, zu einem beliebigen Zeitpunkt sicher zu stellen, dass alle Knoten im Netzwerk tatsächlich noch im Netzwerk sind. Das funktioniert nur, wenn eine Registrierinstanz das sicher stellt. Ohne dem, wären die Beweise puncto Order und Konsistenz für die Fische.

      Puncto permissioniertem Netz: Da haben Sie recht. Das werde ich ausbessern.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.