In diesem Artikel zeigen wir, wie durch eine Sybil-Attacke das Blockchainnetzwerk angegriffen wird und wie sich man dieses davor schützen kann.
Wie bereits das “Problem der byzantinischen Generäle” beschreibt, können Knoten böswillig handeln. Eine Möglichkeit wie Knoten versuchen das Netzwerk zu betrügen: Sie duplizieren sich mehrfach, um so viel an Entscheidungskraft zu gewinnen mit dem Ziel den demokratischen Konsens zu beeinflussen. Eine solche Attacke bezeichnet man als Sybil-Angriff.
Das Begriff “Sybil” kommt ursprünglich aus dem gleichnamigen Roman “SYBIL“. Dort litt die Hauptfigur Sybil Dorsett unter dissoziativer Identitätsstörung. Da sich dieses Krankheitsbild sehr auf diesen hier besprochenen Cyber-Angriff übertragen lässt, wurde dieser Sybil-Angriff getauft.
Die Mehrheit (mind. 2/3) aller Knoten im Blockchain-Netzwerk muss ehrlich handeln. In unserem Beispiel haben wir einen Verräter und zwei ehrliche Knoten. Diese müssen eine Entscheidung treffen. Als Beispiel haben wir hier eine Entscheidung zwischen Rückzug und Angriff. Dieses Beispiel kennst du vielleicht schon aus unserem Artikel über das “Problem der byzantinischen Generäle”.
Werden alle Stimmen zusammengezählt, lautet das Ergebnis “Angriff”. Unser Verräter möchte hingegen die Entscheidung “Rückzug” durchsetzen. Wie macht er das also?
Indem der Verräter versucht, seine Entität und somit seine Stimme zu duplizieren, kann er das Netzwerk korrumpieren. Die ehrlichen Knoten erhalten statt einer Nachricht (wie im vorherigen Beispiel) direkt drei Nachrichten.
Somit ändert sich nach der Stimmauszählung das Ergebnis. Statt “Angriff” entscheidet sich das Netzwerk nun für “Rückzug” und der Verräter hat sein Ziel erreicht.
Um Sybil-Angriffe zu verhindern, muss das Netzwerk überprüfen, ob alle Knoten vertrauenswürdig handeln und nur eine Stimme wiedergeben.
In der realen Welt laufen Wahlen ab, indem jeder Bürger mit seinem Personalausweis seine Identität bestätigen kann. Dadurch kann jeder nur eine Stimme abgeben. Dies erfordert aber eine zentrale Instanz. In diesem Fall der Staat. Dieser erstellt die Wählerlisten und verteilt die Personalausweise.
In einer Blockchain gibt es jedoch nicht diese kontrollierende Instanz. Stattdessen muss ein Knoten beweisen, dass er ein echter Teilnehmer ist. Dazu überprüft man, ob dieser die nötigen Ressourcen besitzt, um einen Block zu generieren oder ob er diese aufteilen muss und somit eine vervielfachte Identität darstellt.
Dies kann, wie beispielsweise bei Bitcoin, über einen Arbeitsnachweis (sogenanntes Proof-Of-Work) ablaufen. Dazu muss der Teilnehmer in einem Mining-Prozess neue Blöcke finden und somit beweisen, dass er über eine bestimmte Rechenkapazität verfügt. Diese Rechenressource ist aufgrund der hohen Anschaffungskosten für Hardware und laufende Kosten für Strom und Lagerung sehr teuer.
Alternativ kann der nächste Blockproduzent über das Proof-Of-Stake bestimmt werden. Dazu muss dieser als Sicherheit einen “Stake” in interner Ressource (also interner Währung) hinterlegen. Mit der Menge an Stake steigt dafür die Wahrscheinlichkeit, den nächsten Block anbinden zu dürfen. Da viel an interner Währung als Gegenleistung hinterlegt werden muss, macht dies eine Sybil-Attacke sehr teuer.