Blockchain und Decentralized Finance

Wo liegen die Risiken?

 

Grundlegende Gefahren und Angriffsvektoren

Grundlegende Gefahren und Angriffsvektoren

Alle heute verwendeten Blockchains gehen auf die Bitcoin-Blockchain zurück, die von dem Pseudonym Satoshi Nakamoto erfunden und veröffentlicht wurde.[1] Da die Bitcoin-Blockchain wesentlich einfacher als die meisten späteren Blockchains ist - sie unterstützt keine Smart Contracts - kann sie grundsätzlich als sicherer angesehen werden. Die Tatsache, dass sie so weit verbreitet ist und umfassend analysiert wurde, macht neu auftauchende Sicherheitsprobleme unwahrscheinlich. Es sollte klar sein, dass die Kehrseite dieses Arguments für den Großteil späterer Blockchains gilt:

  • Ihre im Vergleich zu Bitcoin höhere Komplexität führt zu mehr Möglichkeiten für potentielle Sicherheitslücken.
  • Insbesondere andere Blockchains als Ethereum und komplexere Produkte, die auf Ethereum aufsetzen, sind möglicherweise noch nicht von genügend Experten im Detail analysiert worden. Dadurch kann unter Umständen nicht sichergestellt sein, dass alle Sicherheitslücken geschlossen sind.

Allerdings wird oft vergessen, dass auch Bitcoin verschiedene theoretische Schwachstellen hat, die potentiell in der Zukunft ausgenutzt werden könnten und die auch für alle späteren Blockchains gelten.

Sybil-Angriff

Bei einem Sybil-Angriff oder 51%-Angriff erlangt eine einzelne Person oder Organisation die Kontrolle über genügend Knoten innerhalb eines Blockchain-Netzwerks, um die Gesamtkontrolle über die Dokumentation der Transaktionen zu erlangen. Bei Bitcoin und den meisten anderen Kryptowährungen erfordert ein Sybil-Angriff die Kontrolle über mehr als die Hälfte des Netzwerks. Je kleiner die Kryptowährung und damit je weniger Knoten in einem Netzwerk beteiligt sind, desto leichter ist ein Sybil-Angriff durchzuführen.

Zumindest bei den größeren Kryptowährungen ist es unwahrscheinlich, dass sich ein Sybil-Angriff wirtschaftlich lohnen würde. Es ist jedoch durchaus möglich, dass einer der größeren Staaten beschließen könnte, ein oder mehrere Blockchain-Netzwerke aus politischen Gründen auszuschalten. Ein Staat könnte in der Lage sein, die dafür notwendigen Ressourcen einzusetzen. In diesem Zusammenhang ist anzumerken, dass sich das Bitcoin- und Ethereum-Mining zeitweise in den Händen einer kleinen Anzahl von Mining-Pools mit Sitz in China konzentriert hat, die einer Regierung wie der VR China einen günstigen Ausgangspunkt für einen Sybil-Angriff bieten könnten.[2]

Versagen der asymmetrischen Verschlüsselung

Das Eigentum auf einer Blockchain basiert auf asymmetrischer Verschlüsselung - eine Transaktion weist das Eigentum einem öffentlichen Schlüssel zu, woraufhin für den Versand des Eigentums der passende private Schlüssel verwendet werden muss. Bitcoin, Ethereum und die meisten anderen Blockchains verwenden eine asymmetrische Verschlüsselung auf der Grundlage elliptischer Kurven, die theoretisch für Angriffe mit Quantencomputern anfällig ist. Dies bedeutet, dass die bestehenden Blockchains durch immer performantere und billigere Quantencomputer unsicher werden könnten, lange bevor die letzten Bitcoins gemined wurden.

Derzeit ist der Einsatz von Quantencomputing in großem Maßstab technisch nicht möglich. Selbst wenn er möglich wird, dürfte er auf absehbare Zeit zu teuer bleiben, als dass sich sein Einsatz zum Cracken von Kryptowährungen finanziell lohnen würde. Eine Regierung könnte sich jedoch dafür entscheiden, es einzusetzen, um eine Kryptowährung aus politischen Motiven zu Fall zu bringen.

Versagen von kryptographisch sicheren Hashing-Verfahren

Die Integrität einer Blockchain hängt von der Sicherheit der Hash-Funktion ab, die zum Bestätigen der Blöcke verwendet wird: Eine unsichere Hash-Funktion könnte missbraucht werden, um einen Block mit gefälschten Informationen an einer beliebigen Stelle in die Blockchain einzufügen und um nahezu kostenfrei auf einer Proof-of-Work-basierten Blockchain wie Bitcoin zu minen. In der Praxis könnte eine weitverbreitete Blockchain wie Bitcoin einfach zu einer neuen, sicheren Hash-Funktion für neue Blöcke wechseln; es gäbe auf der Welt wahrscheinlich ausreichend Kopien der Block-Historie, um Unstimmigkeiten über ihren Inhalt zu vermeiden. 

