blockcentric #1: Konsens-Mechanismen der Blockchain

Keine Kommentare

Willkommen zum ersten Artikel der blockcentric-Kolumne. In dieser bloggen wir, zusätzlich zu den bewährten Themen des codecentric-Blogs, über die Blockchain. Dabei möchten wir das Thema uneingeschränkt sowie breit gefächert betrachten: Technologie, Projekte, Organisation und Geschäft. Die Artikel können Ergebnisse unserer 20%-Zeit-Projekte sowie Neuigkeiten aus dem Themenbereich sein und zielen darauf ab, Ihnen die Blockchain näher zu bringen.

Blockcentric Logo

Auch auf unserer Blockchain Landing Page können Sie sich über unsere Aktivitäten und Angebote in dem Bereich informieren.
Wir freuen uns auf Ihr Feedback zur Kolumne und spannende Diskussionen über Ihre Use Cases.


Eine Blockchain stellt Vertrauen, Nachvollziehbarkeit und Unveränderbarkeit über ein Peer-to-Peer Netzwerk her. Alle Vorgänge im Netzwerk, wie zum Beispiel Zahlungen oder das Event-Tracking in einer Supply Chain, werden von Teilnehmern des Netzwerkes bestätigt. Somit kontrolliert keine zentrale Instanz alleine die Richtigkeit dieser Ereignisse. Diese von den Teilnehmern gegebenen Bestätigungen führen zu einem Konsens im Netzwerk, mit dem der Datenstand der Blockchain fortlaufend beschlossen wird. Ob eine Transaktion also valide ist, entscheidet die Mehrheit der Teilnehmer statt ein einzelner Player. Um einen Konsens zu gestalten und zu implementieren, gibt es mehrere Mechanismen, die ich im folgenden erklären möchte.

Was sind Konsens-Mechanismen?

Jede Blockchain muss einen Mechanismus wählen, der die Übereinstimmung aller Teilnehmer mit einer Wahrheit über ihre Daten sicherstellt. Man kann sich das wie einen standardisierten Weg vorstellen, mit dem alle Politiker eines Parlamentes dazu gebracht werden können, sich schnellstmöglich auf eine Meinung zu einigen. Da die Politiker wahrscheinlich darüber diskutieren müssen, tun dies alle Teilnehmer eines Blockchain-Netzwerks auch, indem sie über das Netzwerk miteinander kommunizieren. Die Kommunikationsprotokolle sind dabei in der Software implementiert, die auf allen beteiligten Geräten ausgeführt wird. Kommuniziert wird hierbei aber nicht über eine politische Meinung sondern den Datenstand der Blockchain, wie beispielsweise die Transaktionshistorie einer Währung wie Bitcoin.

Dabei überragt aktuell die Anerkanntheit zweier dieser Mechanismen, während andere unbekannt blieben oder noch unbekannt sind.

 

Proof of Work – Das klassische „Mining“

Den Begriff “Mining” kennen wir zum Beispiel von der Mutter der Kryptowährungen, Bitcoin. Auch für das Ethereum Netzwerk müssen Transaktionen mittels Mining in Blöcke verpackt und somit bestätigt werden.
Der richtige Name dieses Konsens-Mechanismus ist Proof of Work (PoW). Er beschreibt ganz simpel die Bedingung, dass ein Teilnehmer im Netzwerk ehrliche und beweisbare Arbeit verrichtet haben muss, damit er eine Anzahl von Transaktionen bestätigen kann.
Dafür wird er pro errechnetem Block angemessen belohnt. Diese Belohnung soll die aufgebrachte elektrische Energie und den Einsatz von spezieller Hardware (ASIC-Miner oder GPU) entschädigen und zusätzlich einen Gewinn ermöglichen. Die Ausschüttung setzt sich aus dem aktuellen Block Reward und den in den Transaktionen bewilligten Transaktionsgebühren zustande.

Proof of Work ist vor allem bei Kryptowährungen bisher das meistverbreitetste Verfahren. Wahrscheinlich ist das der Fall, da es sich schon seit 2009 mit seiner Robustheit und Sicherheit bewährt. Zusätzlich stellt der hohe Einsatz beim Minen auch sicher, dass die dadurch generierten Coins einen wirklichen Gegenwert in Form von Fiat-Geld haben.

So robust und bewährt das Verfahren auch sein mag, es steht auch stark in der Kritik. Der Nachteil von Proof of Work ist, dass die benötigte elektrische Energie und die teils speziell gefertigte Hardware zu Lasten der Umwelt verbraucht wird. Viele Krypto-Fans und Kritiker würden sich wünschen, dass der Konsens keine derart hohe Umweltbelastung generiert.
Immerhin könnten über 3% des Energieverbrauches in Deutschland allein durch die beim Bitcoin Mining benötigte Energie gestillt werden.
Ein weiterer Nachteil ist die Spaltung der Community dieser Projekte. Es bestehen immer zwei Gruppen. Benutzer, die die Transaktionsgebühren aufbringen und auf die Bestätigungen warten müssen und Miner, die den Gewinn im Auge haben und meistens politisch für sich profitabel auf das Projekt einwirken möchten. Vorschläge, wie das Projekt und seine Source-Code Implementierung verbessert werden kann, lösen also meistens Diskussionen aus, in denen beide Lager energisch ihre Interessen vertreten.

