In DeFi werden Einzahlungen, Kredite und Tauschgeschäfte automatisch durch Smart Contracts abgewickelt – ohne manuelle Prüfung und ohne Kundenservice, der versehentlich überwiesenes Geld zurückholen kann. Ist der Vertrag richtig geschrieben, ist er das zuverlässigste Regelwerk. Ist er fehlerhaft, werden auch Schwachstellen ebenso gewissenhaft „ausgeführt“.

Ethereum, auf dem sich $ETH befindet, gehört zu den ersten öffentlichen Blockchains, die allgemeine Smart Contracts unterstützen. Aktueller Kurs: 2017.21 (24 Std. -2.01 %).

■ Der Code ist das Regelwerk – und Schwachstellen gehören auch dazu

Sobald ein Smart Contract auf der Blockchain bereitgestellt ist, wird er automatisch gemäß dem Code ausgeführt. Das sorgt für Transparenz und Vorhersehbarkeit: Jeder kann den Code lesen, und bei nicht aufrüstbaren Verträgen ändern sich die Regeln nicht, nur weil jemand seine Meinung ändert.

Andererseits können Gelder, sobald jemand eine Schwachstelle im Code entdeckt und ausnutzt, innerhalb weniger Transaktionen abgezogen werden und sind nur schwer zurückzuholen. The DAO aus dem Jahr 2016 ist ein Beispiel dafür: Der Vertrag wurde durch eine Reentrancy-Schwachstelle angegriffen. Ethereum reagierte darauf mit einer Hard Fork; die nicht geforkte ursprüngliche Chain wurde als Ethereum Classic (ETC) fortgeführt.

■ Was genau wird bei einem Audit geprüft?

Bei einem Sicherheitsaudit prüft ein externes Sicherheitsteam den Code einer bestimmten Version zu einem bestimmten Zeitpunkt. Im Auditbericht werden in der Regel die gefundenen Probleme, ihr jeweiliger Schweregrad und der Status ihrer Behebung durch das Projektteam aufgeführt.

Zu den häufig geprüften Punkten zählen Reentrancy, Fehler bei der Zugriffskontrolle, Probleme mit der Rechengenauigkeit und mögliche Manipulationen von Orakeln. Ein Audit hilft dabei, solche verbreiteten Schwachstellen zu finden und zu reduzieren. Es ist jedoch durch Zeit, Personal und den Umfang der Prüfung begrenzt.

■ Warum kann es trotz eines Audits zu Problemen kommen?

Erstens deckt ein Audit nur den festgelegten Umfang des Codes ab. Verträge außerhalb dieses Umfangs und später hinzugefügte Funktionen sind nicht eingeschlossen. Wird der Code nach dem Audit geändert oder unterscheidet sich die tatsächlich bereitgestellte Version von der geprüften, lassen sich die Ergebnisse nicht ohne Weiteres darauf übertragen.

Zweitens liegen manche Risiken nicht im Code selbst: Probleme mit einem vom Protokoll genutzten Orakel oder einem anderen Protokoll, der Diebstahl des Administratorschlüssels mit Upgrade-Berechtigung oder eine manipulierte Weboberfläche, die Nutzer dazu verleitet, bösartige Transaktionen zu signieren, können ebenfalls Verluste verursachen.

■ Was können normale Nutzer tun?

Achte beim Lesen eines Auditberichts auf das Datum, den Umfang und noch nicht behobene Probleme. Verlass dich nicht nur auf die Worte „auditiert“. Du kannst auch prüfen, ob der Vertrag einseitig aktualisiert werden kann und ob die Upgrade-Berechtigung durch Multisignatur und Zeitsperre kontrolliert wird.

Protokolle, die schon lange laufen und große Geldbeträge verarbeitet haben, gelten meist als zuverlässiger, aber auch das bedeutet nicht, dass sie keine Schwachstellen haben. Lege daher in DeFi nur so viel Geld an, wie du im Verlustfall verkraften kannst, verteile größere Beträge auf verschiedene Protokolle und denke daran, die Berechtigungen für nicht mehr genutzte Protokolle zu widerrufen.

■ Kurz gesagt

Ein Audit ist der Anfang der Sicherheit, nicht ihr Ende. Es ist realistischer, Risiken von Smart Contracts als Kosten zu betrachten, die man bei der Teilnahme an DeFi in Kauf nehmen muss, als den Worten „auditiert“ zu vertrauen. Überprüfe Informationen anhand mehrerer Quellen, bevor du handelst, und verlass dich nicht nur auf die Aussage einer einzelnen Person.

Bist du schon einmal in eine ähnliche Falle getappt? Erzähl davon, damit andere nicht dieselben Fehler machen.