Die zuvor beschriebene Anfälligkeit für die Quantenanalyse gilt nicht für Hash-Algorithmen und es gibt bisher keine Anzeichen, dass die in den meisten Blockchains verwendeten Algorithmen in nächster Zeit entschlüsselt werden. Eine wichtige Anmerkung bei dieser Aussage ist natürlich, dass sich Durchbrüche in der Mathematik nie prognostizieren lassen.

Ansprechpartner

Julian Ueding

Julian Ueding
IT Consultant
+49 172 4067413
Julian.ueding@msg.group

Unsichere Smart Contracts

Unsichere Smart Contracts

Smart Contracts beruhen auf dem Prinzip "Code ist Gesetz". Das klingt verlockend, bis man erkennt, dass ein Großteil des weltweit geschriebenen Codes bei seiner ersten Veröffentlichung fehlerhaft ist. Es gibt einen Grund, warum die Veröffentlichungszyklen der meisten großen Softwareprodukte Alpha- und Beta-Versionen umfassen. Smart Contracts sind außerdem per Definition open-source. Dies bedeutet, dass Angreifer alle Möglichkeiten haben, die Verträge detailliert auf einer Blockchain zu prüfen. Dies können sie solange fortführen, bis sie einen mit Schwachstellen finden und diese zu ihrem Vorteil nutzen.

Jede Art von Programmier- oder Logikfehler macht einen Smart Contract angreifbar. In diesem Abschnitt werden einige Schwachstellen aufgeführt, die in der Vergangenheit - oft wiederholt - beobachtet wurden.

Numerischer Überlauf

Ein Computer speichert eine Zahl als eine endliche Folge von Bits. Wenn arithmetische Operationen mit Zahlen endlicher Größe zu einem Ergebnis führen, das zu groß für den verfügbaren Speicherplatz ist, wird die Zahl "umgedreht" und beginnt wieder bei Null. Es gibt viele Variationen dieses grundlegenden Verfahrens. Viele von ihnen wurden verwendet, um Smart Contracts zu einem Fehlverhalten zu bringen und sie dadurch zu hacken.[3]

Wiedereintrittsstellen

Da Smart Contracts immer komplizierter werden, kommt es häufig zu Situationen, in denen ein Smart Contract einen anderen aufruft. Problematisch wird es, wenn ein Smart Contract Werte überträgt und einen anderen Smart Contract aufruft, bevor er seinen internen Kontostand aktualisiert. In diesem Fall kann ein Angreifer dafür sorgen, dass der aufgerufene Smart Contract den ursprünglichen Smart Contract wieder aufruft, bevor sich der Kontostand des ursprünglichen Smart Contracts geändert hat. Wenn dies in einer Schleife immer und immer wieder geschieht, können damit weit mehr Werte übertragen werden, als dem Smart Contract ursprünglich zur Verfügung stehen sollte. Dies war die Technik hinter dem berüchtigten DAO-Hack von 2016.[4]

Unzureichende Zufälligkeit

Bei Smart Contracts, die eine Zufallszahl benötigen, wird diese häufig anhand eines Attributs des aktuellen Blocks, z. B. seines Zeitstempels, generiert. Das Problem dabei ist, dass es einem Angreifer möglich sein kann, dieses Attribut auf einen Wert seiner Wahl zu setzen und so den generierten Zufallswert zu kontrollieren.[5]

Interaktion mit der Außenwelt

Interaktion mit der Außenwelt

Blockchains und Smart Contracts werden nicht in einem Vakuum ausgeführt, sondern interagieren mit verschiedenen anderen Systemen, die weitere Angriffsmöglichkeiten bieten.

Oracle-Manipulation

Smart Contracts nutzen Oracles, um auf externe Daten zuzugreifen. Diese erlaubt eine automatisierte Überprüfung, ob spezifische Bedingungen (z.B. Temperatur, Niederschlag, Wechselkurs) erfüllt sind oder nicht. Durch die Manipulation des Oracles selbst oder durch die Umleitung von Anfragen an ein Oracle auf einen anderen Knoten, z. B. durch DNS Spoofing[6], kann ein Angreifer einen Smart Contract mit falschen Informationen versorgen.

Manipulation von NFT-Indexen

