Was ist ein Smart Contract Audit?
Bei einem Smart Contract Audit handelt es sich um eine umfassende methodische Untersuchung und Analyse des Codes eines Smart Contracts, der für die Interaktion mit einer Kryptowährung oder Blockchain verwendet wird. Dieser Prozess wird durchgeführt, um Fehler, Probleme und Sicherheitslücken im Code zu entdecken, um Verbesserungen und Möglichkeiten zu deren Behebung vorzuschlagen. Im Allgemeinen sind intelligente Vertragsprüfungen erforderlich, da es sich bei den meisten Verträgen um finanzielle Vermögenswerte und/oder Wertgegenstände handelt.
Solche Prüfungen sind aufwändig, da Smart Contracts häufig miteinander interagieren und auch Integrationen mit Drittsystemen dazu führen können, dass das System angreifbar wird. Aus diesem Grund werden die Prüfungen häufig auf andere intelligente Verträge ausgeweitet, die an Interaktionen beteiligt sind, und sogar auf diejenigen, mit denen sie interagieren. Solche Prüfungen umfassen in der Regel sowohl die Durchführung von Tests als auch die manuelle Codeanalyse.
Intelligente Verträge verwalten oft große Geldbeträge und ein einzelner Fehler oder eine einzelne Schwachstelle kann zu großen Verlusten führen. Genauer gesagt könnten die Benutzer und Stakeholder der betreffenden dezentralen Anwendung alle Vermögenswerte verlieren, die Teil des Ökosystems sind.
Die Empfehlungen der Prüfer werden vorab an das Projektteam übermittelt und die entsprechenden Maßnahmen im Abschlussbericht festgehalten. Es gilt als Zeichen der Authentizität und Integrität des Projekts. Aus diesem Grund sind Teams sehr an einer Prüfung interessiert, um das Vertrauen der Benutzer zu gewinnen und die Glaubwürdigkeit des Projekts zu erhöhen. Diese Audits werden typischerweise in mehreren Schritten durchgeführt.
Der erste Schritt besteht darin, dass sich das Team und die Prüfgruppe auf den Umfang und die Spezifikationen des Audits einigen. Das bedeutet, dass den Prüfern Design, Zweck, Architektur und andere Details des Smart Contracts mitgeteilt werden. Als nächstes folgt die Testphase, in der die Prüfer die einzelnen Funktionen (Unit-Tests) und dann größere Teile (Integrationstests) testen.
Darüber hinaus werden automatisierte Tools zur Fehlererkennung und -analyse eingesetzt, um nach allgemein bekannten Schwachstellen in den Verträgen zu suchen. Schließlich prüfen Prüfer den Code manuell, um die Absichten des Entwicklers zu verstehen und die Ergebnisse in diesem Kontext zu interpretieren. Abschließend wird vom Team ein Bericht mit den Ergebnissen und den durchgeführten Korrekturen erstellt.
Die Bedeutung von Smart-Code-Audits lässt sich daran ablesen, dass die Spaltung der Ethereum-Kette im Jahr 2016 auf eine Code-Schwachstelle zurückzuführen war, die von einem Angreifer ausgenutzt wurde, wodurch Gelder in Millionenhöhe gefährdet wurden. Ein „rekursiver Aufruffehler“ ermöglichte es dem Angreifer, dem demokratisierten Hedgefonds „DAO“ ETH im Wert von mehreren Millionen Dollar zu entziehen. Die anschließenden Maßnahmen der Community darüber, ob die Gelder zwangsweise zurückgegeben werden sollten, führten zu Meinungsverschiedenheiten und einem Hard Fork.
Smart-Code-Audits werden in der aufstrebenden DeFi-Branche immer wichtiger, wo mit Fehlern gefüllte Smart Contracts oft überstürzt herausgebracht werden, um die Nachfrage der Anleger zu befriedigen. Dies hat im Jahr 2020 zu einer Reihe kostspieliger Hacks in Millionenhöhe geführt, insbesondere bei Harvest, Yam Finance, bZx, Balancer und Eminence.