Proof of Stake – Teilhaber mit Mitspracherecht

Wie beispielsweise in einer Aktiengesellschaft, haben bei Proof of Stake (PoS) alle Teilhaber den Anspruch darauf, am Konsens mitzubestimmen. Dieser Anspruch auf die Validierung eines Blockes neuer Transaktionen wird jedes mal erneut deterministisch (durch Pseudozufall) vergeben.
Dabei haben Anteilseigner mit mehr Vermögen im Wallet eine etwas höhere Chance darauf, ausgewählt zu werden. Einerseits haben sie schließlich ein höheres Interesse an der Funktionalität des Netzwerkes und sollten daher selber mehr dazu beitragen. Andererseits geht mit zu heterogener Auswahl der Shareholder das Risiko einher, dass die Block-Bestätigungen zu zentral werden und reiche Parteien zu sehr bemächtigen.
In den meisten Fällen werden in Proof of Stake basierten Blockchains bereits alle Token “pre-mined” (also erstellt), anstatt wie bei Proof of Work langsam durch Blockfindung auf den Markt gespült zu werden, bis das festgesetzte Maximum erreicht ist. PoS Blockchains haben also meistens bereits alle Anteile in Umlauf gebracht und können die Shareholder, welche Blocks gewinnen, nur noch mit den Transaktionsgebühren bezahlen.

Das Verfahren wird mittlerweile in einigen Blockchains und Projekten, ebenfalls in der Welt der Kryptowährungen, erfolgreich eingesetzt und findet immer mehr Anklang. Nicht zuletzt auch durch den Fakt, dass dafür keine Elektrizität verschwendet werden muss. Der Verbrauch beschränkt sich also auf die einfache Benutzung durch die Teilnehmer und wird nicht durch unnötig komplexe Berechnungen in die Höhe getrieben.

Ebenfalls wird die Community nicht in zwei feste Lager gespalten, sondern ist dadurch vereint, dass alle gemeinsam Nutzer der Blockchain sind. Trotzdem bleibt das Risiko einer unfairen Umverteilung des Vermögens. Dies kann stattfinden, wenn wohlhabende Teilnehmer zu sehr bei Auswahl des als nächstes ausgewählten Block-Gewinners bevorzugt werden und dadurch stark ihr Vermögen vermehren können. Um dies zu verhindern, ist es wichtig, dass der Algorithmus zur Block Selection fair ist. Hierzu gibt es schon einige Ausprägungen mit eigenen Vor- und Nachteilen, auf die ich nun nicht weiter eingehen werde.

Proof of Work vs. Proof of Stake – oder in die Zukunft schauen?

Die beiden bekanntesten und bewährtesten Konsens-Mechanismen sollten nun bekannt sein. Wir merken schnell, dass Proof of Stake die Nachteile von Proof of Work fokussiert. Die Nachhaltigkeit von Blockchains soll demnach durch die signifikante Einsparung von elektrischer Energie und Hardware erhöht werden und es der Community gleichzeitig durch Vermeidung von Interessenkonflikten einfacher machen, Projekte weiterzuentwickeln.

Trotzdem wirft auch Proof of Stake Fragen auf: Kann sichergestellt werden, dass die Reichen nicht noch reicher werden? Wann ist der Algorithmus für die Auswahl der Shareholder, die einen Block bestätigen, perfekt und maximal fair?

Es schadet wohl nicht, sich noch weitere Varianten anzuschauen, die auf den beiden Ideen aufsetzen und diese verbessern wollen.

Proof of Activity – Der hybride Ansatz

Dieser Ansatz entstand nicht aus der Optimierung eines einzelnen Konsens-Mechanismus, sondern ist eine Kombination von PoW und PoS. Es ist vorgesehen, dass Miner weiterhin mittels viel Energie und Hardware-Einsatz kryptographische Rätsel lösen. Die damit gefundenen Blöcke beinhalten aber nur die Identität des Block-Gewinners und seine Belohnungs-Transaktion. Anschließend setzt die Proof of Stake Phase ein und die Validatoren (Shareholder, die dazu ausgewählt wurden, Transaktionen und Blöcke zu validieren) bestätigen die Korrektheit des Blocks. Wenn der Block oft genug überprüft wurde, aktivieren die Validators ihn erst zu einem fertigen Block. Erst mit diesem Schritt beinhaltet der Block dann auch Transaktionen aus dem Netzwerk, die so dringend bestätigt werden müssen.
Auch der Block-Reward wird nochmal aufgeteilt, sodass auch die Validatoren etwas erhalten.

