Hedera Hashgraph und Sybill-Attacken

in #dlt7 years ago

Dr. Leemon Baird, der Erfinder des Hashgraphs, hat sich ausführlich Gedanken über mögliche Lösung gegen Sybill-Attacken gemacht, die ich hier vorstellen möchte:

Swirlds und Sybill Attacken

Gegen Sybill-Attacken, also den Versuch, den Konsensus mehrheitlich zu überstimmen, in dem man Identitäten fakt, sind beim Hashgraph mehrere Lösungen bereits implementiert, intern ist dies Proof-of-Stake, aber nach außen hin ist der Hashgraph sehr flexibel. Er kann eine geschlossene Benutzergruppe (permissioned) als auch Public Ledger (not permissioned) und viele andere Modi abbilden.
Abschnitt 1 gibt einen Überblick darüber, was das bedeutet und wie es funktioniert. In Abschnitt 2 wird ein spezifischen Szenario beschrieben, ein offenes System, ein Public Ledger, um eine Kryptowährung zu implementieren.

Abschnitt 1 Funktionsweise der Swirld-Plattform

Es ist sinnvoll, die Plattform mit Blockchain zu vergleichen Swirlds Hashgraph hat 4 Hauptkomponenten, jede kann mit einer Entsprechung der Blockchain-Technologie verglichen werden:

  • Plattform: Die Plattform kann gedanklich mit dem Betriebssystem verglichen werden.
  • App: Jeder kann Apps auf Basis der Plattform errichten. Eine App ist einen spezielle Ausführung der Blockchain, welche Dinge bestimmt, ob PoW oder PoS angewandt wird, ob es permissioned oder nicht ist. Obwohl der Konsens-Algorythmus bereits in der Plattform integriert ist, kann jede App diverse Parameter bestimmen, die kontrollieren, wie sie arbeiten soll. Daher ist es nützlich, sich jede App als unterschiedliche Ausführung von unterschiedlichen Blockchains vorzustellen.
  • Swirld: Jede geteilte Welt (shared world = swirld) ist wie ein separiertes Blockchain-Netzwerk. Alle Swirlds, de mit der selben App erschaffen wurden, arbeiten auf die selbe Weise, aber alle haben ihre eigene getrennte Historie und einen anderen Satz von Teilnehmern.
  • Teilnehmer: Ein Teilnehmer (Mitglied) einer speziellen Welt (Swirld) ist das Equivalent zum Miner in der Blockchain. Jeder Teilnehmer kann neue Transaktionen erschaffen und diese in Ereignissen (Events) zusammenfassen (Ereignisse entsprechen Blöcken).

Der Konsensus-Algorythmus des Hashgraphs nutzt eine virtuelle Form des Wählens, mit garantierter Konsensus-Findung und es ist mathematisch beweisbar, dass dieser Konsensus nicht manipuliert werden kann, wenn nicht mindestens 1/3 der Population unehrlich sind. Internet definiert die Plattform Stimmanteile für jede Swirld, d.h. jedem Teilnehmer wird eine Anzahl von Stimmen zugeordnet, seinem Stimmanteil. Das garantiert mathematisch, dass Sybill Attacken nur erfolgreich sein können, wenn die unehrlichen Mitglieder mindestens 1/3 Stimmenanteil haben.

Wie bekommt nun ein Teilnehmer seinen Stimmanteil? Die App definiert, wie das gemacht wird. Der App-Entwickler kann einen von mehreren offensichtlichen Ansätzen wählen, oder einen neuen Ansatz schaffen. Die Folgenden sind einige der offensichtlichen Ansätze, die ein Entwickler wählen könnte, bei der die Plattform Unterstützung bietet:

  • Proof-of-Stake: Jeder Teilnehmer erhält so viele Stimmanteil, wie er in seiner oder seiner Wallets hat und sein Stimmanteil ergibt sich daraus, welchen Anteil er an der Summe der Wallets aller Teilnehmer hat.
  • Proof-of-Burn: Das selbe wie PoS, nur dass hier die Wallets nicht eingebracht werden, sondern der entsprechende Betrag vernichtet wurde. In anderen Worten, die Swirld kostet Eintritt und je mehr Eintrittsgeld entrichtet wird, desto höher der Stimmanteil.
  • Proof-of-Work: Ähnlich wie bei Bitcoin, nur dass hier der Aufwand aufgebracht wird, um Stimmanteile zu erhalten, statt einen Block zu minen. In einer solchen Swirld müssten die Teilnehmer weiter minen, um den Anschluss zu den anderen nicht zu verlieren und um das System sicher zu erhalten. Die App kann auch definieren, dass Stimmanteile mit der Zeit kleiner werden, um zu ständiger Arbeit aufzufordern.
  • Permissioned: Jeder Teilnehmer bekommt exakt eine Stimme, aber kann nur mit Erlaubnis Teilnehmer werden. Wie bei anderen geschlossenen Systemen können Mitglieder die Erlaubnis der Teilnahme erhalten, weil andere Mitglieder sie wählen oder weil sie bereits Mitglied in einer Vereinigung sind.
  • Hybrid: Die Gründer einer Swirld starten alle mit dem selben Stimmanteil. Das ist wie bei Permissioned Swirlds. Danach kann jeder Teilnehmer werden, wenn er von einem anderem Teilnehmer eingeladen wird, so dass die Teilnehmerzahl viral zunimmt. Jeder Teilnehmer kann seine Stimmanteile auf alle Teilnehmer verteilen, die er einlädt, aber es mach keinen Sinn, viele Fake-Accounts zu erstellen und die Stimmen auf diese zu verteilen, da der selbe Stimmanteil sich danach nur auf viele Accounts verteilt. Somit helfen keine Fake-Identitäten, um eine Sybill-Attacke durchzuführen.
  • Trivial: Jeder Teilnehmer bekommt einen Stimmanteil, jeder kann so viele (Fake-)Accounts einladen, wie er will, wie jeweils auch einen Stimmanteil bekommen und das System kann sich nicht gegen eine Sybill-Attacke wären.

