Was ist ein Konsens-Algorithmus?
Was ist ein Konsens-Algorithmus?
HomeArtikel

Was ist ein Konsens-Algorithmus?

Anfänger
Published Dec 13, 2018Updated May 11, 2021
7m


Inhalt


Einführung

Ein Konsens-Algorithmus ist ein Mechanismus, der es Benutzern oder Maschinen ermöglicht, sich in einer verteilten Umgebung zu koordinieren. Er muss sicherstellen, dass sich alle Agenten im System auf eine einzige Quelle der Wahrheit einigen können, selbst wenn einige Agenten versagen. Mit anderen Worten, das System muss fehlertolerant sein (siehe auch: Byzantinische Fehlertoleranz).

In einem zentralisierten System hat eine einzige Instanz die Macht über das System. In den meisten Fällen können sie Änderungen vornehmen, wie sie wollen – es gibt kein komplexes Governance-System, um einen Konsens zwischen vielen Administratoren zu erreichen.

Aber in einer dezentralisierten Struktur ist das eine ganz andere Geschichte. Angenommen, wir arbeiten mit einer verteilten Datenbank – wie können wir uns darauf einigen, welche Einträge hinzugefügt werden?

Die Bewältigung dieser Herausforderung in einem Umfeld, in dem Fremde einander nicht vertrauen, war vielleicht die wichtigste Entwicklung, die den Weg für Blockchains ebnete. In diesem Artikel werfen wir einen Blick darauf, wie Konsens-Algorithmen für das Funktionieren von Kryptowährungen und verteilten Ledgern von entscheidender Bedeutung sind.


Konsens-Algorithmen und Kryptowährungen

Bei Krypto-Währungen werden die Salden der Benutzer in einer Datenbank erfasst – in der sogenannten Blockchain. Es ist wichtig, dass jeder (oder genauer gesagt, jeder Node) eine identische Kopie der Datenbank führt. Andernfalls würden Sie bald mit widersprüchlichen Informationen enden und den gesamten Zweck des Kryptowährungsnetzwerks untergraben.
Public-Key-Kryptographie stellt sicher, dass die Benutzer nicht gegenseitig ihre Coins ausgeben können. Aber es muss immer noch eine einzige Wahrheitsquelle geben, auf die sich die Netzwerkteilnehmer verlassen können, um feststellen zu können, ob die Gelder bereits ausgegeben wurden.
Satoshi Nakamoto, der Erfinder von Bitcoin, schlug ein Proof of Work System zur Koordinierung der Teilnehmer vor. Wir werden uns in Kürze mit der Funktionsweise des PoW befassen – doch zunächst werden wir einige der gemeinsamen Merkmale der vielen existierenden Konsens-Algorithmen identifizieren.
Erstens verlangen wir, dass Benutzer, die Blöcke (wir nennen sie Validatoren) hinzufügen wollen, einen Stake bereitstellen. Der Stake-Einsatz ist eine Art Wert, den ein Validator aufbringen muss, was sie davon abhält, unehrlich zu handeln. Wenn sie betrügen, verlieren sie ihren Stake-Einsatz. Beispiele dafür sind Rechenleistung, Krypto-Währungen oder sogar der Ruf. 
Warum sollten sie sich die Mühe machen, ihre eigenen Ressourcen zu riskieren? Nun, es ist auch eine Belohnung verfügbar. Diese besteht in der Regel aus der nativen Krypto-Währung des Protokolls und setzt sich aus Gebühren zusammen, die von anderen Benutzern bezahlt werden, aus frisch generierten Einheiten der Krypto-Währung oder aus beidem.
Das Letzte, was wir brauchen, ist Transparenz. Wir müssen in der Lage sein, zu erkennen, wenn jemand betrügt. Im Idealfall sollte es für sie kostspielig sein, Blöcke zu produzieren, aber billig für jeden, um sie zu validieren. Dadurch wird sichergestellt, dass die Validatoren von regelmäßigen Benutzern kontrolliert werden.


