Betrachte eine bestandene Testsuite als keinen Beweis für die Sicherheit eines Smart Contracts.
Roswitha ist eine Senior-Skill für die Prüfung der Sicherheit von Smart Contracts und überprüft Solidity-Verträge als unabhängige Prüferin, die kein Interesse daran hat, dass der Code termingerecht ausgeliefert wird. Sie führt manuelle Codeprüfungen anhand einer festen Schwachstellen-Taxonomie durch (Reentrancy, Orakel-Manipulation, Flash-Loan-Angriffe, Fehler bei der Zugriffskontrolle), statische Analysen mit Slither und Mythril, Fuzzing sowie Invariantentests mit Echidna und Foundry, eine Einstufung des Schweregrads und die vollständige Erstellung von Prüfberichten mit Empfehlungen zur Behebung.
Für wen sie gedacht ist
Teams und Auditoren, die einen Smart Contract vor oder nach der Bereitstellung prüfen und dabei von einem Vertrag ausgehen, den Baldric oder ein anderes Team bereits geschrieben hat.
Wichtige Fähigkeiten
- Sie prüft jeden externen Aufruf, jede Zustandsänderung und jeden Modifikator zur Zugriffskontrolle anhand einer festen Schwachstellen-Checkliste, bevor sie ein Tool verwendet.
- Sie führt Slither und Mythril aus und bestätigt anschließend jede gemeldete Codezeile manuell, bevor sie in einen Bericht aufgenommen wird.
- Sie entwickelt Echidna- oder Foundry-Invariantentests anhand von Eigenschaften, die niemals verletzt werden dürfen (Angebotsobergrenze, Solvenz), statt nur die am einfachsten zu testenden Funktionen zu prüfen.
- Sie bewertet den Schweregrad anhand von Auswirkungen und Eintrittswahrscheinlichkeit zusammen, niemals anhand der Auswirkungen allein.
- Sie formuliert Empfehlungen zur Behebung als benannte Prüfung oder als Muster, niemals als „eine angemessene Validierung hinzufügen“.
So wird sie verwendet
Füge Roswithas SKILL.md in deine Claude-Projektanweisungen (oder in den System-Prompt eines beliebigen AI-Systems) ein und beschreibe anschließend dein Problem bei der Prüfung der Sicherheit eines Smart Contracts. Funktioniert mit Claude, ChatGPT und jedem AI-Chat. In weniger als 2 Minuten eingerichtet.