Der einfachste, nicht triviale Ansatz ist der Hybrid, der sich wahrscheinlich für gewöhnliche Swirlds von geringem Wert am Besten eignet. Eine einfache geschäftliche Zusammenarbeit oder ein Spiel könnte dies nutzen. Es ist einfach und bequem, aber hindert trotzdem einzelne unzufriedene Teilnehmer, alle anderen zu behindern.

Wenn man unter Freunden ist, reicht der triviale Ansatz aus, da bereits Vertrauen besteht.

Die Lösung der geschlossenen Gruppe, permissioned, ist am Sichersten und könnte von einen kleinen Gruppe von Banken genutzt werden, die ihre Transaktionen in einem dezentralen Ledger speichern. Nur Banken des Konsortiums können teilnehmen und jede Bank erhält einen Stimmanteil. Obwohl eine Bank vielleicht einer anderen nicht vertrauen mag, würde sie darauf vertrauen können, dass sich nicht ein volles 2/3 unehrlich verhält.

Für eine große Gruppe von Fremden ist der Proof-of-Burn Ansatz die beste Lösung. Zwar kann ein Angreifer theoretisch hier ein Drittel der Stimmanteile kaufen, aber wenn der Eintrittspreis hoch genug ist, würden die Kosten den Vorteil des Angriffs übersteigen.

Für eine Gruppe, die groß genug ist, würde Proof-of-Stake die richtige Wahl sein, ohne dass hohe Eintrittsgelder bezahlt werden. Das würde funktionieren, wenn es viele Teilnehmer gäbe, die große, in etwa gleiche Anteile besitzen. Damit ist verhindert, dass jemand neu hinzukommen kann, der mehr als ein Drittel der Anteil hat.

Der App-Entwickler kann auch wesentlich kompliziertere Szenarien entwickeln. Er könnte mit dem Hybrid Modell beginnen und dann den Teilnehmern erlauben, sich gegenseitig Stimmanteile zu verkaufen. Oder neue Teilnehmer können hinzukommen, wenn die bisherigen Teilnehmer dem per Wahl zustimmen. Oder es beginnt mit Proof-of-Burn und wechselt automatisch zu Proof-of-Work, soweit die Teilnehmer-Zahl groß genug ist. In allen Fällen wird immer die Entscheidung immer durch Konsensus getroffen, basierend auf den Stimmanteilen.

Abschnitt 2 Ein Beispielszenario

Stellen Sie sich eine Community von Teilnehmern vor, die eine Swirld mit einem bestimmten Zweck betreiben, zum Beispiel ein Public Ledger. In unserem Beispiel wurde Proof-of-Stake gewählt, die Stimmanteile sind entsprechend der Summen bestimmt, die die Teilnehmer der verwendeten Kryptowährung besitzen, die wir StakeCoin nennen wollen. Es ist eine offene Swirld, also nicht permissioned, jeder kann also teilnehmen und die Teilnehmer können sich nicht vertrauen. Die Swirld verwendet PoS anstatt PoW, weil das kostengünstiger ist, jetzt ist zu prüfen, ob diese gegen Sybill Attacken geschützt werden kann.
Das System ist sicher, solange kein Angreifer mindestens 1/3 der StakeCoins besitzt. Es wird solange funktionieren, wie 2/3 der StakeCoins im Besitz von ehrlichen Teilnehmern ist.

Eine Möglichkeit eines Angriffs wäre es, einzeln mit vielen StakeCoin Besitzern zu sprechen und so Vielen ihre Anteile abzukaufen, bis 1/3 erreicht ist. Das ist ähnlich, als wenn man in eine Markt viele Waren kauft oder bei einer feindlichen Übernahme eines Aktienunternehmens. In diesem Fall ist es kein Angriff auf die Swirld, die StakeCoins verwendet, es ist ein Angriff auf die StakeCoin selbst.

