Nonce

Number Only Used Once의 약자로, 한번만 사용되는 숫자를 의미한다. Nonce는 블록 Nonce와 트랜잭션 Nonce로 구분할 수 있다.

블록 Nonce

비트코인이나 이더리움PoW 같은 작업증명(PoW, Proof of Work) 기반 블록체인에서는 새로운 블록을 생성하기 위해 특정 조건(블록의 해시값이 어떤 값보다 작아야한다)를 만족시켜야 한다. 이 조건을 만족하는 해시값을 만들기 위해 Nonce 값을 계속 바꾸어가며 해시를 계산한다. 이 과정을 흔히 말하는 Mining(채굴)이라고 한다.

즉, Nonce는 조건을 만족하는 해시값을 만들기 위해 수많은 시도 끝에 찾아낸 값이다. 즉 한번 사용된 Nonce는 다시 쓸 수 없고, 블록 내에 고정된다. 이러한 트랜잭션 Nonce라는 것이 있다.

참고: 이더리움은 22년 9월 The merge 이후 PoS(지분 증명)으로 전환했기 때문에, 더 이상 채굴 Nonce를 사용하지 않는다.

트랜잭션 Nonce (계정 Nonce)

가장 흔히 볼 수 있는 Nonce로 EVM 계열에서 계정이 지금까지 보낸 트랜잭션의 수를 의미한다. 트랜잭션의 순서를 보장하고 중복(이중 출금)을 방지하기 위해 사용된다.