Proof of Importance – VIP first

Das von NEM vorgestellte Konzept knüpft an Proof of Stake an und kennt auch Shareholder bzw. Validators. Allerdings werden diese mit einem bestimmten Algorithmus ausgesucht, nicht nur durch Zufall und Größe des Anteils. Ebenfalls ihre Wichtigkeit für das Netzwerk und die Wichtigkeit, die das Netzwerk anscheinend für sie hat, fließt mit in die Formel ein. In NEMs Definition von Proof of Importance (PoI) wird dies damit implementiert, dass die Nutzung mit einbezogen wird. Teilnehmer die oft Transaktionen senden und auch selber adressiert werden, werden häufiger einen Block finden. Dabei wird natürlich darauf geachtet, dass manipulative Muster erkannt und somit Spam-Transaktionen, die nur die Importance des Shareholders erhöhen sollen, nicht mit einbezogen werden.

Zusätzlich wird für den Stake nur eine spezielle Art des Besitzes gewertet. Coins im NEM-Wallet zählen erst zum Stake, wenn sie “vested” sind. Pro 24 Stunden werden 10% der un-vested Coins diesem speziellen Bereich angerechnet. Daher bekommen Teilnehmer einen Anreiz, wiederum nur nötige Transaktionen zu machen und können den Importance-Score nur langsam erhöhen.

Proof of Elapsed Time – Öko-Mining durch Innovation

Dieser Mechanismus wurde vom Chiphersteller Intel erfunden und bezieht sich auf die technologische Errungenschaft SGX (Safe Guard Extensions). SGX umfasst eine Auswahl von CPU Instruktionen, die es Prozessen erlauben, private Ressourcen der CPU für sich alleine zu nutzen. Damit sollen Trusted Execution Environments in der CPU-Berechnung geschaffen werden, für die nicht die Gefahr besteht, von außerhalb manipuliert zu werden.

Was hat das mit der Bestätigung von Transaktionen zu tun? Das Ziel ist es durch diese Innovation auf niedrigem Hard- und Softwarelevel einen echten Zufallsmechanismus zu implementieren. Dieser soll im Vergleich zu Proof of Work aber nicht durch den Zufall bestimmt sein, welcher Teilnehmer mit seinen Ressourcen zu erst ein Rätsel lösen kann. Das kryptographische Rätsel möchte PoET dadurch ersetzen, dass schon die CPU Architektur in Kombination mit der Quantität der Mining-Hardware alleine weiß, wie oft und wann ein Teilnehmer einen Block gewinnen wird.

Es geht bei diesem Ansatz also darum, den Energieverbrauch beim Mining immens zu senken. Leider kommt dadurch die Abhängigkeit einer unterstützten CPU Architektur in der Mining-Hardware hinzu. Man könnte die genutzt Hardware zwar stark verkleinern bzw mit konventionellen Computern verbinden, trotzdem können nur Teilnehmer mit einer SGX CPU mitmachen.
Außerdem ist fragwürdig, ob ein verteiltes Blockchain Netzwerk dem Chiphersteller vertrauen sollte. Ohne ihm etwas unterstellen zu wollen, der Konsens der Proof of Elapsed Time Netzwerkes, ist davon abhängig, wie sicher und unmanipulierbar die SGX implementiert sind. Der Konsens des dezentralen Netzwerks wird damit vertrauensvoll einer zentralen Instanz in den Schoß gelegt.

Zusammenfassung

In diesem Artikel haben wir uns das Konzept von fünf möglichen Konsens-Mechanismen angesehen, von denen bei dem Design einer Blockchain Gebrauch gemacht werden kann. Es ist anzunehmen, dass der Erfolg dieser Systeme unter anderem mit der Qualität und Fairness ihres Konsensverfahren steht oder fällt. Daher sollte global weiterhin versucht werden, noch bessere Verfahren zu finden um Blockchains nachhaltig zu sichern und sogar skalierbarer zu machen (mehr mögliche Transaktionen pro Zeiteinheit).

Aktuell sollte die Auswahl des Konsens Verfahrens von den Projektanforderungen abhängig gemacht werden. Man sollte darüber nachdenken, wie verheerend die Nachteile und wie nützlich die Vorteile der einzelnen Konzepte für das gewünschte Resultat sein könnten.
Letztlich lässt sich bisher noch kein universell perfektes Konzept ausfindig machen, das es schafft, alle Probleme der Mitbewerber auszustechen.

Jonas Verhoelen

Jonas ist seit Abschluss seines Software Engineering Studiums als IT Consultant und Entwickler bei der codecentric tätig. Er interessiert sich vor allem für die Umsetzung von Microservice Landschaften mit verschiedensten Technologien.
Außerdem beschäftigt er sich mit der Blockchain Technologie und Smart Contracts sowie möglichen Anwendungsfällen.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

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