Solidity memperbaiki bug pengoptimal Yul yang memengaruhi versi 0.8.19–0.8.37
Solidity telah memperbaiki bug optimizer Yul ber tingkat keparahan rendah pada versi 0.8.38. Bug ini memengaruhi kontrak yang dikompilasi dengan optimizer Yul aktif pada Solidity 0.8.19–0.8.37. Dalam kondisi tertentu, pencatatan internal yang sudah kedaluwarsa dapat membuat optimizer Yul menganggap dua lokasi memori atau penyimpanan sebagai lokasi terpisah, padahal keduanya saling tumpang tindih. Akibatnya, kontrak dapat mengembalikan nilai lama atau tidak melakukan penulisan yang diperlukan.
Masalah ini dilaporkan oleh Daniel Boye dan kemudian ditunjukkan oleh Surya Prakash Akula dapat muncul dari kode Solidity biasa, tanpa inline assembly. Kontrak yang dikompilasi dengan `--via-ir` berpotensi terdampak secara luas; pada pipeline evm assembly bawaan, paparan terhadap bug ini lebih terbatas. Bug ini tidak dapat terjadi jika optimizer Yul dinonaktifkan.
Pemindaian Solidity terhadap sekitar 283.000 kompilasi `via-ir` terverifikasi dan 607.000 kompilasi evm assembly tidak menemukan perbedaan bytecode saat membandingkan hasil build dengan dan tanpa perbaikan. Tim menyatakan bahwa hal ini menunjukkan bug tersebut jarang terjadi, tetapi tidak menjamin bahwa tidak ada kontrak yang sudah digunakan yang terdampak. Pengembang sebaiknya meningkatkan versi ke Solidity 0.8.38 atau yang lebih baru dan menilai kontrak yang sudah digunakan yang dikompilasi dengan versi terdampak. Bagi trader, ini adalah peringatan terarah terkait keandalan smart contract, bukan bukti adanya gangguan luas pada jaringan Ethereum atau pasar.
Neutral
Pengumuman ini merupakan pemberitahuan keamanan dan peningkatan bagi pengembang, bukan bukti adanya eksploitasi, gangguan jaringan, atau kehilangan dana. Solidity menilai bug ini berkeparahan rendah dan menyatakan bahwa pemindaian terhadap hampir 890.000 kompilasi terverifikasi tidak menemukan perbedaan bytecode antara build yang menyertakan perbaikan dan yang tidak. Masalah ini juga hanya terjadi jika kondisi tertentu terkait pengoptimal dan pengalokasian ulang alamat terpenuhi, sehingga kemungkinan jangkauannya terbatas. Hal-hal ini membuat dampak langsung yang luas terhadap ETH atau harga kripto secara umum menjadi kecil kemungkinannya.
Dalam jangka pendek, trader mungkin akan mencermati pengungkapan dari proyek yang menggunakan Solidity 0.8.19–0.8.37, terutama yang dikompilasi dengan pengoptimal Yul atau `--via-ir`. Jika protokol yang banyak digunakan melaporkan kontrak yang sudah diterapkan dan rentan, atau kerugian yang dapat dieksploitasi, kepercayaan dapat melemah dan memicu penjualan token proyek terkait atau peningkatan volatilitas sementara. Artikel ini tidak melaporkan insiden semacam itu, sehingga penafsiran bearish secara luas tidak didukung.
Dalam jangka panjang, perbaikan di Solidity 0.8.38 dan langkah-langkah verifikasi yang disarankan semestinya mengurangi paparan risiko yang berkelanjutan seiring tim melakukan peningkatan dan menguji penerapan yang terdampak. Seperti pengungkapan kerentanan compiler lainnya, sinyal pasar utama adalah eksploitasi yang terkonfirmasi, TVL protokol yang terdampak, penghentian darurat, dan langkah perbaikan proyek—bukan sekadar adanya masalah compiler yang telah ditambal. Secara keseluruhan, berita ini netral terhadap arah pasar, tetapi relevan untuk pemantauan risiko smart contract.