Solidity 0.8.38 исправляет ошибку оптимизатора Yul и улучшает компиляцию
В Solidity 0.8.38 исправлена ошибка низкой степени серьёзности в оптимизаторе Yul, из-за которой результаты загрузки могли подменяться, а необходимые операции записи в хранилище и память — удаляться при переназначении переменных, связанных с адресами. Ошибка затрагивала версии Solidity с 0.8.19 по 0.8.37 при включённом оптимизаторе Yul; в примечаниях к выпуску говорится, что свидетельств её эксплуатации нет. Проверка контрактов, верифицированных в Sourcify, не выявила изменений байткода, что указывает на редкость ошибки, хотя её мог вызвать и обычный код Solidity без встроенного ассемблера.
Выпуск Solidity 0.8.38 также ускоряет компиляцию с оптимизацией Yul за счёт повышения производительности DataFlowAnalyzer и позволяет сэкономить одну инструкцию в диспетчере функций IR. Он готовит почву для предстоящих изменений EVM в Амстердаме и предупреждает, что идентификаторы Yul swapn, dupn и exchange станут зарезервированными. Среди других обновлений — изменения интерфейса командной строки и стандартного JSON-интерфейса, дополнительные исправления и удаление экспериментальных выходных данных Yul CFG. Выпуск компилятора доступен на GitHub. Исправление безопасности важно для разработчиков смарт-контрактов и инфраструктуры Ethereum, однако сам выпуск не означает прямых изменений фундаментальных рыночных факторов ETH.
Neutral
Выпуск устраняет проблему безопасности компилятора и повышает производительность компиляции, однако ни в одном из двух обзоров не сообщается об эксплуатации уязвимости, масштабных изменениях байткода или немедленном влиянии на активность сети Ethereum. Поэтому прямое влияние на цену ETH, вероятно, будет ограниченным. В краткосрочной перспективе раскрытие информации может побудить разработчиков проверить версии компилятора и обновить затронутые проекты, тогда как трейдеры могут почти не обратить на это внимания, если не появятся доказательства компрометации уже развернутых контрактов. В долгосрочной перспективе исправление ошибки оптимизатора и совершенствование инструментов могут укрепить доверие к экосистеме разработки Ethereum. Однако обновления компилятора сами по себе не являются сильным фактором, задающим направление цены; на торги, скорее всего, больше повлияют общерыночная ситуация, потоки ETH, использование сети и изменения в регулировании. В целом эту новость следует считать нейтральной для ETH.