code4rena-2022-08-nounsdao-g22

[G‑22] Empty blocks should be removed or emit something

보고서

Summary

용도가 없는 receive 함수는 삭제하여 배포 시 gas를 절약하자 제안했다. 아니면 최소한 이벤트라도 생성하라고 했다.

Keyword

gas optimization, deploy

Vulnerability

File: contracts/governance/NounsDAOLogicV2.sol
 
1030:     receive() external payable {}

아무것도 하지 않는 비어있는 receive 함수는 삭제하여 배포 시 gas를 절약하자 제안했다. 또는 비어있는 receive 대신 이벤트라도 생성해야 한다고 했다.

사실 컨트랙트 기능 상 ETH 예치해두고 사용해야 하기 때문 receive 함수가 있긴 해야 한다. 그럼에도 불구하고 제출하긴 했고 엑셉이 되긴 했다.

Impact

컨트랙트 배포 시 gas가 불필요하게 더 든다.

Mitigation

불필요한 receive 함수를 제거하거나 필요하다면 이벤트라도 생성한다.


tags: bughunting, nouns dao, smart contract, solidity, gas optimization, gas, severity gas