Arten von Konsens-Algorithmen

Proof of Work (PoW)

Proof of Work (PoW) ist der Pate der Blockchain-Konsensus-Algorithmen. Es wurde zuerst in Bitcoin implementiert, aber das eigentliche Konzept gibt es schon seit einiger Zeit. Bei Proof of Work gibt es Validatoren (bezeichnet als Miner), die Daten, die sie hinzufügen wollen, hashen bis sie eine spezifische Lösung erhalten.
Ein Hash ist eine scheinbar zufällige Folge von Buchstaben und Zahlen, die entsteht, wenn Sie Daten durch eine Hash-Funktion laufen lassen. Wenn Sie die gleichen Daten erneut durchlaufen lassen, erhalten Sie immer die gleiche Ausgabe. Wenn Sie jedoch auch nur ein Detail ändern, wird Ihr Hash völlig anders aussehen.

Wenn Sie sich die Ausgabe ansehen, können Sie unmöglich sagen, welche Informationen in die Funktion eingegeben wurden. Sie sind daher nützlich, um zu beweisen, dass Sie ein Datenfragment vor einer bestimmten Zeit kannten. Sie können jemandem den entsprechenden Hash geben, und wenn Sie die Daten später preisgeben, kann diese Person sie durch die Funktion laufen lassen, um sicherzustellen, dass die Ausgabe dieselbe ist.

Im "Proof of Work" legt das Protokoll Bedingungen dafür fest, was einen Block gültig macht. Es könnte z.B. lauten: nur ein Block, dessen Hash-Wert mit 00 beginnt, ist gültig. Die einzige Möglichkeit für den Miner, einen solchen Block zu erstellen, der mit dieser Kombination übereinstimmt, sind viele willkürliche Eingaben. Er kann einen Parameter in seinen Daten so verändern, dass für jede Vermutung ein anderes Ergebnis erzielt wird, bis er den richtigen Hash erhält. 
Bei großen Blockchains ist die Messlatte unglaublich hoch gelegt. Um mit anderen Minern konkurrieren zu können, bräuchten Sie eine Lagerhalle voller spezieller Hashing-Hardware (ASICs), um die Chance zu haben, einen gültigen Block zu produzieren.
Ihr Stake-Einsatz im Mining sind die Kosten für diese Maschinen und die für ihren Betrieb erforderliche Elektrizität. ASICs werden nur für einen einzigen Zweck gebaut, was bedeutet, dass sie außer für das Mining von Krypto-Währungen in keiner weiteren Anwendung eingesetzt werden können. Die einzige Möglichkeit, Ihre anfängliche Investition wieder hereinzuholen, ist das Mining, das eine beträchtliche Belohnung bringt, wenn Sie der Blockchain erfolgreich einen neuen Block hinzufügen.

Es ist einfach für das Netzwerk zu überprüfen, ob Sie tatsächlich den richtigen Block erstellt haben. Selbst wenn Sie Billionen von Kombinationen ausprobiert haben, um den richtigen Hash zu erhalten, müssen sie Ihre Daten nur einmal durch eine Funktion laufen lassen. Wenn Ihre Daten einen gültigen Hash erzeugen, wird dieser akzeptiert, und Sie erhalten eine Belohnung. Andernfalls wird er vom Netzwerk abgelehnt, und Sie haben Zeit und Strom umsonst verschwendet.


Proof of Stake (PoS)

