Solidity behebt einen Fehler im Yul-Optimierer, der die Versionen 0.8.19–0.8.37 betrifft
Solidity hat in Version 0.8.38 einen Yul-Optimizer-Bug mit niedrigem Schweregrad behoben. Der Fehler betrifft Verträge, die mit aktiviertem Yul-Optimizer in Solidity 0.8.19–0.8.37 kompiliert wurden. Unter bestimmten Bedingungen kann eine veraltete interne Buchführung dazu führen, dass der Yul-Optimizer zwei Speicher- oder Storage-Positionen als getrennt behandelt, obwohl sie sich tatsächlich überschneiden. Dadurch kann ein Vertrag einen veralteten Wert zurückgeben oder einen erforderlichen Schreibvorgang auslassen.
Der Fehler wurde von Daniel Boye gemeldet. Später zeigte Surya Prakash Akula, dass er auch durch gewöhnlichen Solidity-Code ohne Inline-Assembly ausgelöst werden kann. Verträge, die mit `--via-ir` kompiliert wurden, können in größerem Umfang betroffen sein; bei der standardmäßigen evm-assembly-Pipeline ist das Risiko enger begrenzt. Bei deaktiviertem Yul-Optimizer kann der Fehler nicht auftreten.
Bei der Untersuchung von rund 283.000 verifizierten `via-ir`-Kompilierungen und 607.000 evm-assembly-Kompilierungen fand Solidity keine Bytecode-Unterschiede zwischen Builds mit und ohne den Fix. Das Team wertet dies als Hinweis darauf, dass der Fehler selten ist; es garantiert jedoch nicht, dass keine bereitgestellten Verträge betroffen sind. Entwickler sollten auf Solidity 0.8.38 oder höher aktualisieren und bereitgestellte Verträge überprüfen, die mit betroffenen Versionen kompiliert wurden. Für Trader ist dies ein gezielter Warnhinweis zur Zuverlässigkeit von Smart Contracts und kein Beleg für eine umfassende Störung des Ethereum-Netzwerks oder des Marktes.
Neutral
Die Ankündigung ist ein Hinweis zu Sicherheit und Entwickler-Upgrades, kein Beleg für einen Exploit, einen Netzwerkausfall oder den Verlust von Geldern. Solidity stuft den Fehler als niedrig ein und erklärt, dass bei der Prüfung von fast 890.000 verifizierten Kompilierungen keine Bytecode-Unterschiede zwischen Builds mit und ohne den Fix festgestellt wurden. Außerdem setzt das Problem bestimmte Bedingungen beim Optimierer und bei der Neuzuweisung von Adressen voraus, was seine wahrscheinliche Reichweite begrenzt. Daher ist eine unmittelbare, marktweite Auswirkung auf ETH oder die Kryptopreise insgesamt unwahrscheinlich.
Kurzfristig könnten Händler auf Mitteilungen von Projekten achten, die Solidity 0.8.19–0.8.37 verwenden, insbesondere wenn sie mit dem Yul-Optimierer oder `--via-ir` kompiliert wurden. Sollte ein weit verbreitetes Protokoll von anfälligen, bereitgestellten Verträgen oder ausnutzbaren Verlusten berichten, könnte das Vertrauen sinken und Verkäufe des projektspezifischen Tokens oder ein vorübergehender Anstieg der Volatilität ausgelöst werden. In diesem Artikel wird kein solcher Vorfall gemeldet; eine allgemein pessimistische Deutung ist daher nicht begründet.
Langfristig sollten der Fix in Solidity 0.8.38 und die empfohlenen Verifizierungsschritte das fortbestehende Risiko verringern, während Teams Upgrades durchführen und betroffene Bereitstellungen testen. Wie bei anderen Offenlegungen von Compiler-Schwachstellen sind die entscheidenden Marktsignale bestätigte Ausnutzung, der TVL betroffener Protokolle, Notfallpausen und die Behebung durch Projekte – nicht allein die Tatsache, dass ein Compilerproblem gepatcht wurde. Insgesamt ist die Nachricht für die Marktrichtung neutral, aber für die Überwachung von Smart-Contract-Risiken relevant.