Fragen? Antworten! Siehe auch: Alternativlos
Es geht um sicheren Code. Das ist ein immer noch ungelöstes Problem. Es gibt Ansätze, die tatsächlich helfen, aber am Ende schreiben wir immer noch ständig Code mit Sicherheitslücken.
Es gibt Empfehlungen, was man tun soll, um das Risiko zu minimieren. Man soll seine Funktionen kurz halten, man soll insgesamt so wenig Code wie möglich haben, man soll eine Programmiersprache ohne Memory Corruption verwenden.
Dann gibt es noch Empfehlungen, wenn das nicht geht, wie man sich in die richtiger Richtung schummeln kann: Privilege Separation, TCB-Minimierung. Das sind aber sekundäre Hilfsmittel. Die Ausgangsbasis war: Der Code ist sonst zu groß, um ihn verstehen und auditieren zu können.
Wenn ihr euch aber mal Smart Contracts anguckt, dann wird da exploitet, bis der Arzt kommt. Dabei sind die Funktionen kurz, die Codemenge ist klein, und das ist in einer Sprache mit Speichersicherheit geschrieben.
Ich finde, die Programmier-Branche muss sich an der Stelle ein paar peinliche, unangenehme Fragen stellen lassen.
Wie kommt es, dass die Smart Contracts so krass unsicher sind? Ich sehe mehrere mögliche Erklärungen:
Weitergehende Daten dazu habe ich nicht, aber die erste Variante glaube ich so erstmal nicht. Wir haben auch echt viele unerfahrene Noobs mit großen Visionen bei den "normalen" Programmierern. Gut, viele von den Fans im Umfeld erwecken nicht den Eindruck einer voll geformten Großhirnrinde, aber es geht ja hier um die Programmierer, nicht um die Opfer.
Die dritte Variante halte ich statistisch auch für unwahrscheinlich. Inzwischen wird zwar viel von dem Code von Abzockern zum Ziel des Abzockens geschrieben, aber die alte Garde unter den Crypto-Bros sind Libertäre, nicht Abzocker. Also ja, gibt da Überlappungen, keine Frage.
Und jetzt der Teil, der mich gerade nachts nicht gut schlafen lässt. Was wenn es die mittlere Variante ist? Was wenn der Code in Kraftwerken und Autos und Flugzeugen genau so kacke ist wie der bei den Smart Contracts, und wir sehen es bloß nicht, weil sich für nicht-psychopathische Angreifer der Aufwand bislang nicht gelohnt hat?
Kann es sein, dass der Code da draußen noch viel schlimmer ist als wir bisher wahrhaben wollen?
Ich spreche das an, weil wir gerade in der Ukraine einen Krieg haben. Im Krieg ist plötzlich jedes Mittel Recht und Psychopathen haben Hochkonjunktur. Wenn die Psychopathen der Gegenseite jederzeit alle unsere Softwareinfrastruktur kaputtmachen könnten, weil wir zu arrogant waren, mal wirklich hinzugucken, wie schlecht das alles ist, das wäre ja eher unschön, findet ihr nicht?
Am Ende wird es eine Kombination sein. Aber nur Punkt 1 und Punkt 3 reichen m.E. nicht, um das Ausmaß an Smart Contract Exploitation zu erklären.