Erleben Sie Geschichte heute. Das bekannte DEX-Protokoll CurveFinance wurde angegriffen und die Liquidität mehrerer Pools wurde aufgebraucht. Eine vorläufige Untersuchung ergab, dass es sich um die Schuld des Smart-Contract-Compilers Vyper handelte. Es war so ungeheuerlich, dass die Leute nicht anders konnten, als es einen guten Kerl zu nennen. Vorläufige Statistiken zeigen, dass der Verlust 50 Millionen US-Dollar überstieg und der aktuelle Preis des CRV-Plattform-Tokens nahe Null lag!
Um Freunden, die sich nicht mit Technik auskennen, kurz zu erklären: Wenn wir Blockchain verwenden, haben wir es oft mit Codes zu tun, die auf der Blockchain laufen. Diese Codes werden „intelligente Verträge“ genannt.
Für eine öffentliche Kette wie Ethereum, die sich auf intelligente Verträge konzentriert, gibt es eine Reihe von Standardcodes für intelligente Verträge für diejenigen, die darauf Anwendungen entwickeln (auch dApp, dezentrale App genannt), um Anwendungen zu schreiben und auszuführen. Uniswap und Curve sind beispielsweise allesamt dApp-Anwendungen, die auf Ethereum laufen.
Da der Computer einfach zu bedienen sein und Speicherplatz sparen muss, ist der in der Kette gespeicherte Standardcode eine sehr kompakte Binärzahl in der Nähe der Maschinensprache, die für Menschen nicht bequem direkt zu lesen und zu schreiben ist.
Um das Öffnen von Anwendungen komfortabler zu gestalten, wurden viele „Hochsprachen“ zum Schreiben von Programmen erfunden, die für Menschen bequem zu lesen und zu schreiben sind. Früher gab es auf Ethereum drei Typen, die der LISP-Sprache ähnelten und nicht populär wurden, da sie von Vitalik (dem Gründer von Ethereum) gefördert wurden Die Syntax ähnelt der Javascript-Sprache namens Solidity
Nachdem Programmierer intelligente Vertragsprogramme in diesen Hochsprachen geschrieben haben, müssen sie ein Tool namens „Compiler“ verwenden, um sie in „Maschinensprache“ zu „übersetzen“, die auf der Ethereum-Blockchain ausgeführt werden kann, also in Standardcode.
Offensichtlich haben verschiedene Hochsprachen unterschiedliche Compiler. Das ist leicht zu verstehen. Die japanische Übersetzung und die englische Übersetzung sind definitiv unterschiedlich. Der Fehler liegt beim Compiler/Übersetzer.
Dieses Mal wurde Curve aufgrund eines Fehlers in einer bestimmten Version des Vyper-Compilers angegriffen, der von einigen Curve-Pools verwendet wird (vermutlich, wird noch weiter untersucht). Das ist so, als würde man auf Japanisch „Ich möchte trinken“ sagen und der Übersetzer übersetzt es in Chinesisch. Als es in „Ich möchte Krabben essen“ übersetzt wurde. Das ist unverschämt
Glücklicherweise ist die Popularität von Vyper nicht hoch. Derzeit wird Solidity in Ethereum und kompatiblen Ketten am häufigsten verwendet. Der englische Übersetzer ist klarer und es gibt Gott sei Dank keine Übersetzungsfehler
In den ganz frühen Tagen von Uniswap, dem Anführer von DEX, nutzte Gründer Hayden die Vyper-Sprache, um Code zu schreiben. Glücklicherweise stellte Hayden später einen professionellen CTO ein und änderte den Code in Solidity. Diesmal ist Uniswap also sicher und gesund, wenn es um das Vyper-Compiler-Problem geht. Curve Finance, das die Vyper-Sprache ausgiebig nutzt, litt darunter.
Das durch diesen Fehler verursachte Problem ist das klassische „Wiedereintrittsproblem“. Wenn ich an das Jahr 2015 zurückdenke, führte der DAO-Vorfall direkt zur Aufspaltung von Ethereum in ETH und ETC. Dieses Wiedereintrittsproblem ist wirklich ein Fluch der Geschichte!
Aber das Wiedereinstiegsproblem von The DAO trat auf dem Hochsprachenniveau auf, das heißt, Sie wollten ursprünglich trinken, sagten aber, Sie wollten Krabben essen die Übersetzung.
Was diesen Curve-Vorfall betrifft, ist das Erschreckende daran, dass Sie es richtig gemacht haben, aber der Übersetzer hat es falsch verstanden, und Sie konnten es nicht verstehen (das Wirtschaftsprüfungsunternehmen wird den kompilierten Binärcode nicht überprüfen), also wurde es ohne jemanden eingeführt merken. Tödlicher Fehler! Dies ist auch ein Weckruf für die heutige gesamte DeFi-Branche und sogar die gesamte Blockchain-Branche!
Heutzutage wird sich nicht jeder, vom Codeschreiber über den Codeprüfer bis hin zum externen Prüfer, den kompilierten Binärcode ansehen. Jeder geht davon aus, dass es keine Probleme mit dem Compiler geben wird, solange er sieht, dass die Hochsprache korrekt geschrieben ist, glaubt er, dass es kein Problem geben wird.
Warum hat Satoshi Nakamoto dem BTC-Skript nicht zu leistungsstarke Smart-Contract-Funktionen hinzugefügt? Dadurch sollen unverzeihliche Fehler durch erhöhte Komplexität vermieden werden. Einige Leute kritisieren BTC als konservativ, aber angesichts von Vermögenswerten im Wert von Millionen, Dutzenden oder sogar Milliarden Dollar sind Vorsicht und Konservatismus nie zu viel. Die meisten Menschen sind immer noch normale Menschen. Ein Verlust von Dutzenden oder Millionen Dollar wird für jeden ein tödlicher Schlag sein.
Dies unterstreicht auch die Warnung von Murphys Gesetz: Jeder Link, der schief gehen kann, wird mit Sicherheit schief gehen, solange genügend Zeit vergeht. Diesmal war es Vyper, was ein Segen war. Was ist mit der Zukunft? Was ist, wenn es eine fatale Schwachstelle in Solidity gibt? Das gesamte DeFi mit Tausenden von Protokollen, Dutzenden von Milliarden Vermögenswerten und brillanten Gebäuden wurde augenblicklich ausgetrocknet. und sie sind alle zusammengebrochen. Ist es nicht schrecklich?
Warum ist es schwierig, durch Zyklen zu reisen? Bevor Sie dieses oder jenes Traumziel verfolgen, sollten Sie zunächst prüfen, ob Sie „bis zu diesem Tag leben können“ und der Rest ist König.