[Blockchan A-Z] 채굴 작동 방식: 논스(Nonce)

bolee·2022년 7월 15일
0

Blockchan A-Z

목록 보기
5/33

MODULE 1 - BLOCKCHAIN INTUITION
05. HOW MINING WORKS: THE NONCE

채굴에 대해 알아보기 위해 앞서 논스(Nonce)에 대해 알아볼 것이다.

블록의 구조

<그림 1>

위 그림에 블록체인의 블록이 나와 있다. 블록은 몇 가지 필드가 존재한다.

  • 블록 번호
  • 데이터(트랙잭션)
  • 이전 블록의 해시
    • 블록 간 암호화 링크를 활성화시키는 방식
  • 현재 블록의 해시
    • 블록 번호와 데이터, 그리고 이전 해시를 해싱 알고리즘에 넣으면 이에 해당하는 해시를 얻을 수 있다.

위 블록구조에서 여러 트랜잭션(데이터)들이 한 블록 내에 존재한다.
블록체인의 한 블록 안에는 단일 트랜잭션이 아닌 여러 트랜잭션을 저장할 수 있다.

그렇다면 이런 의문이 생길 수 있다.

  • 블록 번호, 데이터 그리고 이전 해시만 해싱 알고리즘에 넣어서 해시를 도출해내는 과정이 간단한데 어째서 채굴은 복잡한 걸까?
  • 왜 전 세계에는 수십만 개의 채굴 시설 또는 노드가 존재하며 이를 위해 수많은 채굴기와 연산력을 소모하고 있는 걸까?
  • 블록을 채굴하는 것이 쉽다면 왜 많은 사람들이 채굴이라는 작업를 할까?

이에 대한 답 중에 하나가 바로 논스(Nonce)라는 것이다.

논스(Nonce)

<그림 2>

이제 블록 안에 있는 새로운 필드를 살펴볼 것이다.
이 필드는 논스(Nonce)라고 불리는데 한 번만 사용되는 숫자를 뜻한다.

바로 이 필드가 채굴에서 가장 중요한 사항이다.
모든 사람들이 이 필드를 바꾸는 작업을 수행하고 있는 것이기 때문이다.

이를 이해하기 위해서는 이제 무엇이 해시를 제어하는지 살펴봐야 한다.
즉, 논스가 추가된 위의 블록 구조에서 블록의 해시를 결정하는 지이다.

<그림 3>

위 그림에서 초록색으로 강조된 영역이 바로 블록의 해시를 결정하는 것이다.
즉, 데이터, 이전 해시, 블록 번호와 함께 논스가 이제 여기에 포함된다.

<그림 4>

위 그림 처럼 이 네 가지의 모든 요소를 해싱 알고리즘에 넣어서 현재 블록의 해시값을 얻게된다.

이제 이 논스를 통해 추가적인 통제력과 유연성을 가질 수 있다. 즉, 논스를 변경해서 해시값을 조정할 수 있다.
왜냐하면 데이터, 이전 해시, 블록 번호의 경우 블록체인의 특성 상 변경이 불가능하기 때문이다.

하지만 이제는 논스가 있기 때문에 이 논스 값을 변경하면 된다.
논스 값은 자유롭게 변경할 수 있으니 해시값을 변경하거나, 조정 또는 다양하게 변화시킬 수 있을 것이다.

해시를 제어할 수는 없지만 논스를 바꾸면서 '쇄도 효과'를 이용해 해시를 변화시킬 수 있는 것이다.

따라서 이 논스 값을 임의로 조정해서 해시에 다양성을 줄 수 있다.
이는 아주 중요한 개념으로 이러한 논스가 채굴의 기초가 된다고 할 수 있다.

0개의 댓글