MODULE 1 - BLOCKCHAIN INTUITION
05. HOW MINING WORKS: THE NONCE
채굴에 대해 알아보기 위해 앞서 논스(Nonce)에 대해 알아볼 것이다.
<그림 1>
위 그림에 블록체인의 블록이 나와 있다. 블록은 몇 가지 필드가 존재한다.
위 블록구조에서 여러 트랜잭션(데이터)들이 한 블록 내에 존재한다.
블록체인의 한 블록 안에는 단일 트랜잭션이 아닌 여러 트랜잭션을 저장할 수 있다.
그렇다면 이런 의문이 생길 수 있다.
이에 대한 답 중에 하나가 바로 논스(Nonce)라는 것이다.
<그림 2>
이제 블록 안에 있는 새로운 필드를 살펴볼 것이다.
이 필드는 논스(Nonce)라고 불리는데 한 번만 사용되는 숫자를 뜻한다.
바로 이 필드가 채굴에서 가장 중요한 사항이다.
모든 사람들이 이 필드를 바꾸는 작업을 수행하고 있는 것이기 때문이다.
이를 이해하기 위해서는 이제 무엇이 해시를 제어하는지 살펴봐야 한다.
즉, 논스가 추가된 위의 블록 구조에서 블록의 해시를 결정하는 지이다.
<그림 3>
위 그림에서 초록색으로 강조된 영역이 바로 블록의 해시를 결정하는 것이다.
즉, 데이터, 이전 해시, 블록 번호와 함께 논스가 이제 여기에 포함된다.
<그림 4>
위 그림 처럼 이 네 가지의 모든 요소를 해싱 알고리즘에 넣어서 현재 블록의 해시값을 얻게된다.
이제 이 논스를 통해 추가적인 통제력과 유연성을 가질 수 있다. 즉, 논스를 변경해서 해시값을 조정할 수 있다.
왜냐하면 데이터, 이전 해시, 블록 번호의 경우 블록체인의 특성 상 변경이 불가능하기 때문이다.
하지만 이제는 논스가 있기 때문에 이 논스 값을 변경하면 된다.
논스 값은 자유롭게 변경할 수 있으니 해시값을 변경하거나, 조정 또는 다양하게 변화시킬 수 있을 것이다.
해시를 제어할 수는 없지만 논스를 바꾸면서 '쇄도 효과'를 이용해 해시를 변화시킬 수 있는 것이다.
따라서 이 논스 값을 임의로 조정해서 해시에 다양성을 줄 수 있다.
이는 아주 중요한 개념으로 이러한 논스가 채굴의 기초가 된다고 할 수 있다.