Konsensfindungsverfahren bei der Blockchain - Prof. Dr. Norbert Pohlmann
Konsensfindungsverfahren bei der Blockchain | |
Inhaltsverzeichnis Was ist eine Konsensfindungsverfahren bei der Blockchain?
Jede Transaktion wird vom Blockchain-Teilnehmer signiert, der für die Daten verantwortlich ist und über die Nodes per Peer-to-Peer-Blockchain-Netzwerk verteilt. Wenn alle Transaktionen in Ordnung sind, wird mit diesen ein neuer Block mit HashPrev, Merkle Hash usw. generiert und an alle anderen Nodes des entsprechenden Peer-to-Peer-Blockchain-Netzwerkes verteilt. Jede Node hat dadurch jederzeit eine vollständige Version der aktuell gültigen Blockchain. Alle Nodes des Peer-to-Peer-Blockchain-Netzwerkes überprüfen die empfangenden neuen Blöcke der ausgewählten Nodes, ehe sie diese der eigenen Blockchain-Version hinzufügen. Dafür kontrollieren sie sämtliche im Block enthaltenen Transaktionen. Außerdem kontrollieren sie den Block selbst darauf, ob zum Beispiel der Proof-of-Work erbracht ist und ob die Hashwerte korrekt sind. Sobald ein Block oder auch nur eine einzige in dem Block enthaltene Transaktion eine der Regeln verletzt, wird der Block abgelehnt und nicht in die Blockchain der eigenen Version aufgenommen. Das geschieht selbst dann, wenn jede andere Node der Blockchain den Block für zulässig hält. Es ist essentiell für die Sicherheit und Vertrauenswürdigkeit der Blockchain, dass sich alle Nodes ihr Urteil selbst bilden. Proof-of-Work KonsensfindungsverfahrenProof-of-Work (PoW) war die erste und ist die aktuell gebräuchlichste Methode zur Konsensfindung und wird zum Beispiel aktuell von der Bitcoin-Blockchain genutzt. Hier konkurrieren die einzelnen Nodes als sogenannte „Miner“ untereinander, indem sie jeweils ein mathematisches Problem – dessen Schwierigkeit sich dynamisch ändern lässt – lösen müssen. Jeder Miner einer Node muss einen Hashwert für einen Block finden, der einem bestimmten vorgegebenen Muster entspricht. Dieses Muster wird vom Blockchain-Netzwerk eigenständig festgelegt, wobei sich die Schwierigkeit mit der Anzahl der vorgegebenen Stellen des Musters erhöht. Zum Beispiel soll ein Hashwert fünf führende Nullen als Muster besitzen, siehe Difficulty-Feld im Block-Header. Die einzige Möglichkeit für die Nodes, diesen speziellen Hashwert zu erzeugen, ist die Veränderung des NONCE-Wertes im Block-Header. Somit wird die Konsensfindung eines Blockes zu einem Glückspiel für die Miner in einer Node, da diese nun einen NONCE-Wert für diesen Block-Header finden müssen, der die Eigenschaften des zu suchenden Hashwertes ergibt. Der Miner, der dieses Problem als erstes gelöst hat, darf den nächsten Block an die Blockchain anhängen. Die Komplexität des Problems wird in der Praxis bei der Bitcoin-Blockchain so gewählt, dass die Aufgabe im Schnitt 10 min dauern soll. Das bedeutet, dass die Transaktionen nur alle 10 min in einem Block der Blockchain hinzugefügt werden und gültig sind. Ablauf des Minings 1. Alle Miner generieren eine Nonce (Zufallszahl). 2. Diese Zufallszahl mit allen weiteren Daten im Block-Header wird als Input von Hashfunktionen berechnet. 3. Es wird dann überprüft, ob der berechnete Hashwert den Kriterien vom Feld Difficult (bestimmte Anzahl von führenden Nullen) im Block-Header entspricht. Wenn ja, hat der entsprechende Miner gewonnen. Wenn nein, wird eine neue Zufallszahl generiert und ein neuer Versuch gestartet. Es kann passieren, dass zwei Miner zur gleichen Zeit den notwendigen Hashwert berechnen. Wenn die Nonce 32 Bit lang ist, gibt es 232 verschiedene Kombinationen (42.949.667.296). Die Berechnung des mathematischen Problems beim Proof-of-Work-Konsensfindungsverfahren kostet sehr viel Energie. Laut dem sogenannte “Cambridge Bitcoin Electricity Consumption Index” lag der Energieverbrauch 2020 durch die Bitcoin-Technologie bei 115 Terrawattstunden (TWh). Das ist der jährliche Stromverbrauch von Pakistan. Practical Byzantine Fault Tolerance (PBFT) KonsensfindungsverfahrenPractical Byzantine Fault Tolerance (PBFT) ist ein Verfahren, welches böswillige Nodes toleriert. Hier gibt es eine ausgewählte Gruppe an „Validating Peers“, die alle Transaktionen erhalten. Sie wählen untereinander einen „Leader“ aus; dieser gibt eine genaue Reihenfolge der Transaktionen vor, in der diese in den Block eingefügt werden. Diese wird von ihm wiederum an alle „Validating Peers“ gebroadcasted. Anschließend führt jeder „Validating Peer“ sämtliche Transaktionen in dem Block in der vorgegebenen Reihenfolge aus und berechnet den Hashwert. Dieses Ergebnis wird wiederum an die anderen „Validating Peers“ gebroadcasted und mit deren Ergebnissen verglichen. Wenn mehr als 2/3 der anderen Peers dasselbe Ergebnis haben, wird der Block endgültig zur lokalen Kopie der Blockchain verstetigt. Mechanismus: Byzantine Fault Tolerance (Kompensation von fehlerhaften Komponenten) Ein zuverlässiges System muss dazu in der Lage sein, den Ausfall einer oder mehrerer Komponenten zu kompensieren. Eine fehlerhafte Komponente kann ein Verhalten zeigen, das häufig übersehen wird, nämlich das Senden von widersprüchlichen Informationen an verschiedene Teile des Systems. Mit dieser Art von Fehler in einem System umzugehen, wird abstrakt im „Byzantine Generals Problem“ ausgedrückt. Die Byzantine Fault Tolerance (byzantinische Fehlertoleranz) befasst sich mit diesem Problem und bietet eine Lösung, mit der zuverlässig Systeme implementiert werden können, auch wenn fehlerhafte Komponenten vorhanden sind. Das Problem kann folgendermaßen beschrieben werden:
General 1 ( 1, 2, x, 4 ) General 2 ( 1, 2, y, 4 ) General 3 ( 1, 2, 3, 4 ) General 4 ( 1, 2, z, 4 )
General 1 General 2 General 4 ( a, b, c, d ) ( e, f, g, h ) ( 1, 2, y, 4 ) ( 1, 2, z, 4 ) ( 1, 2, z, 4 ) ( i, j, k, l )
Bewertung Practical Byzantine Fault Tolerance (PBFT) Mit Konsensverfahren auf der Basis von Byzantine Fault Tolerance kann der Konsens auch beim Ausfall von bis zu 1/3 der Nodes zuverlässig arbeiten. Alternative Konsensfindungsverfahren einer Blockchain TechnologieNeben den Grundmethoden gibt es noch weitere Methoden zur Konsensfindung, wie zum Beispiel: Istanbul Byzantine Fault Tolerance (IBFT) Yet Another Consensus Proof of Elapsed Time Paxos Raft Weitere Informationen zum Begriff “Konsensfindungsverfahren bei der Blockchain”:
„Blockchain-Technologie unter der Lupe“ „Blockchain-Technologie revolutioniert das digitale Business“ „Blockchain als Echtheitsgarant“ „Kryptografie wird Währung – Bitcoin: Geldverkehr ohne Banken“ „Validierung digitaler Nachweise mit der Blockchain“ „Übungsaufgaben und Ergebnisse zum Lehrbuch Cyber-Sicherheit“ „Bücher im Bereich Cyber-Sicherheit und IT-Sicherheit zum kostenlosen Download“
„BlockChain – Einführung und Einsatzmöglichkeiten“ „BlockChain-Technologie – Sicherheit und Anwendungen“ „Wissenschaftliche Perspektiven im Bereich Blockchain“
„Master-Studiengang Internet-Sicherheit (IT-Sicherheit, Cyber-Sicherheit)“ „Marktplatz IT-Sicherheit: IT-Notfall“ „Marktplatz IT-Sicherheit: IT-Sicherheitstools“ „Marktplatz IT-Sicherheit: Selbstlernangebot“ „Vertrauenswürdigkeits-Plattform“ Zurück zur Übersicht Summary Article Name Konsensfindungsverfahren bei der Blockchain Description Das Konsensfindungsverfahren bei Blockchains ist dazu da, dass ein Konsens gefunden wird und sich untereinander auf einen „korrekten“ Zustand geeinigt wird. Ziel ist dabei, ein Node auszuwählen, die als Nächstes ein neuer Block zusammengestellt und der Blockchain hinzufügt darf. Author Prof. Norbert Pohlmann Publisher Name Institut für Internet-Sicherheit – if(is) Publisher Logo | |