Smart-Contract-Risiko
Das Programm tut, was im Code steht - nicht, was gemeint war
Was kann passieren
Ein Smart Contract lässt sich nach der Veröffentlichung in aller Regel nicht mehr ändern. Was darin steht, gilt.
Ein Fehler darin ist deshalb etwas anderes als ein Fehler in einer gewöhnlichen Anwendung. Bei einer Banking-App fällt ein Fehler auf, jemand korrigiert ihn, fertig. Bei einem Smart Contract läuft der Fehler weiter - und jeder kann den Code lesen und ihn finden.
Typischerweise passiert eines von drei Dingen:
| Der Ablauf lässt sich umkehren | Das Programm zahlt aus und schreibt danach den Kontostand fort. Wer zwischen beidem erneut anfragt, bekommt erneut ausgezahlt - der Stand ist ja noch nicht aktualisiert. |
|---|---|
| Eine Rechnung stimmt nicht | Ein Wert wird falsch gerundet, falsch skaliert oder in der falschen Einheit verglichen. Das Programm rechnet korrekt mit einer falschen Zahl. |
| Eine Prüfung fehlt | Eine Funktion, die nur der Betreiber aufrufen sollte, prüft nicht, wer sie aufruft. |
In keinem dieser Fälle wurde etwas „geknackt“. Es gibt kein Passwort, das erraten wurde, und keinen Server, in den jemand eingebrochen ist. Der Angreifer benutzt das Programm genau so, wie es geschrieben ist.
Wie daraus ein finanzieller Schaden entsteht
Nicht jeder Fehler kostet Geld. Entscheidend ist, ob der Vertrag Mittel hält und ob der Fehler erlaubt, sie zu bewegen.
Wer Geld in ein Protokoll legt, übergibt es dem Vertrag. Es liegt dann nicht mehr in der eigenen Wallet, sondern im Programm. Fließt es von dort ab, gibt es keine Stelle, die es zurückholt: keine Bank, keine Rückbuchung, keine Frist.
Der Schaden trifft dabei nicht nur den, der den Fehler ausgenutzt hat oder ausnutzen ließ. Er trifft alle, deren Mittel in demselben Vertrag lagen - oft anteilig, manchmal vollständig.
Ein dokumentierter Fall
DOKUMENTIERTER FALLThe DAO, Juni 2016
Der Fall ist bis heute das Lehrbuchbeispiel, weil er beide Eigenschaften zeigt: Der Vertrag tat genau, was programmiert war, und rückgängig machen ließ sich das nur, indem die gesamte Blockchain gespalten wurde. Das ist kein Verfahren, das für einen Einzelfall zur Verfügung steht.
Kann das Gegenstand eines Covers sein?
Grundsätzlich ja. Das Smart-Contract-Risiko ist das Risiko, für das es am längsten Cover-Produkte gibt.
Der Grund liegt darin, dass es sich gut beschreiben lässt: Ein bestimmter Vertrag, unter einer bestimmten Adresse, verliert in einem bestimmten Zeitraum Mittel. Das ist eine Bedingung, die sich nachprüfen lässt - auf der Blockchain ist jede Bewegung sichtbar.
Was das Wording beantworten muss
Sieben Fragen. Wer sie an einem konkreten Produkt durchgeht, weiß mehr als aus jeder Produktbeschreibung.
| Welcher Vertrag genau? | Eine Adresse, nicht ein Produktname. Protokolle bestehen aus mehreren Verträgen - gedeckt sind selten alle. |
|---|---|
| Was zählt als Ereignis? | Reicht ein Mittelabfluss? Muss er dauerhaft sein? Muss er einen Mindestbetrag überschreiten? |
| Ab wann gilt es als eingetreten? | Mit der Transaktion, mit der Feststellung, oder erst mit einer Bestätigung durch eine benannte Stelle? |
| Was ist ausgeschlossen? | Häufig ausgenommen: Kursverluste, Fehler des Nutzers, Angriffe auf die Blockchain selbst, Vorgänge außerhalb des genannten Vertrags. |
| Was, wenn Mittel zurückkommen? | Bei größeren Vorfällen wird ein Teil manchmal zurückgegeben. Mindert das die Leistung, und wie wird das gerechnet? |
| Wer stellt fest, dass etwas passiert ist? | Der Anbieter, eine Abstimmung, ein Gutachter - und wie lange darf das dauern? |
| Worauf lautet die Leistung? | Auf denselben Token, auf einen Stablecoin oder auf einen Betrag? Und zu welchem Kurs? |
Begriffe, die hier vorkommen
-
Was das ist, warum es sich nicht ändern lässt und wieso jeder den Code lesen kann.
-
Mehrere Smart Contracts, die zusammen eine Anwendung ergeben.
-
Wo die eigenen Werte liegen, solange sie nicht in einem Vertrag liegen.