Risiken in Krypto
Ein Contract kann nicht erkennen, dass seine Regel falsch ist. Er führt sie trotzdem aus.
Smart Contracts ersetzen menschliches Vertrauen teilweise durch Code. Code ist nicht automatisch fehlerfrei — und die Automatisierung, die einen Contract nützlich macht, führt eine fehlerhafte Regel genauso zuverlässig aus wie eine richtige.
Das Problem
Ein Contract, zwei Zweige. Drück zuerst den sicheren.
Dieser Contract hält Guthaben für vier Wallets. Seine beiden Regeln wurden von Menschen geschrieben, und eine der beiden Bedingungen ist falsch. Nichts im System weiß das.
Contract · veröffentlicht
BEREITZwei Zweige. Einer behandelt eine Einzahlung, einer eine Auszahlung. Jeder löst in dem Moment aus, in dem seine eigene Bedingung erfüllt ist — und niemand steht dazwischen.
Noch ist nichts gelaufen. Drück Einzahlen und sieh zu, wie der Contract korrekt arbeitet.
Automatisierung ist der ganze Sinn eines Smart Contracts: Die Regeln laufen ab, ohne dass jemand zustimmen, freigeben oder eingreifen muss. Genau deshalb ist ein Fehler in den Regeln gefährlich. Der Contract hat die Bedingung geprüft, die er bekommen hat, sie als erfüllt vorgefunden und die falsche Aktion mit derselben Geschwindigkeit und Gewissheit ausgeführt wie die richtige — für jedes Guthaben, das er hielt, auf einen Schlag. Ein kleiner Programmierfehler reicht, und an keiner Stelle im Ablauf fällt irgendetwas auf.
Contracts werden oft unveränderlich veröffentlicht. Das ist Absicht, und genau das macht die Regeln verlässlich — niemand kann sie hinterher still umschreiben. Dieselbe Eigenschaft ist die dritte Risikoquelle: Ein später entdeckter Fehler lässt sich nicht einfach aus dem Code entfernen. Wo ein Stopp oder ein Upgrade-Pfad vorher eingeplant wurde, kann er begrenzen, was danach passiert; was bereits ausgeführt wurde, ist bereits abgeschlossen. Deshalb wiegen die ersten beiden Quellen so schwer — am günstigsten fängt man einen Fehler ab, bevor der Contract überhaupt veröffentlicht wird.
Die Definition
Drei Dinge, die „es läuft on-chain“ nicht bedeutet.
Tippe jede Karte an: was hier tatsächlich behauptet wird — und was nicht.
Selbst ausprobieren
Automatisierter Code wird auf drei Wegen zum Risiko.
Fünf Situationen, drei Risikoquellen. Tippe jede Situation an und ordne sie ein.
Wähl eine Situation
—Jede der fünf gehört zu genau einer von drei Quellen: ein Bug in der Logik, eine externe Abhängigkeit oder die Tatsache, dass ein laufender Contract schwer zu korrigieren ist.
Die Brücke
Was das Risiko erhöht, was es senkt und was am Ende gilt.
Fünf Aussagen, der Reihe nach. Nur die letzte gilt ohne Einschränkung.
So sieht es ehrlich aus. Kapital im Einsatz erhöht, was ein Fehler kostet; Komplexität und Abhängigkeiten erhöhen die Wahrscheinlichkeit dafür; Audits, Tests und transparente Architektur senken das Risiko — und nichts davon ist eine Garantie. Sicherheit ist nichts, was ein Contract von der Chain erbt, auf der er läuft. Wenn solche Schwachstellen nicht nur vorhanden sind, sondern aktiv ausgenutzt werden, hat das einen eigenen Namen und eine eigene Lektion: Hacks, und dorthin geht der Abschnitt als Nächstes.
Prüf dich selbst
Fünf Fragen.
Die Antworten stehen alle in dieser Lektion. Mit dem Absenden schließt du sie ab.