preloadImage preloadImage
Diese Webseite verwendet Cookies zur Verbesserung des Angebots und für Marketingzwecke. Durch die Nutzung unserer Seiten erklären Sie sich damit einverstanden. Mehr erfahren. OK
UNTERNEHMEN APP ENTWICKLUNG WEBENTWICKLUNG SOFTWAREENTWICKLUNG BLOCKCHAIN REFERENZEN BLOG JOBS KONTAKT

Byzantinischer Fehler – Blockchain ist die Lösung für Attacken auf verteilte Systeme

Byzantinischer Fehler – Blockchain ist die Lösung für Attacken auf verteilte Systeme

Was ist ein byzantinischer Fehler – Machen Sie Ihre Anwendung sicher!

Als solch einen Fehler bezeichnet man in der Informationstechnik Systeme, die sich beliebig falsch verhalten können. Beispielsweise schickt ein Sensor gelegentlich falsche Antworten und erreicht gelegentlich falsche Systemzustände. In Mehrprozessor-Systemen bezeichnet der byzantinische Fehler eine Fehlerklasse. Falls eine Komponente an verschiedene Prozessoren unterschiedliche Ergebnisse liefert, spricht man von einem byzantinischen Fehler.

Das hinter diesem Modell stehende theoretische Problem nennt man auch "Das Problem der byzantinischen Generäle" und befasst sich mit der Aufgabe, in einem Netzwerk gemeinsam eine eindeutige Entscheidung zu treffen. Klassischerweise betrachtet man bei dem Problem drei Generäle, die eine Stadt belagern und von denen einer auf Seiten des Gegners steht. Die Stadt kann erobert werden, wenn mindestens zwei Generäle das Kommando zum Angriff geben oder aber, wenn die Generäle nichts weiter tun und die Belagerung fortsetzen. Der Verräter versucht nun, dem einem General das Kommando zum Angriff zu geben und dem anderen General das Kommando zum Abwarten. Die gutartigen Generäle haben auch bei einem Informationsaustausch untereinander keinerlei Möglichkeit, die Korrektheit des Kommandos zu prüfen, sondern können auch weiterhin den Verräter nicht identifizieren.

Nehmen wir an, Knoten C ist der Verräter. Er gibt Knoten A den Befehl zum angreifen und Knoten B den Befehl zum abwarten. A gibt die Nachricht zum Angreifen dann an B weiter und B die Nachricht zum Abwarten an A. Knoten A weiß jetzt, dass irgendjemand falsche Befehle gegeben hat. Er kann aber selbst durch Nachfragen nicht verifizieren, was der richtige Befehl war und wer die falschen Befehle gegeben hat.

Übertragen auf ein Netzwerk mit drei Knoten, sind diese also ohne Weiteres nicht in der Lage eine gemeinsame Entscheidung zu treffen, wenn einer absichtlich falsche Informationen bereitstellt. Erst ab vier Knoten kann der falsche Knoten überführt werden. Wenn zwei Knoten falsch informieren, ist das Problem aber erneut vorhanden. Mathematisch zeigt sich, dass die loyalen Knoten unter den gegebenen Voraussetzungen nur dann eine Einigungschance haben, wenn der Anteil der Verräter kleiner als ein Drittel ist. Eine Möglichkeit das Problem zu lösen, ist die Einführung von eindeutigen Signaturen, sodass der Absender einer Nachricht identifiziert werden kann.


 

Proof-of-Work (PoW) – Wie löst die Blockchain den byzantinischen Fehler?

Blockchain Netzwerke sind ebenfalls von dem Problem betroffen, lösen es aber. Transaktionen müssen eindeutig verbreitet werden, insbesondere müssen falsche und widersprüchliche Transaktionen abgefangen werden. Die Lösung besteht in der Mathematik der Blockchain. Etwa alle 10 Minuten (bezogen auf das Bitcoin-Netzwerk) lösen alle Knoten eine mathematische Aufgabe, in der die Nachrichten verarbeitet werden. Wenn diese gelöst wurde, wird die Lösung an alle Knoten weitergeleitet, die sie überprüfen und auf Grundlage dieser Lösung eine neue Lösung suchen. Daraus entsteht eine Kette. Jeder Knoten rechnet nur mit der längsten Kette. Auf das Angriffsszenario übertragen bedeutet dieser Ansatz, dass entweder das Kommando zum Angriff oder das zum Abwarten zuerst in die in die Kette einfließt, je nachdem welcher Knoten zuerst die Aufgabe löst. Nach einigen durchlaufen kann jeder Knoten sicher sein, dass ein Konsens besteht.