Wenn jemand eine Mehrheit an eine Kryptowährung hält, dann können er deren Marktwert manipulieren, um wiederholt hoch zu verkaufen und niedrig zu kaufen. Dies kann kurzfristig sehr profitabel sein und wird letztendlich das Vertrauen in die Kryptowährung untergraben und vielleicht dazu führen, dass sie generell nicht mehr benutzt wird. Dies hat nichts mit der verwendeten Technologie zu tun. Auch wenn man die Mehrheit an Bitcoins, Dollars oder Mais Futures der Welt besitzt, kann man diese Märkte profitabel manipulieren.

Ein solcher Angriff kann vermieden werden, wenn die Kryptowährung sowohl wertvoll als auch weit verbreitet ist. Wenn sie wertvoll ist, wird es sehr teuer, einen großen Anteil der vorhandenen StakeCoins zu kaufen. Und wenn die StakeCoins weit verbreitet sind, mit vielen verschiedenen Leuten, die StakeCoins besitzen, wird der Versuch, den StakeCoin-Markt in den Griff zu bekommen, frühzeitig sichtbar, was natürlich den Preis eines StakeCoin in die Höhe treibt, was es noch teurer macht, den Rest zu kaufen.

Eine zweite Angriffsmöglichkeit besteht darin, der im Vergleich zu allen StakeCoins auf der Welt nicht besonders hoch ist, aber groß im Vergleich zu den Teilnehmern einer Swirld, die den StakeCoin als Währung benutzt. Dies kann verhindert werden, wenn jede spezielle Swirld ihre speziellen StakeCoins hat und beide gemeinsam gestartet werden, so dass Swirld und StakeCoin sich gegenseitig Wert geben.

Aber jetzt haben wir das Henne-Ei-Problem. Die Kryptowährung muss zur Sicherheit von Anfang an Wert besitzen, sie braucht als neu erschaffene Kryptowährung aber auch Zeit, um an Wert zuzunehmen. Wie kann das gelöst werden?

Der Ansatz, der von Hedera Hashgraph gewählt wurde, besteht darin, mit einem Konsortium von 39 großen angesehenen Unternehmen und Organisationen zu beginnen, die die Gründer sind. Jeder der Gründer erhält große Mengen an StakeCoins und das System ist so angelegt, dass die Menge nur langsam anwächst und irgendwann seine ultimative Maximalemission erreicht. Jeder Gründer hat einen Anreiz, mitzumachen und die Swirld ist ein Ledger, bei der StakeCoin selbst als Swirld auf dem Hashgraph mit Swirlds Konsens-Algorythmus läuft. Da hier kein PoW benötigt wird, ist es kostengünstig für die Teilnehmer, einen Knoten zu betreiben. Da die Gründer vertrauenswürdig sind, ist sehr unwahrscheinlich, dass sich mehrere zusammenschließen, um das System zu unterminieren. Das würde auch den Wert der StakeCoins und das Vertrauen in den Ledger zerstören, den sie führen.

Aber warte, ist das nicht wie eine Permissioned Blockchain. Zuerst ja, aber nur, um das System zum Starten zu bringen. Im Laufe der Zeit können andere Mitglieder dem Ledger Swirld beitreten. Und andere Leute können StakeCoins kaufen, entweder direkt von den Gründern oder an einer Börse. Der Ledger könnte Anreize für neue Teilnehmer schaffen, sich zu beteiligen, indem winzige Beträge an StakeCoins an neue Teilnehmer gezahlt werden, um mehr Menschen zum Beitritt zu ermutigen. Mit der Zeit würden die StakeCoins auf immer mehr Besitzer verteilt werden und die StakeCoins würden für immer weitere Zwecke benutzt werden, so dass es für jeden schwierig wird, den Markt zu manipulieren, selbst wenn die Gründer zusammenarbeiten. An diesem Punkt wird die Kryptowährung einen echten Wert haben, der Ledger Swirld wird echte Sicherheit haben, das System kann als Public Ledger weitergeführt werden, wo niemand mehr die Kosten für vergeudete Proof-of-Work Berechnungen tragen muss.

Sort:  

Hallo @freedom-liberty, herzlich willkommen auf Steemit.

Wenn Du Fragen zu Steemit hast, oder Dich mit anderen deutschen „Steemians“ austauschen magst, schau einfach mal auf unserem Discord-Server https://discord.gg/g6ktN45 vorbei.

Wenn Du auf Deutsch schreibst, verwende immer #deutsch als einen der 5 Hashtags, um Deine Reichweite zu erhöhen.

Unter dem folgenden Link findest Du einige Anleitungen, die Dir den Einstieg in das Steem-Universum deutlich erleichtern werden: Deutschsprachige Tutorials für Steemit-Neulinge: Ein Überblick

Congratulations @freedom-liberty! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @freedom-liberty! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!