Ein nicht-fungibler Token (NFT) verweist auf einen bestimmten Vermögenswert, z. B. ein digitales Kunstwerk. Die meisten Blockchains sind nicht in der Lage, Objekte (z.B. Bilder, Videos, Musik) auf der Blockchain selbst zu speichern. Das bedeutet, dass stattdessen ein Token gespeichert wird. Das Kunstwerk wird an anderer Stelle gespeichert und durch den Token auf der Blockchain referenziert. Nur eine sichere Implementierung gewährleistet, dass der Referenz-Token nicht einfach nur eine Bitfolge ist, sondern das Objekt eindeutig spezifiziert. Andernfalls könnte die Website, die das Objekt verwahrt, gehackt und das entsprechende Objekt durch ein anderes ersetzt werden. Die Blockchain-Inhalte würden dabei keine Möglichkeit bieten, den Austausch zu beweisen.

Multi-Chain-Attacken

Ein Smart Contract auf einer Blockchain kann auf eine oder mehrere Entitäten, die auf einer anderen Blockchain gespeichert sind, verweisen. Insbesondere, wenn die Komplexität eines solchen Konstrukts zunimmt, können Schwachstellen entstehen. Ein Angreifer kann einen Weg finden, einen Teil der finanziellen Transaktionen auf einer Blockchain auszuführen, während die andere Blockchain unberührt bleibt.

Missbrauch der Block-Mechanik

Missbrauch der Block-Mechanik

Die Funktionsweise einer Blockchain, bei der Transaktionsdaten in Blöcken gesammelt und dann vom Netzwerk bestätigt werden, ist anfällig für verschiedene Arten von Missbrauch. Dies liegt daran, dass Informationen über ausstehende Transaktionen öffentlich und für jeden sichtbar sind, bevor die Transaktionen tatsächlich ausgeführt werden.

Front-Running

Ein Angreifer kann sehen, dass eine Transaktion ein Kandidat für die Aufnahme in den nächsten Block ist. Im Fall des Front-Runnings kann er eine andere Transaktion ausführen, die für die Aufnahme in denselben Block bestimmt ist. Mit seiner Transaktion verändert er aber die finanziellen Grundlagen der ersten Transaktion. Dies kann dazu führen, dass sie für ihren Ausführer weniger vorteilhaft und für den Angreifer vorteilhafter wird. Alternativ kann der Angreifer zu seinem Vorteil die erste Transaktion durch seine Transaktion ersetzen. In vielen Blockchains kann eine später getätigte Transaktion vor oder anstelle einer früheren Transaktion durchgeführt werden, indem mehr Gas geboten wird.[7]

Es ist schwierig, Smart Contracts vollständig gegen "Front-Running" zu schützen. Ein Schutz ist nicht möglich, ohne gleichzeitig die Fähigkeiten des Smart Contracts einzuschränken, in Echtzeit aufgerufen und genutzt zu werden ("Liveness").

Flash-Loans

Ein Flash-Loan wird von einem Smart Contract begleitet, der das Darlehen ungültig macht, wenn es nicht innerhalb desselben Blocks zurückgezahlt wird.[8] Das bedeutet, dass das Darlehen für keine der beiden Parteien mit Kosten verbunden ist, aber dennoch für Finanzmanipulationen genutzt werden kann, z.B. um einen Wechselkurs zu beeinflussen. Weitere Möglichkeiten können die Durchführung einer anderen, nicht damit zusammenhängende Transaktion oder die Manipulation von automatischen Oracles sein.

Unzureichendes Gas-Griefing

Die Tatsache, dass Ethereum-Smart Contracts nur dann wirksam werden, wenn sie mit ausreichend Gas ausgeführt werden, öffnet einem Angreifer Tür und Tor, wenn er zu wenig Gas anbietet. Unzureichendes Gas-Griefing ist in der Regel nur ein Ärgernis. Es kann aber auch einen finanziell relevanten Angriff ermöglichen, wenn eine Aktion mehrere Unterverträge aufruft und nicht sichergestellt ist, dass entweder keine Unterverträge oder alle Unterverträge ausgeführt werden.[9]

Finanzmanipulation

Finanzmanipulation

Fast alle Arten von Finanzmanipulationen, die in der Vergangenheit auf traditionellen Märkten beobachtet wurden, sind auch auf Kryptowährungsmärkte anwendbar. Die Tragweiten sind aber im Fall von Kryptowährungsmärkten noch größer, weil:

  • Kryptowährungen außerhalb eines rechtlichen Rahmens operieren.
  • ihre Marktkapitalisierung oft geringer als bei traditionell gehandelten Währungen und Rohstoffen ist, so dass weniger Finanzvolumen erforderlich ist, um sie zu manipulieren.

Die folgenden Abschnitte sind nur einige Beispiele aus einem umfangreichen Angriffsbereich.

Fake News

Ein Angreifer kann gefälschte Nachrichten über externe Ereignisse oder Finanztransaktionen verwenden, um Panik auszulösen und andere zum Kauf oder Verkauf zu seinem Vorteil zu bewegen. Auf einer Blockchain können Fake News auch die Form von Transaktionen annehmen, die am Ende nicht ausgeführt werden (siehe "Unzureichendes Gas-Griefing").

