Solidity, 0.8.19–0.8.37 sürümlerini etkileyen Yul iyileştirici hatasını düzeltiyor

Solidity, 0.8.38 sürümünde Yul optimizer’ındaki düşük önem dereceli bir hatayı düzeltti. Hata, Solidity 0.8.19–0.8.37 sürümlerinde Yul optimizer etkin durumdayken derlenen sözleşmeleri etkiliyor. Belirli koşullarda, güncelliğini yitirmiş kayıt bilgileri Yul optimizer’ın gerçekte çakışan iki bellek veya depolama konumunu birbirinden ayrı sanmasına yol açabiliyor. Bunun sonucunda sözleşme eski bir değer döndürebilir veya gerekli bir yazma işlemini atlayabilir. Sorunu Daniel Boye bildirdi; daha sonra Surya Prakash Akula, hatanın satır içi assembly kullanılmadan, sıradan Solidity koduyla tetiklenebileceğini gösterdi. `--via-ir` ile derlenen sözleşmeler geniş ölçüde etkilenebilir; varsayılan EVM assembly hattında ise risk daha sınırlıdır. Yul optimizer devre dışı bırakıldığında bu hata oluşamaz. Solidity’nin yaklaşık 283.000 doğrulanmış `via-ir` derlemesi ve 607.000 EVM assembly derlemesi üzerinde yaptığı incelemede, düzeltme uygulanmış ve uygulanmamış derlemeler karşılaştırıldığında bytecode farkı bulunmadı. Ekip, bunun hatanın nadir olduğuna işaret ettiğini, ancak dağıtılmış hiçbir sözleşmenin etkilenmediğini garanti etmediğini belirtiyor. Geliştiriciler Solidity 0.8.38 veya daha yeni bir sürüme yükseltmeli ve etkilenen sürümlerle derlenmiş dağıtılmış sözleşmeleri değerlendirmelidir. Trader’lar açısından bu, Ethereum ağında veya piyasada geniş çaplı bir aksaklığın kanıtı değil, akıllı sözleşme güvenilirliğine yönelik hedefli bir uyarıdır.
Neutral
Duyuru, bir istismarın, ağ kesintisinin veya fon kaybının kanıtı değil; güvenlik ve geliştirici yükseltme bildirimidir. Solidity, hatayı düşük önem derecesinde sınıflandırıyor ve yaklaşık 890.000 doğrulanmış derlemeyi taramasında, düzeltmenin yer aldığı ve almadığı derlemeler arasında bayt kodu farkı bulmadığını belirtiyor. Sorun ayrıca iyileştirici ve adreslerin yeniden atanmasıyla ilgili belirli koşullar gerektiriyor; bu da muhtemel etkisini sınırlıyor. Bu ayrıntılar, ETH veya genel kripto piyasası fiyatları üzerinde hemen ve piyasa çapında bir etki oluşmasını düşük olasılıklı kılıyor. Kısa vadede yatırımcılar, Solidity 0.8.19–0.8.37 kullanan projelerin açıklamalarını, özellikle Yul iyileştiricisiyle veya `--via-ir` seçeneğiyle derlenen projelerinkini takip edebilir. Yaygın olarak kullanılan bir protokol, dağıtılmış sözleşmelerinin savunmasız olduğunu veya istismar kaynaklı kayıplar yaşandığını bildirirse güven zayıflayabilir; bu da belirli projelerin token’larının satılmasına ya da oynaklığın geçici olarak artmasına yol açabilir. Bu makalede böyle bir olay bildirilmediğinden, genel çapta düşüş yönlü bir yorum desteklenmiyor. Uzun vadede Solidity 0.8.38’deki düzeltme ve önerilen doğrulama adımları, ekipler etkilenen dağıtımları güncelleyip test ettikçe devam eden riski azaltmalıdır. Diğer derleyici güvenlik açığı açıklamalarında olduğu gibi, piyasadaki temel göstergeler doğrulanmış bir istismar, etkilenen protokollerin TVL’si, acil durdurmalar ve projelerin düzeltici adımlarıdır; düzeltilmiş bir derleyici sorununun varlığı tek başına belirleyici değildir. Genel olarak haber, piyasanın yönü açısından nötr; akıllı sözleşme risklerinin izlenmesi açısından ise önemlidir.