Warum sind Smart-Vertragsprüfungen notwendig?
Code, der nicht geprüft oder nicht gründlich geprüft wurde, kann zu katastrophalen Ergebnissen führen. Nehmen wir zum Beispiel den Fall des Terra-Luna-Zusammenbruchs. Obwohl der Code geprüft worden war, suchten die Prüfer nur nach bestimmten Mängeln in den Smart Contracts, berücksichtigten aber nicht das Gesamtbild dessen, wie das System unter verschiedenen realen wirtschaftlichen Bedingungen funktionieren würde.
Wenn DeFi und Web3 von Milliarden von Benutzern weltweit angenommen werden sollen, muss das sensible Thema angegangen werden, wie es möglich ist, dass diese Dienste, die Milliarden von Dollar verarbeiten, so viele kritische Probleme haben. Das Problem liegt in den Smart Contracts – dem Code, der definiert, wie verschiedene Plattformen und Assets zusammenarbeiten. Aufgrund der inhärenten Unveränderlichkeit von Blockchains ist es entscheidend, dass dieser Code fehlerfrei ist und genau wie beabsichtigt funktioniert. Alles andere und es ist durchaus möglich, dass massive Wertmengen gefährdet werden können.
Aus diesem Grund führen die meisten Web3-Projekte vor der Bereitstellung eine oder mehrere Codeaudits durch. Bei diesen Audits prüfen technische Experten alle Smart Contracts auf mögliche Probleme mit deren Logik, wie sie miteinander interagieren oder mögliche Schwachstellen, die vorhanden sein könnten. Audits können intern durchgeführt werden, aber es wird als bewährte Praxis angesehen, sie von Dritten durchführen zu lassen, um sicherzustellen, dass sie unparteiisch und gründlich sind.
Audits sind ein manueller Prozess, können aber durch Werkzeuge, Technologie und Automatisierung unterstützt und verbessert werden. In der Regel ist es am effektivsten, wenn echte Fachleute die abschließende Überprüfung vornehmen. Die Prüfer betrachten zuerst die allgemeinere Code-Infrastruktur, um zu verstehen, was das Projekt erreichen möchte. Anschließend werden spezifischere Codebereiche sowohl überprüft als auch unter verschiedenen Bedingungen getestet. Die Ergebnisse dieser Erkenntnisse werden zusammengestellt und einer letzten Überprüfung unterzogen, und schließlich an das Entwicklungsteam übergeben und anschließend online veröffentlicht, wo die Öffentlichkeit sie einsehen kann.
Audit-Berichte sind eine wesentliche Verteidigungslinie für Entwickler, um sicherzustellen, dass sie keinen fehlerhaften Service starten. Aber auch regelmäßige Benutzer und Investoren sollten sie lesen. Sie können wichtige Einblicke in die inhärenten Risiken bieten, die mit der Verwendung einer Plattform oder eines Vermögenswerts einhergehen, sowie darüber, wie gewissenhaft und transparent das Team ist, wenn es darum geht, diese Risiken zu beheben. Diese Informationen sind wichtig, wenn echtes Geld auf dem Spiel steht, da sie den Unterschied zwischen der Auswahl solider Dienste und dem Verlust von allem bedeuten können. Darüber hinaus sollte das Fehlen einer qualitativ hochwertigen Prüfung auch als ein riesiges rotes Warnsignal angesehen werden, da seriöse Projekte transparent in Bezug auf ihre Sicherheit sein möchten.
Wie liest man eine Smart-Vertragsprüfung?
Nun erklären wir, was Sie wahrscheinlich sehen werden, wenn Sie die Ergebnisse einer Prüfung betrachten. Verschiedene Audits können etwas unterschiedlich präsentiert werden, aber sie sollten alle mehr oder weniger die gleichen Bestandteile haben. Zu Beginn sollte es eine Übersicht geben, die verschiedene Informationen über das geprüfte Projekt enthält. Dazu gehören die Adresse des Smart Contracts, Informationen zur verwendeten Compiler-Version, auf welcher Blockchain er aufgebaut ist, und bestimmte externe Annahmen wie privilegierte Rollen und Integrationen, von denen das Projekt abhängt, um sicher zu bleiben. Dies kann hilfreich sein, wenn Sie mit dem Projekt nicht besonders vertraut sind, während andere möglicherweise bereits die meisten dieser Informationen kennen.
Außerdem ist es wichtig, die Version des Codes zu überprüfen, der geprüft wurde. Es ist möglich, dass in Zukunft Änderungen am Code vorgenommen werden können, die keinen Nachfolgeaudit erhalten. Es ist entscheidend zu wissen, dass alle nach dem Audit vorgenommenen Änderungen Fehler einführen können. Eine strenge Versionskontrolle und Überprüfungen von Änderungen sind also wichtig.
Dann folgt das eigentliche Herzstück der Prüfung: die Überprüfung aller Feststellungen des Teams. Es sollte eine Liste aller gefundenen Fehler oder Bedenken geben, detaillierte Beschreibungen des Problems und höchstwahrscheinlich einige Vorschläge zur Behebung. Die Probleme werden in Kategorien nach Schweregrad sortiert, normalerweise in die Kategorien geringfügig, moderat und kritisch. Geringfügige Probleme setzen normalerweise keine Gelder aufs Spiel, sollten aber behoben werden. Kritische Probleme bedeuten eine unmittelbare Bedrohung für Vermögenswerte und müssen umgehend behoben werden.
Die gefundenen Fehler können auch danach bewertet werden, wie wahrscheinlich sie ausgenutzt werden können. Dies liegt daran, dass einige Exploits verheerend sein können, aber schwer durchzuführen sind. Andere sind möglicherweise recht einfach, führen aber nicht wirklich zu einem Problem. Durch die Bereitstellung mehrerer Parameter zur Bewertung von Bedrohungen erhalten Entwickler den besten Überblick darüber, was zuerst angegangen werden sollte.
Auch wenn die Beschreibungen der gefundenen Fehler zu technisch sind, sollte eine Zusammenfassung in einfacher Sprache die wichtigsten Erkenntnisse erläutern und den Gesundheitszustand des Projekts zusammenfassen. Während die detaillierte Aufschlüsselung eher für das Entwicklungsteam gedacht ist, wird dieser Abschnitt für die meisten Benutzer am einfachsten zu verstehen sein und sollte ausreichen, um zu entscheiden, wie vertrauenswürdig ein Service ist.
Was werden Audits oft finden?
Es mangelt nicht an Dingen, die bei einer von Smart Contracts betriebenen Plattform oder einem Asset schiefgehen können. Schwachstellen können stark variieren und ziemlich komplex sein, aber einige gemeinsame Übeltäter existieren. Zum Beispiel müssen Smart Contracts, die dem Besitzer ermöglichen, Tokens zu erstellen oder zu vernichten, sorgfältig verwendet werden. Wenn diese Funktion nicht korrekt implementiert wird, ist die Möglichkeit, dass ein Angreifer sie nutzt, um Millionen von Assets zu erstellen oder zu zerstören, durchaus realistisch. Glücklicherweise wurde dieser genau Typ von Schwachstelle Anfang dieses Jahres auf der BNB-Kette von Binance identifiziert, bevor ein Angreifer sie ausnutzen konnte.
Dann können Fehler in der Art und Weise auftreten, wie Transaktionen verifiziert werden. Nomad Bridge erlitt einen Exploit durch ein routinemäßiges Upgrade, das es jedem ermöglichte, alte Transaktionen erneut zu senden, aber einfach ihre eigene Adresse einzusetzen. Dadurch entstand ein Verlust von über 150 Millionen US-Dollar für Nomad, nicht durch einen einzelnen Angreifer, sondern durch viele verschiedene Benutzer, da der Exploit unglaublich einfach zu replizieren war.
Die Beispiele gehen weiter, aber Sie sollten nun verstehen, welche Bedeutung Sicherheitsaudits für Smart-Contract-Plattformen und Blockchain-Protokolle haben. Sie schützen sowohl Entwickler als auch Benutzer, vorausgesetzt, sie werden von vertrauenswürdigen Dritten durchgeführt. Auf diese Weise wird die Branche sicherstellen, dass der Rest von 2023 und darüber hinaus nicht weiterhin den bisherigen Trend fortsetzt und Krypto in den Augen der Öffentlichkeit einen besseren Ruf verdienen kann.