Wash-Trading

Wash-Trading bezieht sich auf den Akt des "Fabrizierens von Geschäften oder des Handelns als Gegenpartei bei Transaktionen".[10] Gefälschte Abschlüsse, insbesondere wenn sie innerhalb eines einzigen Blocks getätigt werden, können dazu verwendet werden, die verfügbare Liquidität größer wirken zu lassen. Dies kann genutzt werden, um zum Beispiel eine Börse beliebter erscheinen zu lassen, als sie tatsächlich ist. Weiterhin können dadurch falsche Inputs für Oracles generiert werden.

Quote Stuffing

‘Unter Quote Stuffing versteht man die Praxis, viele Aufträge in einem kurzen Zeitraum zu übermitteln und dann wieder zurückzuziehen, um damit den Markt mit Angeboten zu überschwemmen und bei Wettbewerbern eine kürzere Verarbeitungszeit zu erzwingen.’[11] Wie im Abschnitt "Unzureichendes Gas-Griefing" erläutert, führt die Verarbeitung auch von Transaktionen, die letztendlich nicht ausgeführt werden, zu einer Anfälligkeit der Kryptowährungsmärkte für diese Praxis.

Authentifizierung und Autorisierung

Authentifizierung und Autorisierung

Die ursprünglichen Bitcoin-Blockchain war darauf aufgebaut, dass ein asymmetrischer privater Schlüssel nicht nur als perfektes Mittel zur Authentifizierung eines Vermögenswerts dient, sondern auch die Rolle des Vermögenswerts selbst übernehmen sollte. In der Praxis und insbesondere bei komplexeren Blockchains ist die Realität oft alles andere als perfekt.

Verlust des Private Keys

Es gibt nur wenige Situationen, in denen der Verlust von Zugangsdaten so katastrophal ist, wie in dem Fall von Zugangsdaten zu Bitcoins oder Ether. In Wales beispielsweise warf ein Bitcoin-Miner seinen Computer weg, als Bitcoins nahezu wertlos waren. Er musste dann den Verlust von rund 280 Mio. $ hinnehmen, als ihm die Durchsuchung der Deponie verboten wurde, auf der er seinen alten Computer vermutete.[12] Aus diesem Grund werden in der Praxis heute in der Regel andere Ausweisformen für den Kryptohandel verwendet, die gleichzeitig weniger anfällig für Verlust und anfälliger für Diebstahl sind.

Diebstahl von Wallet-Zugangsdaten

Die meisten Nutzer verwenden Wallet-Anbieter, bei denen der Zugang zu einem Wallet mit einem Private Key durch eine klassische Ein- oder Zwei-Faktor-Authentifizierung ersetzt wird. Es ist von entscheidender Bedeutung, zu verstehen, dass die Authentifizierungsdaten dann für das gesamte Repertoire an Standardanwendungs-, Authentifizierungs- und netzwerkbasierten Cyberangriffen anfällig sind.[13]

Admin-Zugangsdaten

Die Entwickler einiger kleinerer Blockchains bauen häufig Admin-Zugänge in ihre Netzwerke ein. Damit können sie Smart Contracts außer Kraft setzen, falls diese den oben beschriebenen Angriffen zum Opfer fallen. Dies widerspricht der ursprünglichen "Code ist Gesetz"-Philosophie. Die Entwickler sind dann im Wesentlichen Regierung, Richter und Polizei für all das, was auf ihrer Blockchain passiert. Obwohl man erwarten könnte, dass sie ihr Ruf von einem Machtmissbrauch abhält, sind sie im Vergleich zu staatlichen Kontrollinstanzen offensichtlich weit weniger vertrauenswürdig. Wichtig zu erwähnen: wenn Admin-Zugangsdaten gestohlen werden, wird die gesamte Blockchain wertlos.

Fehlende Smart-Contract-Prüfungen

Smart Contracts sollten immer überprüfen, wer sie aufruft, was der Aufrufer erreichen möchte und dass die Operation gültig ist. Leider stellt sich oft erst dann heraus, dass ein Smart Contract wichtige Prüfungen nicht durchführt, wenn es zu spät ist.  Dies passierte auch im Fall eines Ethereum-Neulings, der versehentlich Ether im Wert von 150 Millionen Dollar dauerhaft unbrauchbar gemacht hat.[14]

Und, sind Sie bereit für das NEXT BIG THING in DLT?

Wenn Sie wissen möchten, wie Sie Ihr Geschäft mithilfe von DLT ausbauen, einen Workshop zu spezifischen Themen abhalten oder einfach mehr über die Potenziale und Anwendungsmöglichkeiten der DLT erfahren möchten:

Sprechen Sie uns an!