In DeFi werden Einzahlungen, Kredite und Tauschaktionen automatisch durch Smart Contracts abgewickelt – ohne manuelle Prüfung und ohne Kundenservice, der versehentlich überwiesenes Geld zurückholen kann. Ist ein Vertrag korrekt geschrieben, ist er die verlässlichste Regel überhaupt. Ist er fehlerhaft, werden auch Sicherheitslücken ebenso akribisch „ausgeführt“.

$ETH Ethereum gehört zu den ersten öffentlichen Blockchains, die allgemeine Smart Contracts unterstützen. Aktuell: 2239.05 (24 Std. -5.02 %).

▍Code ist Gesetz – und gilt auch für Sicherheitslücken

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

Anders sieht es bei Schwachstellen im Code aus: Sobald jemand sie entdeckt und ausnutzt, können Gelder innerhalb weniger Transaktionen abgezogen werden und lassen sich nur schwer zurückholen. The DAO aus dem Jahr 2016 ist ein Beispiel dafür: Der Smart Contract wurde aufgrund einer Reentrancy-Schwachstelle angegriffen. Ethereum reagierte darauf mit einer Hard Fork; die ursprüngliche Chain ohne Fork wurde als Ethereum Classic (ETC) weitergeführt.

▍Was wird bei einem Audit eigentlich geprüft?

Ein Sicherheitsaudit ist eine Prüfung, die ein externes Sicherheitsteam zu einem bestimmten Zeitpunkt an einer bestimmten Version des Codes durchführt. Im Auditbericht werden üblicherweise die gefundenen Probleme, ihr jeweiliger Schweregrad und der Status ihrer Behebung durch das Projektteam aufgeführt.

Zu den häufig geprüften Punkten gehören Reentrancy, Fehler bei der Zugriffskontrolle, Probleme mit der Rechengenauigkeit und die Möglichkeit, Oracles zu manipulieren. Audits helfen dabei, solche häufigen Schwachstellen zu finden und zu reduzieren. Sie sind jedoch durch Zeit, Personal und den Umfang des Audits begrenzt.

▍Warum kann es trotz eines Audits zu Problemen kommen?

Erstens wird nur der festgelegte Codeumfang geprüft. Verträge außerhalb dieses Umfangs und später hinzugefügte Funktionen sind nicht abgedeckt. 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 übertragen.

Zweitens liegen manche Risiken nicht im Code selbst: Probleme mit einem Oracle oder einem anderen Protokoll, von dem das Protokoll abhängt, der Diebstahl des Admin-Schlüssels mit Upgrade-Berechtigung oder eine manipulierte Weboberfläche, die Nutzer dazu verleitet, eine schädliche Transaktion zu signieren, können ebenfalls zu Verlusten führen.

▍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 „geprüft“. Prüfe auch, ob der Vertrag einseitig aktualisiert werden kann und ob die Upgrade-Berechtigungen durch Multisig und eine Zeitsperre abgesichert sind.

Protokolle, die schon lange laufen und sich beim Umgang mit großen Geldbeträgen bewährt haben, gelten in der Regel als zuverlässiger. Das heißt aber nicht, dass sie keine Schwachstellen haben. Setze in DeFi daher nur Geld ein, dessen Verlust du verkraften kannst, verteile größere Beträge auf verschiedene Protokolle und widerrufe die Berechtigungen für Protokolle, die du nicht mehr nutzt.

▍Zum Schluss

Ein Audit ist der Anfang der Sicherheit, nicht das Ende. Es ist realistischer, Smart-Contract-Risiken als unvermeidbare Kosten der Teilnahme an DeFi zu betrachten, statt den Worten „geprüft“ zu vertrauen. Vorsicht ist keine Schande. Zu überleben ist viel wichtiger, als mit einem einzigen Trade möglichst viel zu verdienen.

Wenn du etwas gelernt hast, hinterlass einen Kommentar. Wenn etwas unklar ist, frag weiter in den Kommentaren.