In der Fachsprache nennt man solch einen Konsensalgorythmus Proof-of-Work, welches von verschiedenen Kryptoprojekten angewandt wird, wenn auch projektbedingt in abgewandelter Form. Der "Arbeitsnachweis" ist ein Datenstück, welches schwer zu berechnen aber einfach zu verifizieren ist. Das zufällige Datenstück ist der Beweis für den nächsten Block in einer Blockchain. Der Erzeuger des Blocks erhält normalerweise einen gewissen Betrag Kryptogeld als Belohnung für das Lösen der Aufgabe. Durch Proof-of-Work werden sowohl die Transaktionen bestätigt, als auch neue Kryptogeld-Einheiten geschaffen. Häufig wird eine Analogie zum Gold schürfen verwendet, da durch den Einsatz von Equipment und Zeit, das gesuchte Stück gefunden wird. Je mehr Rechenleistung ein Schürfer (sog. Miner) besitzt, desto wahrscheinlicher ist das Finden eines Blocks.

Im Detail wird ein Block mit einer kryptographischen Aufgabe verifiziert. Diese Aufgabe besteht darin, nach einem definiertem Schema dem Block Bits hinzuzufügen und dann zu hashen. Entsteht dabei eine gewisse Anzahl Nullen am Anfang, ist die Aufgabe gelöst. Die Anzahl der Nullen ist variabel und steigt mi der Rechenleistung im Netzwerk. Eine spezielle Hashwertberechnung bei der Aufgabe zu verwenden hat den Vorteil, dass das Ergebnis mühsam zu finden, aber sehr leicht nachgeprüft werden kann. Damit die Clients einen Anreiz haben Rechenleistung in das Netzwerk zu investieren, werden sie für jede erfolgreich gelöste Aufgabe mit einer gewissen Summe neu geschöpfter Krypto-Einheiten belohnt. Dies passiert in Form einer Transaktion ohne Quelle mit der Adresse des Finders des Hashwertes als Ausgang.

Ethereum benutzt eine Abwandlung des Algorithmus mit dem Namen Ethash. Auch Litecoin verfolgt mit Scrypt einen ähnlichen Ansatz. Weitere Konsensalgorythmen sind Proof-of-Stake, Delegated-Proof-of-Stake, Proof-of-Importance oder aber auch Proof-of-Activity, um hier nur die wichtigsten zu nennen.



Wenn Ihre Anwendung sicherheitskritisch ist, oder Sie bereits ein derartiges Problem in Ihrer verteilten Anwendung hatten, sprechen Sie uns an. Wir helfen Ihnen bei der Konzeptionierung und beraten Sie gerne über sinnvolle Mechanismen zum Thema Sicherheit. Rufen Sie uns an, oder schreiben uns eine Nachricht.

18.02.2019

Sie möchten mehr erfahren und ein unverbindliches Angebot?

Ihr Ansprechpartner: Michael Siedenbiedel
Ihr Ansprechpartner

Michael Siedenbiedel
Telefon +49 (0)2381 92 92 799
E-Mail info@fkt42.de

Ich berate Sie gern und freue mich, von Ihnen zu hören.


* Wir behandeln Ihre Daten vertraulich und verschicken keine Werbung!

Weitere Beiträge aus unserem Blog
Sicheres Internet für alle
Sicheres Internet für alle
Die Zwei-Faktor-Authentifizierung sorgt für mehr Sicherheit ✓ Wir zeigen wie Sie von der PSD2 Richtlinie profitieren können.
04.09.2019
Das Minimum Viable Product – mit Minimalismus zum Erfolg
Das Minimum Viable Product – mit Minimalismus zum Erfolg
Mit dem Minimum Viable Product Entwicklungskosten sparen, Risiken minimieren und Zeit gewinnen ✓ FKT42 zeigt wie das geht.
14.06.2019
App-Entwicklung: Nativ, Web, Hybrid oder Cross-Plattform
App-Entwicklung: Nativ, Web, Hybrid oder Cross-Plattform
Native App, Hybride App, Cross-Plattform oder Web App – Für Ihr Projekt die richtige Art der Programmierung wählen ✓ mit FKT42.
07.06.2019
FKT42 GmbH • Münsterstraße 5 • 59065 Hamm • Mail: info@fkt42.de • Tel.: +49 (0)2381 92 92 799