Solidity 0.8.38 naprawia błąd optymalizatora Yul i usprawnia kompilację
Solidity 0.8.38 naprawia błąd o niskim poziomie zagrożenia w optymalizatorze Yul, który mógł powodować nieprawidłowe zastępowanie wyników odczytu lub usuwanie wymaganych zapisów do pamięci i storage, gdy ponownie przypisywano zmienne związane z adresami. Problem dotyczył wersji Solidity od 0.8.19 do 0.8.37 przy włączonym optymalizatorze Yul; w informacjach o wydaniu podano, że nie ma dowodów na wykorzystanie błędu. Testy kontraktów zweryfikowanych w Sourcify nie wykazały zmian w bytecode, co sugeruje, że błąd występował rzadko, choć mógł go wywołać zwykły kod Solidity bez użycia inline assembly.
Wydanie Solidity 0.8.38 przyspiesza również kompilację z optymalizacją Yul dzięki poprawie wydajności DataFlowAnalyzer i pozwala zaoszczędzić jedną instrukcję w dyspozytorze funkcji IR. Przygotowuje też kompilator na nadchodzące zmiany EVM w Amsterdamie i ostrzega, że identyfikatory Yul swapn, dupn i exchange staną się słowami zastrzeżonymi. Pozostałe aktualizacje obejmują zmiany w interfejsie wiersza poleceń i standardowym interfejsie JSON, dodatkowe poprawki oraz usunięcie eksperymentalnych wyników Yul CFG. Wydanie kompilatora jest dostępne na GitHubie. Poprawka bezpieczeństwa ma znaczenie dla twórców smart kontraktów i infrastruktury Ethereum, ale samo wydanie nie oznacza bezpośredniej zmiany czynników fundamentalnych rynku ETH.
Neutral
Wydanie usuwa problem bezpieczeństwa kompilatora i poprawia wydajność kompilacji, ale w żadnym z dwóch podsumowań nie ma informacji o wykorzystaniu podatności, powszechnych zmianach w kodzie bajtowym ani natychmiastowym wpływie na aktywność sieci Ethereum. W związku z tym bezpośredni wpływ na cenę ETH będzie prawdopodobnie ograniczony. W krótkim terminie ujawnienie problemu może skłonić deweloperów do sprawdzenia wersji kompilatora i zaktualizowania projektów, których dotyczy problem. Traderzy mogą poświęcić tej sprawie niewiele uwagi, chyba że pojawią się dowody na to, że wdrożone już kontrakty zostały naruszone. W dłuższej perspektywie naprawa błędu optymalizatora i ulepszenie narzędzi mogą wzmocnić zaufanie do ekosystemu deweloperskiego Ethereum. Aktualizacje kompilatora same w sobie nie są jednak silnym katalizatorem wyznaczającym kierunek ceny; większy wpływ na handel będą prawdopodobnie miały ogólne warunki rynkowe, przepływy ETH, wykorzystanie sieci i zmiany regulacyjne. Ogólnie rzecz biorąc, tę wiadomość najlepiej ocenić jako neutralną dla ETH.