Solidity 0.8.38 verhelpt een bug in de Yul-optimalisator en verbetert het compileren
Solidity 0.8.38 verhelpt een bug met een lage ernst in de Yul-optimizer. Die kon laadresultaten onjuist vervangen of noodzakelijke schrijfbewerkingen naar opslag en geheugen verwijderen wanneer adresgerelateerde variabelen opnieuw werden toegewezen. Het probleem trof Solidity-versies 0.8.19 tot en met 0.8.37 wanneer de Yul-optimizer was ingeschakeld; volgens de release notes zijn er geen aanwijzingen dat de bug is misbruikt. Tests van op Sourcify geverifieerde contracten brachten geen wijzigingen in de bytecode aan het licht. Dat wijst erop dat de bug zeldzaam was, hoewel gewone Solidity-code de bug ook zonder inline assembly kon veroorzaken.
De release Solidity 0.8.38 versnelt ook compilatie met Yul-optimalisatie door de prestaties van DataFlowAnalyzer te verbeteren en bespaart één instructie in de IR-functiedispatcher. Daarnaast bereidt de release voor op de komende Amsterdamse EVM-wijzigingen en waarschuwt die dat de Yul-identifiers swapn, dupn en exchange gereserveerd zullen worden. Andere updates zijn wijzigingen in de opdrachtregelinterface en de standaard-JSON-interface, aanvullende oplossingen en het verwijderen van experimentele Yul CFG-uitvoer. De compilerrelease is beschikbaar op GitHub. De beveiligingsoplossing is relevant voor ontwikkelaars van smart contracts en de Ethereum-infrastructuur, maar de release zelf betekent geen directe verandering in de marktfundamenten van ETH.
Neutral
De release verhelpt een beveiligingsprobleem in de compiler en verbetert de compilatieprestaties, maar in geen van beide samenvattingen wordt melding gemaakt van misbruik, grootschalige wijzigingen in de bytecode of een onmiddellijk effect op de activiteit van het Ethereum-netwerk. Het directe effect op de ETH-prijs is dan ook waarschijnlijk beperkt. Op korte termijn kan de bekendmaking ontwikkelaars ertoe aanzetten compiler-versies te controleren en getroffen projecten bij te werken. Traders besteden er mogelijk weinig aandacht aan, tenzij er bewijs naar voren komt dat reeds geïmplementeerde contracten zijn gecompromitteerd. Op langere termijn kunnen het verhelpen van de optimizerfout en het verbeteren van de tooling het vertrouwen in het ontwikkelingsecosysteem van Ethereum versterken. Compilerupdates zijn op zichzelf echter geen sterke katalysator die de prijs een bepaalde richting op stuurt; algemene marktomstandigheden, ETH-stromen, netwerkgebruik en ontwikkelingen op het gebied van regelgeving zullen de handel waarschijnlijk sterker beïnvloeden. Al met al kan dit nieuws het best als neutraal voor ETH worden beoordeeld.