-
Solidity 릴리즈 노트 | 0.8.20 versionSolidity 릴리즈 노트 2024. 2. 11. 00:00
Author : 최원혁
"Solidity 릴리즈 노트"는 스마트 컨트랙트 개발 및 버그 측면에서 필요한 업데이트 내용만 정리합니다.
Important Fixed
- EVM 컴파일러의 기본(default) version이 “Shanghai”로 설정되며, EVM에 "Shanghai” version이 추가됩니다.
- 이제 바이트코드에 새로운 Opcode PUSH0가 포함됩니다.
- Yul EVM Code에서 codesize를 사용하여 Stack에 0을 추가하는 경우 PUSH0를 사용합니다.
New opcode PUSH0 by EIP-3855
이더리움 상하이 업그레이드의 EIP-3855에 따라 새로운 Opcode PUSH0가 추가됬다. 이에 따라 Solidity 0.8.20을 배포하여 바이트 코드 및 inline-assembly코드에 PUSH0 함수를 추가한다.
PUSH0는 EVM 스택의 최상단에 0x00을 추가하는 명령어다. 이전에는 PUSH0가 없었을 때 스택의 최상단에 0x00을 추가하기 위해 여러 방법이 사용되었다. 그 중 하나는 Opcode codesize를 호출하는 것이다. 이제 PUSH0가 추가되었기 때문에, Solidity 0.8.20부터 스택에 0x00을 추가하기 위해 codesize를 호출하는 경우를 PUSH0을 호출하는 방식으로 최적화되었다.
EIP-3855와 PUSH0가 새롭게 추가된 이유가 궁금하다면 아래 “EIP-3855 : EVM의 새로운 Opcode PUSH0을 소개합니다” 포스트를 참고하면 좋을것 같다.
etc.
Important Fixed 외 다른 업데이트 내역은 아래 “Solidity 0.8.20 Release Note”를 참고바란다.