Proof of Stake (PoS) wurde in den frühen Tagen von Bitcoin als Alternative zu Proof of Work vorgeschlagen. In einem PoS-System gibt es kein Konzept von Minern, spezialisierter Hardware oder massivem Energieverbrauch. Alles, was Sie brauchen, ist ein normaler PC.
Nun, das ist nicht alles. Sie müssen doch etwas mehr investieren. Im PoS bringt man keine externe Ressource (wie Elektrizität oder Hardware) ein, sondern eine interne – eine Krypto-Währung. Die Regeln sind von Protokoll zu Protokoll verschieden, aber im Allgemeinen gibt es einen Mindestbetrag, den Sie halten müssen, um für das Staking zugelassen zu werden.
Von dort aus schließen Sie Ihre Gelder in einer Wallet ein (sie können nicht bewegt werden, während Sie am Staking teilnehmen). In der Regel werden Sie mit anderen Validatoren darüber abstimmen, welche Transaktionen in den nächsten Block aufgenommen werden sollen. In gewisser Weise wetten Sie auf den Block, der ausgewählt wird, und das Protokoll wird einen auswählen.
Wenn Ihr Block ausgewählt wird, erhalten Sie einen Anteil der Transaktionsgebühren, abhängig von Ihrem Einsatz. Je mehr Gelder Sie gebunden haben, desto mehr können Sie gewinnen. Wenn Sie jedoch versuchen, zu betrügen, indem Sie ungültige Transaktionen vorschlagen, verlieren Sie einen Teil (oder Ihren gesamten Einsatz). Daher haben wir einen ähnlichen Mechanismus wie PoW – ehrlich zu handeln ist profitabler als unehrlich zu handeln.
Im Allgemeinen gibt es keine frisch geprägten Coins als Teil der Belohnung für die Validatoren. Die native Währung der Blockchains muss also auf eine andere Art und Weise ausgegeben werden. Dies kann entweder über eine Erstausgabe erfolgen (d.h. ein ICO oder IEO) oder dadurch, dass das Protokoll mit PoW gestartet wird, und später auf PoS umgestellt wird.

Bislang wurde der reine Proof of Stake nur in kleineren Kryptowährungen wirklich eingesetzt. Es ist daher unklar, ob es als praktikable Alternative zu PoW dienen kann. Während es theoretisch fundiert erscheint, wird es in der Praxis ganz anders aussehen.

Sobald PoS in einem Netzwerk mit einem großen Wert eingeführt wird, wird das System zu einem Spielfeld von Spieltheorie und finanziellen Anreizen. Jeder mit dem Know-how, ein PoS-System zu “hacken”, würde dies wahrscheinlich nur tun, wenn er davon profitieren könnte – daher ist der einzige Weg, herauszufinden, ob es machbar ist, dies in einem Live-Netzwerk zu versuchen.
Bald werden wir PoS in großem Maßstab testen – Casper wird als Teil einer Reihe von Upgrades des Ethereum-Netzwerks (kollektiv bekannt als Ethereum 2.0) implementiert werden.


Andere Konsens-Algorithmen

Proof of Work und Proof of Stake sind die meistdiskutierten Konsens-Algorithmen. Aber es gibt eine Vielzahl anderer, die alle ihre eigenen Vor- und Nachteile haben. Sehen Sie sich die folgenden Artikel an:


Fazit

Mechanismen zur Konsensfindung sind für das Funktionieren verteilter Systeme von entscheidender Bedeutung. Viele glauben, dass die größte Neuerung bei Bitcoin die Verwendung von Proof of Work war, um es den Benutzern zu ermöglichen, sich auf einen gemeinsamen Satz von Fakten zu einigen.

Konsens-Algorithmen liegen heute nicht nur digitalen Geldsystemen zugrunde, sondern auch Blockchains, die es Entwicklern ermöglichen, Code über ein verteiltes Netzwerk auszuführen. Sie sind heute ein Eckpfeiler der Blockchain-Technologie und entscheidend für die langfristige Lebensfähigkeit der verschiedenen existierenden Netzwerke.

Von allen Konsens-Algorithmen bleibt Proof of Work das dominierende Angebot. Eine Alternative, die zuverlässiger und sicherer ist, muss erst noch vorgeschlagen werden. Dennoch gibt es eine enorme Menge an Forschung und Entwicklung um Ersatz für PoW zu finden, und es ist wahrscheinlich, dass in den kommenden Jahren noch weitere Alternativen vorgestellt werden.