체인의정석

스마트컨트렉트에서 0x00 주소 체크를 할 필요가 없는 이유 본문

블록체인/Solidity

스마트컨트렉트에서 0x00 주소 체크를 할 필요가 없는 이유

체인의정석 2022. 3. 8. 14:59
728x90
반응형

예전에는 스마트컨트렉트에서 0x00 주소를 체크하여 예외 처리를 안해주면 비어있는 값이 들어왔을 때 그대로 실행시켰기 때문에 꼭 예외 처리를 해줬어야 했다.

 

하지만 최근 코드에는 이러한 체크가 많이 이루어지지 않는 것을 볼 수 있었다.

 

https://forum.openzeppelin.com/t/removing-address-0x0-checks-from-openzeppelin-contracts/2222

 

Removing address != 0x0 checks from OpenZeppelin Contracts

OpenZeppelin Contracts has quite a strict policy of never allowing zero addresses, by placing checks like require(receiver != address(0)) everywhere. For the upcoming 3.0 release I would like us to discuss the possibility of removing these checks. One of t

forum.openzeppelin.com

예전에는 솔리디티가 msg.data의 길이를 체크하지 않았지만 요즘에는 솔리디티에 입력한 msg.data가 충분한 크기인지 체크를 하기 시작했고 이제 이러한 에러는 더이상 발생하지 않는다고 한다.

 

실제 프로덕트 들에게서 이렇게 0x00 주소를 체크하는 로직을 넣지 않는 경우가 많은데, 오픈제플린의 최신 버전에서는 해당 조건문이 있다. 이는 하위 버전과의 호환 때문일 것으로 판단된다.

728x90
반응형
Comments