Solidity, 0.8.19~0.8.37 버전에 영향을 미치는 Yul 최적화 프로그램 버그 수정

Solidity는 버전 0.8.38에서 심각도가 낮은 Yul 옵티마이저 버그를 수정했습니다. 이 버그는 Solidity 0.8.19~0.8.37에서 Yul 옵티마이저를 활성화한 채 컴파일한 컨트랙트에 영향을 줍니다. 특정 조건에서는 오래된 내부 bookkeeping 정보 때문에 Yul 옵티마이저가 실제로는 겹치는 두 메모리 또는 스토리지 위치를 서로 다른 위치로 취급할 수 있습니다. 이로 인해 컨트랙트가 오래된 값을 반환하거나 필요한 쓰기 작업을 누락할 수 있습니다. 이 문제는 Daniel Boye가 보고했으며, 이후 Surya Prakash Akula는 인라인 어셈블리 없이 일반 Solidity 코드만으로도 이 문제가 발생할 수 있음을 보였습니다. `--via-ir`로 컴파일한 컨트랙트는 광범위하게 영향을 받을 수 있지만, 기본 evm assembly 파이프라인에서는 노출 범위가 더 좁습니다. Yul 옵티마이저를 비활성화하면 이 버그는 발생하지 않습니다. Solidity가 검증된 `via-ir` 컴파일 약 283,000건과 evm assembly 컴파일 607,000건을 조사한 결과, 수정 사항 적용 여부에 따른 빌드 간 바이트코드 차이는 발견되지 않았습니다. 팀은 이를 통해 버그가 드물다는 점을 시사한다고 밝혔지만, 배포된 컨트랙트 중 영향을 받은 것이 없다는 보장은 아닙니다. 개발자는 Solidity 0.8.38 이상으로 업그레이드하고, 영향을 받는 버전으로 컴파일해 배포한 컨트랙트를 점검해야 합니다. 트레이더에게 이는 스마트 컨트랙트 신뢰성에 관한 특정 경고이지, Ethereum 네트워크나 시장 전반에 광범위한 차질이 발생했다는 증거는 아닙니다.
Neutral
이번 발표는 보안 및 개발자 업그레이드 안내이지, 익스플로잇이나 네트워크 장애 또는 자금 손실의 증거가 아닙니다. Solidity는 이 버그의 심각도를 낮음으로 평가했으며, 검증된 컴파일 결과 약 89만 건을 스캔한 결과 수정 사항이 적용된 빌드와 적용되지 않은 빌드 사이에 바이트코드 차이가 없었다고 밝혔습니다. 또한 이 문제는 옵티마이저와 주소 재할당에 관한 특정 조건이 충족되어야 발생하므로, 영향을 미칠 가능성이 있는 범위도 제한적입니다. 이러한 점을 고려하면 ETH나 전반적인 암호화폐 가격에 즉각적이고 시장 전반에 걸친 영향이 나타날 가능성은 낮습니다. 단기적으로 트레이더들은 Solidity 0.8.19–0.8.37을 사용하는 프로젝트, 특히 Yul 옵티마이저 또는 `--via-ir`로 컴파일한 프로젝트의 공지를 주시할 수 있습니다. 널리 사용되는 프로토콜이 배포된 취약 컨트랙트나 악용 가능한 손실을 보고한다면 신뢰가 약화되어 해당 프로젝트 토큰의 매도나 일시적인 변동성 증가로 이어질 수 있습니다. 이 기사에는 그러한 사건이 보고되지 않았으므로, 시장 전반을 약세로 해석할 근거는 없습니다. 장기적으로는 Solidity 0.8.38의 수정 사항과 권장 검증 절차를 통해 각 팀이 업그레이드하고 영향을 받는 배포를 테스트하면서 지속적인 위험 노출이 줄어들 것으로 보입니다. 다른 컴파일러 취약점 공개와 마찬가지로 시장의 핵심 신호는 확인된 악용, 영향을 받은 프로토콜의 TVL, 긴급 중단, 프로젝트의 시정 조치이지, 패치된 컴파일러 문제가 존재한다는 사실 자체가 아닙니다. 종합하면 이 소식은 시장 방향성에는 중립적이지만 스마트 컨트랙트 위험 모니터링에는 중요합니다.