본문 바로가기
카테고리 없음

비트코인 채굴과 작업증명과(PoW)

by 3min⚡️bitcoin 2025. 12. 8.

가끔 뉴스를 보다보면 비트코인 솔로 채굴에 성공하여 3BTC 가량을 독식했다며 부러움을 자아낸다. (솔직히 개부럽다)

혹은 비트코인 채굴 반감기가 도래하여 4년 주기 사이클이라 이제 상승기다, 혹은 하락기다 등등 가격에 대한 분석 유튜브 영상들이 쏟아져나온다. (이건 진짜 노이즈다)

 

아무튼 나는 비트코인에서 작업증명(채굴)이 핵심 포인트라고 생각한다.

고로 이번엔 채굴, 작업증명이 무엇인지 알아보자.

 

일단은 작업증명이랑 채굴이 같은거라고 인식하고 봐도 된다.

(채굴은 보상 지급까지의 전체 프로세스, 작업증명은 그 사이 수학적 합의 매커니즘)

채굴, 작업증명(Proof-of-Work)

채굴이란 새로운 블록을 가장 먼저 찾아서 연결하고 보상을 받는 행위이다.

새로운 블록을 찾는다는 말을 구체적으로 나열하면 다음과 같다.

  • 멤풀에 제시된 트랜잭션들을 검증해서 블록 바디에 담고
  • 블록 헤더의 논스값을 바꿔서 블록헤더를 해싱해본다.
  • 해싱한 값이 블록 헤더의 난이도 목표값보다 작으면 그 때의 논스값을 블록 헤더에 기록한 뒤
  • 다른 피어 노드들에게 내가 논스값을 찾았다고 전파를 한다.
  • 전파가 완료되면 해당 블록을 채굴한 댓가의 비트코인을 받는다(사용할 수 있게 된다)

nonce - learnmeabitcoin
bitcoin mining - learnmeabitcoin

 

위 과정 전체 프로세스를 채굴이라고 한다.

위 과정 중 난이도 값을 찾기 위해 논스값을 바꿔 대입해보는 과정을 작업증명이라고 한다.

 

작업증명이 어려운 이유

비트코인 작업증명은 블록 헤더를 해시함수를 돌리며 타겟에 맞는 목표값을 찾는 과정이라고 했다.

여기서 해시함수 때문에 비트코인 작업증명이 매우 어려워진다.

 

해시함수의 특성중에는 눈사태 효과라는게 있다. 값이 살짝만 달라져도 결과물은 아예 달라진다.


https://emn178.github.io/online-tools/sha256.html

 

SHA256

This SHA256 online tool helps you calculate hashes from strings. You can input UTF-8, UTF-16, Hex, Base64, or other encodings. It also supports HMAC.

emn178.github.io

이는 온라인 sha256 계산기 툴인데 직접 해보면 와닿는다.

 

3분비트코인: 315153f2acb539d47b25575f95aee530437fe08237021cd95bd77cb4cc4cc047

2분비트코인: f2ff2d18f98b10ed6060407a39aa0174eb85c7fbd2e735f9662f3295548d54f2

1분비트코인: 4033455ac645e9ae6f7dc0cd96eb8f049aa939384a66adabdb84bbf34198c135

위 예시처럼 숫자 하나만 바뀌었는데 아예 다른 값이 나오게 된다.

 

작업증명은 특정 값 보다 작은 해시 값 결과를 얻어야 한다.

00000000098b10ed6060407a39aa0174eb85c7fbd2e735f9662f3295548d54f2 보다 작은 해시값을 구하시오!

 

이게 블록 헤더의 난이도 목푯값이 된다.

가끔 PoW 설명 영상들을 보면 해시값 앞자리 0의 개수를 말하기도 하는데, 이는 쉬운 이해를 돕기 위한 예시일 뿐이다.

 

만약 내가 채굴해야 하는 목표가 앞자리 0의 개수가 2개라고 해보자 (쉽게쉽게)

그러면 나는 1,2,3,4,5를 해보니 5분비트코인 이라는 문자열이 이에 부합하는 결과임을 알았다.

5분비트코인: 0027d532d11c53e86dbff9d3e36c06b400f69c4bbd5cbf23f2a92b608b2579d9

그럼 내 문제의 논스값은 "5분비트코인"이 된다.

(실제 논스값은 숫자다)

 

위와 같은 과정을 거치기 때문에, 비트코인은 채굴앞에 모두가 평등하다.

더 많은 전력을 투입해야만 우위를 점할 수 있다.

비트코인은 권력과 현재 자본량에 상관없이 모두가 공평하다. 채굴기 사서 돌리는 것 외에는 치트키가 없기 때문이다. 이자도 없고.

작업증명 난이도 조절

비트코인은 10분마다 채굴된다는 말을 들어본적이 있을 것이다.

처음엔 CPU로 채굴하고, GPU 대란도 일으키고, 이제는 ASIC이라는 전용칩까지 개발해서 채굴을 하면 더 채굴이 빨리 되어야 하는게 아닌가? 어떻게 비트코인은 2009년 처음부터 지금까지 평균 10분에 1개씩 블록이 채굴되는 것일까?

 

그 해답은 비트코인 난이도 조절에 있다.

비트코인은 2016개의 블록이 채굴될 때마다 채굴 난이도를 조절한다.

즉 블록 헤더의 난이도 목푯값을 수정한다는 뜻이다.

 

2016개의 블록이 평균 10분보다 빠르게 채굴되었다면, 난이도를 높인다. (0이 더 많이 필요해진다. 타겟 목푯값을 낮춘다)

반대로 평균 10분보다 느리게 채굴되었다면, 난이도를 낮춘다.

 

위 과정은 자동으로 이루어지며 사토시가 처음 공개했을때부터 지금까지 유지되고 있다.

따라서 비트코인이 10분마다 채굴되므로 결제에 느리다는 주장은 완전히 잘못되었다.

비트코인은 10분마다 정산되는 시스템으로 현존하는 은행 결제-정산 시스템보다 우월하다.

 

⭐️ 난이도 조절이 비트코인을 정말 특별하게 만들어준다. ⭐️