본문 바로가기
Crypto 용어/블록체인

초보자도 이해하는 채굴(Miner) , 마이닝(Miniing) 개념정리

by 소소대디 2021. 8. 22.


● 블록체인 네트워크에서 새로운 블록을 검증 및 생성한 대가로 해당 암호화폐를 지급받는 사람을 말하며 일반적으로 채굴자 , 마이너 , 노드라고 부른다. ※광부 = 채굴자


● 채굴을 하는 방법

중앙화 되어있는 금융기관과 블록체인 네트워크(분산 원장=P2P 방식)를 비교해봅시다.
오랜 기간 금융기관과 신뢰가 형성되었기 때문에 많은 거래를 하고 있으며 물건을 사기 위해 카드를 긁거나 친구에게 송금 한 거래내역은 금융기관에서 장부를 기록하고 보관합니다.

 

그러면 블록체인 네트워크에서는 누구를 믿고 거래를 해야 할까요? 거래를 한다면 누군가는 거래내역의 위, 변조 여부를 확인해야 하며 생성된 거래내역을 채굴자 모두가 가져야(분산 원장) 하기 때문에 전파도 해야 합니다.
이러한 작업들을 채굴자들이 하는 것이며 그 대가로 암호화폐를 지급받는 것입니다.
그런데 채굴자의 인원수에 상관없이 한 블록당 단 한 명만 대가를 받을 수 있다면 어떤 원리에 의해 채굴을 할까요?

2009년 세상에 공개된 비트코인(작업 증명, POW)을 예를 들어보겠습니다.
비트코인은 10분마다 새로운 블록이 생성됩니다. 2009년~현재까지 약 70만 개 이상이 생성되었습니다.
블록과 블록이 체인처럼 연결되기 위해서는 채굴자들이 논스값을 찾아야만 이전 블록과 새로 생성된 블록이 체인으로 연결되어 채굴자들이 보상을 받게 되는 원리입니다.


새로 생성된 블록은 채굴자에게 전달되면 논스값이 비어있는 미완성의 블록이 전달됩니다.

버전 이전블록해시값 비츠
타임스탬프 머클루트해시값 논스

이 블록의 해시값이 임의의 특정 숫자보다 작은 값이 나와야 하는데 목표값 이하의 숫자를 찾기 위해 사용하는 숫자를 논스라고 표현합니다.
참고로 논스값을 제외한 나머지 값들은 고정된 값이라 논스값을 0,1,2....... 하나씩 대입해 가면서 목표값 이하의 블록 해시 값을 찾아야 합니다.

이렇게 논스값을 찾은 채굴자가 블록을 전파를 하면 다른 채굴자들은 진실인지 거짓인지 검증을 하여 50% 이상이 해당 블록을 채택하면 새로운 블록은 이전 블록과 체인의 형태로 연결되어 분산 원장에 저장되는 원리이며 논스값을 처음 푼 채굴자는 보상을 받게 됩니다.


■ 논스값? 이 뭔데 경쟁해서 풀려고 하는가?

우린 개발자가 아니다. 조금 틀리더라도 개념만 파악해보자.

 

☞ 1번 문제 n(논스값) + 1 < 3 답은 1(난이도)   

☞ 2번 문제 n(논스값) + 1 < 100 답은 1~98(난이도)  

 

위의 문제 중 어떤 문제가 쉬워 보이는가? 답은 2번 문제다 1~98가지의 답이 있으니까

숫자 3과 100은 블록 생성시간을 규칙적으로 유지시켜주는 "난이도"라고 생각하자.

그런데 문제는 1+1을 해시함수로 변환하면 4A1B21D876AE00C8ED5C4D1CDE09C61F8A61B50FE370A801B10C339831F370AB

이런 해시값이 나오는데 숫자를 알 수 없으니 0부터 대입하면서 난이도보다 작은 숫자를 찾아야 한다.

 

비트코인은 10분 간격으로 블록이 생성되는데 10분보다 빨리 문제를 풀면 난이도를 올리고 느리게 풀면 난이도를 내리는 과정을 거치면서 블록 생성시간을 규칙적으로 유지하며 논스값은 단순 계산을 무한 반복하는 작업이라 컴퓨터 연산속도에 비례하는데 A채굴자는 연산속도가 1이고 B채굴자는 연산속도가 2이면 , A가 1개를 채굴할 때 B는 2개를 채굴할 확률이 높다.




댓글