이유는 두가지로 나뉠 수 있다.
- 트랜잭션을 실행시키는 순서를 선택하기 위해서
- 되풀이 공격(replay attack)을 막기 위해
nonce 값을 받음으로 인해서 되풀이되는 공격을 막을 수 있다. nonce값은 각각의 트랜잭션을 고유하게 만들어준다. 그래서 하나의 트랜잭션이 특정 nonce값에만 실행이 된다. 그렇게하여 replay attack을 막는 것이다.
만약 2번을 위해 solidity 에서 쓰였으면 reenterancy로 대체할 수 있는게 아닌가?
참고
https://docs.nethereum.com/en/latest/nethereum-managing-nonces/