
솔리디티에서 Reentrancy 공격은
컨트랙 안에 특정 함수를 반복적으로 호출해서 이더를 모두 빼가는 방식이다.
공격자는 B컨트랙에 attack 함수를 실행해서 A컨트랙에 있는 함수를 호출한 다음
fallback으로 받아 이더가 소진될 때까지 반복 호출된다.
Mutex는 잠금 설정을 할수 있고 잠금한 소유자만 상태를 바꿀 수 있다.
OpenZeppelin에서 뮤텍스 라이브러리인 ReentrancyGuard를 제공하고 있다.
nonReentrant modifier를 통해 모든 함수에 적용 할 수 있다.