Solidity korjaa Yul-optimoijan virheen, joka vaikuttaa versioihin 0.8.19–0.8.37
Solidity korjasi Yul-optimoijan vähäisen vakavuusasteen virheen versiossa 0.8.38. Virhe koskee sopimuksia, jotka on käännetty Yul-optimoija käytössä Solidityn versioilla 0.8.19–0.8.37. Tietyissä olosuhteissa vanhentunut kirjanpitotieto voi saada Yul-optimoijan käsittelemään kahta muisti- tai tallennussijaintia erillisinä, vaikka ne todellisuudessa menevät päällekkäin. Tämän vuoksi sopimus voi palauttaa vanhentuneen arvon tai jättää tarvittavan kirjoituksen tekemättä.
Daniel Boye ilmoitti ongelmasta, ja myöhemmin Surya Prakash Akula osoitti, että se voi toteutua tavallisella Solidity-koodilla ilman inline-assemblyä. `--via-ir`-asetuksella käännetyt sopimukset voivat olla laajalti alttiita; oletusarvoista EVM assembly -käännöspolkua käytettäessä altistuminen on rajatumpaa. Virhettä ei voi esiintyä, kun Yul-optimoija on poistettu käytöstä.
Solidityn noin 283 000 varmennetun `via-ir`-käännöksen ja 607 000 EVM assembly -käännöksen tarkastelu ei paljastanut bytecode-eroja, kun korjauksen sisältäviä ja sisältämättömiä käännöksiä verrattiin. Tiimin mukaan tämä viittaa virheen harvinaisuuteen, mutta ei takaa, ettei mikään käyttöönotettu sopimus olisi altistunut sille. Kehittäjien tulisi päivittää Solidityn versioon 0.8.38 tai uudempaan ja arvioida käyttöön otetut sopimukset, jotka on käännetty haavoittuvilla versioilla. Treidaajille tämä on rajattu älysopimusten luotettavuutta koskeva varoitus, ei merkki Ethereum-verkon tai markkinoiden laaja-alaisesta häiriöstä.
Neutral
Tiedote on kehittäjille suunnattu tietoturva- ja päivitysilmoitus, ei näyttöä hyväksikäytöstä, verkkokatkosta tai varojen menetyksestä. Solidity luokittelee virheen vakavuudeltaan vähäiseksi ja kertoo, ettei lähes 890 000 varmennetun käännöksen skannauksessa havaittu tavukoodieroja korjauksen sisältävien ja sitä sisältämättömien versioiden välillä. Ongelma edellyttää lisäksi tiettyjä optimointiin ja osoitteiden uudelleenmääritykseen liittyviä olosuhteita, mikä rajoittaa sen todennäköistä vaikutusaluetta. Näiden seikkojen vuoksi välitön, koko markkinaan ulottuva vaikutus ETH:hen tai laajemmin kryptomarkkinoiden hintoihin on epätodennäköinen.
Lyhyellä aikavälillä treidaajat saattavat seurata Solidity 0.8.19–0.8.37 -versioita käyttävien projektien tiedotteita, etenkin jos ne on käännetty Yul-optimoijalla tai `--via-ir`-valitsimella. Jos laajalti käytetty protokolla ilmoittaa haavoittuvista käyttöönotetuista sopimuksista tai hyväksikäytöstä aiheutuneista tappioista, luottamus voi heikentyä ja johtaa yksittäisten projektien tokenien myyntiin tai volatiliteetin tilapäiseen kasvuun. Tässä artikkelissa ei raportoida tällaisesta tapauksesta, joten laaja negatiivinen tulkinta ei ole perusteltu.
Pidemmällä aikavälillä Solidity 0.8.38:n korjaus ja suositellut varmennusvaiheet vähentävät todennäköisesti jatkuvaa altistumista, kun tiimit päivittävät ja testaavat ongelman koskettamia käyttöönottoja. Kuten muidenkin kääntäjien haavoittuvuuksien julkistusten yhteydessä, keskeisiä markkinasignaaleja ovat vahvistettu hyväksikäyttö, vaikutuksen kohteena olevien protokollien TVL, hätäkeskeytykset ja projektien korjaustoimet — eivät pelkästään se, että kääntäjässä on ollut sittemmin korjattu ongelma. Kaiken kaikkiaan uutinen on markkinasuunnan kannalta neutraali, mutta olennainen älysopimuksiin liittyvien riskien seurannassa.