Angriffe auf die Blockchain - Replay-Angriff

in #deutsch7 years ago

Im Kontext von Blockchainanwendungen stößt man immer wieder auf „Angriffe auf die Blockchain“
In dieser Beitragsreihe möchte ich erläutern, was genau dahinter steckt.
Heute : Replay Angriffe



Bildquelle

Um die Funktionsweise eines Replay Angriffs verstehen zu können zunächst eine kurze Wiederholung was ein Fork ist:

Was ist ein Fork ? - kurze Zusammenfassung

  • Fork ist English und bedeutet zu deutsch Aufspalten, verzweigen
  • Es wird eine Protokolländerung vorgenommen

Es wird unterschieden zwischen :

Soft Fork

Ein Soft-Fork ist eine Änderung, die auf der selben Blockchain laufen kann.
Man kann sich es wie ein Update vorstellen. Hierbei wird die alte als auch die neue Version unterstützt

Hard Fork

Wenn man von einem Fork hört ist meistens die Rede von einem Hard Fork, da dies größere Auswirkungen auf die Zukünftige Nutzung hat.

Bei einem Hard Fork ist es nicht mehr möglich, die verschiedenen Software Versionen auf der selben Blockchain laufen zu lassen.

Die Blockchain gabelt sich also an diesem Punkt und man muss sich entscheiden, welche man nutzen will.
Bekannte Beispiele von Hard Forks sind Beispielsweise Bitcoin und Bitcoin Cash oder Ethereum und Ethereum Classic.


Bildquelle

Was ist ein Replay Angriff ?

Ein Replay Angriff kann nach einem Hard Fork passieren, indem eine Transaktion auf der einen, als auch auf der anderen Blockchain ausgeführt wird.

Dies passiert folgendermaßen:

  • Auf Blockchain A wird eine Transaktion durchgeführt. Hierfür signiert der Sender die Transaktion mit seinem privaten Schlüssel.
  • Ein Angreifer sendet diese auf Blockchain A durchgeführte Transaktion genauso an das Netzwerk der Blockchain B.

Dies funktioniert da die Historie der beiden Blockchains in dem Moment des Forks gleich sind.

Beispiel :

  • Alice führt eine Transaktion von 3 Randomcoin an Bob auf Blockchain A aus.
  • Eve sieht die von Alice ausgeführte Transaktion und Verbreitet (Broadcastet) diese auf Blockchain B.
  • Beide Transaktionen sind auf beiden Blockchains valide.

Es ist also nicht möglich eine Transaktion zu ändern - vielmehr wird sie wiederholt (Replay)

Wie kann ein Replay Angriff verhindert werden

Hierfür muss im Protokoll eine Replay-Protection implementiert werden die verhindert, dass eine Transaktion auf Blockchain A und B valide ist. Dies kann verschiedenen erzielt werden - Beispielsweise durch eine Änderung der Signaturgenerierung einer der Blockchains.


Bildquelle

Was sollte ich als Halter eines Coins machen, wenn ein Hard Fork bevorsteht

Als Halter eines Coins kann man diesem Angriff nicht direkt gegenwirken.
Nach Möglichkeit sollte man ersteinmal abwarten und sichergehen, dass eine Replay-Protection implementiert worden ist, bevor man eine Transaktion vornimmt.

Zusammenfassung

  • Ein Replay Angriff passiert nach einem Hard Fork
  • Eine Transaktion wird auf beiden Blockchains ausgeführt
  • Eine der Blockchain-Protokolle muss eine Replay-Protection implementieren

Vielen dank fürs lesen :)

Im nächsten Beitrag dieser Reihe geht es um den 51%-Angriff