비트코인채굴기술

비트코인 채굴 작동 원리: 단계별 기술 분석

비트코인 채굴의 상세 기술 분석 — 블록 템플릿 구성과 트랜잭션 선택부터 SHA-256 이중 해싱, 난이도 목표, 논스 탐색, 블록 전파, 마이닝 풀 메커니즘, ASIC 발전사까지 단계별로 해설합니다.

· 8분

비트코인 채굴은 새로운 블록을 블록체인에 추가하고, 새로운 비트코인을 발행하며, 네트워크가 모든 트랜잭션의 상태에 대해 중앙 기관 없이 합의에 도달하는 과정입니다. 이것은 비트코인을 작동하게 만드는 엔진입니다. 그러나 흔히 알려진 “디지털 금 채굴”이라는 비유 아래에는 정밀하고 결정론적인 계산 과정이 있으며, 이를 상세히 이해할 가치가 있습니다.

이 글에서는 채굴자가 후보 블록을 조립하기 시작하는 순간부터 그 블록이 네트워크에 의해 승인되는 순간까지, 채굴 과정을 단계별로 살펴봅니다.

1단계: 블록 템플릿 구성

채굴은 해싱에서 시작되지 않습니다. 블록 템플릿 구성 — 다음 블록에 어떤 트랜잭션을 포함할지 결정하고 채굴자가 해싱할 데이터 구조를 조립하는 과정에서 시작됩니다.

멤풀에서 트랜잭션 가져오기

모든 비트코인 풀 노드는 멤풀(메모리 풀)을 유지합니다: 네트워크에 브로드캐스트되었지만 아직 블록에 포함되지 않은 유효한 미확인 트랜잭션의 모음입니다. 채굴자가 새 블록 작업을 시작하면 멤풀에서 포함할 트랜잭션을 선택합니다.

트랜잭션 선택은 무작위가 아닙니다. 채굴자는 경제적으로 합리적인 행위자이며, 블록의 크기 제약 내에서 수수료 수익을 극대화하도록 트랜잭션을 선택합니다. SegWit 업그레이드 이후, 블록은 400만 가중 단위(트랜잭션 유형에 따라 약 1-1.5 MB의 원시 데이터)로 제한됩니다.

실제로 트랜잭션은 수수료율(가상 바이트당 사토시, sat/vB)을 기준으로 정렬됩니다. 수수료율이 높은 트랜잭션이 먼저 포함됩니다. 50 sat/vB를 지불하는 트랜잭션은 10 sat/vB를 지불하는 것보다 먼저 포함됩니다. 이 시장 기반 수수료 메커니즘이 중앙 기관 없이 비트코인의 희소한 블록 공간을 배분하는 방법입니다.

코인베이스 트랜잭션

모든 블록에는 첫 번째 항목으로 정확히 하나의 특별한 트랜잭션이 포함되어야 합니다: 코인베이스 트랜잭션. 이 트랜잭션은 입력이 없고(기존 UTXO를 소비하지 않음) 현재 블록 보조금 일정에 따라 새로운 비트코인을 생성합니다.

2026년 현재, 블록 보조금은 블록당 3.125 BTC입니다(2024년 4월 반감기 이후). 코인베이스 트랜잭션 출력은 블록 보조금에 블록 내 모든 트랜잭션 수수료의 합을 더한 것입니다.

코인베이스 트랜잭션에는 채굴자가 최대 100바이트의 데이터를 삽입할 수 있는 임의 데이터 필드(코인베이스 scriptSig)도 포함됩니다. 사토시 나카모토는 유명하게도 제네시스 블록의 코인베이스에 “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”라는 헤드라인을 포함시켰습니다. 오늘날 채굴자들은 이 필드를 풀 식별, 엑스트라 논스(아래에서 논의), 때로는 메시지에 사용합니다.

머클 트리 구축

채굴자가 트랜잭션을 선택한 후, 머클 트리를 구축합니다 — 모든 리프 노드가 트랜잭션의 해시이고, 모든 비리프 노드가 두 자식의 해시인 이진 해시 트리입니다. 이 트리의 루트인 머클 루트는 블록의 모든 트랜잭션에 대한 암호학적 커밋인 단일 32바이트 해시입니다.

머클 트리 구축 과정:

  1. 각 트랜잭션을 해싱(SHA-256d, 즉 이중 SHA-256 사용)하여 트랜잭션 ID(txid) 획득
  2. txid들을 쌍으로 묶기. 홀수이면 마지막 것을 복제
  3. 각 쌍을 함께 해싱하여 다음 레벨 생성
  4. 하나의 해시만 남을 때까지 반복 — 이것이 머클 루트

블록 헤더 조립

채굴자는 이제 6개의 필드로 80바이트 블록 헤더를 조립합니다:

필드크기설명
버전4바이트블록 버전 번호
이전 블록 해시32바이트가장 최근 유효 블록 헤더의 SHA-256d 해시
머클 루트32바이트선택된 트랜잭션으로 계산된 머클 루트
타임스탬프4바이트현재 유닉스 시간
비트(타겟)4바이트현재 난이도 목표의 압축 인코딩
논스4바이트초기값 0

이 80바이트 헤더가 채굴자가 반복적으로 해싱할 데이터입니다.

2단계: 해싱 과정

SHA-256 이중 해싱

비트코인의 작업증명은 SHA-256d를 사용합니다: SHA-256 해시 함수를 연속으로 두 번 적용합니다.

hash = SHA-256(SHA-256(block_header))

SHA-256은 256비트(32바이트) 출력을 생성합니다. 이 출력은 0과 2^256 - 1 사이의 숫자입니다. 작업증명을 가능하게 하는 SHA-256의 핵심 속성은 일방향 함수라는 것입니다: 출력이 주어졌을 때, 입력을 시도하고 확인하는 것 외에 역산할 방법이 없습니다. 입력의 작은 변화는 출력의 완전히 예측 불가능한 변화를 만들어냅니다(쇄도 효과).

난이도 목표

채굴자의 목표는 SHA-256d 해시를 256비트 숫자로 해석했을 때 현재 난이도 목표보다 작은 블록 헤더를 찾는 것입니다.

개념적으로, 목표는 해시가 가져야 할 선행 0 비트의 수를 정의합니다. 더 낮은 목표는 더 많은 선행 0이 필요함을 의미하고, 더 작은 숫자를 의미하며, 해시를 찾기가 더 어려워짐을 의미합니다.

2026년 현재, 난이도 목표는 대략 79-80개의 선행 0 비트를 요구하며, 단일 해시 시도가 이 조건을 만족할 확률은 약 2^80분의 1 — 약 10^24분의 1입니다.

논스 반복

채굴자의 탐색 과정은 단순합니다:

  1. 논스 필드를 0으로 설정
  2. 80바이트 헤더의 SHA-256d 계산
  3. 결과를 목표와 비교
  4. 해시가 목표보다 작으면: 유효한 블록 발견
  5. 아니면: 논스를 1 증가시키고 반복

논스는 32비트 필드로, 2^32(약 43억) 개의 가능한 값을 제공합니다. 현대 ASIC 해시율에서 단일 채굴기는 전체 32비트 논스 공간을 1초 미만에 소진합니다.

엑스트라 논스와 기타 탐색 차원

43억 개의 논스 값이 유효한 해시를 찾지 못하고 소진되면, 채굴자는 새로운 해시 세트를 만들기 위해 블록 헤더의 다른 것을 변경해야 합니다:

엑스트라 논스: 코인베이스 트랜잭션의 scriptSig 내 필드. 엑스트라 논스를 증가시키면 코인베이스 트랜잭션이 변경되고, txid가 변경되고, 머클 루트가 변경되고, 블록 헤더가 변경되어 — 완전히 새로운 2^32 논스 값 세트를 시도할 수 있게 됩니다.

타임스탬프: 채굴자는 허용 범위 내에서 타임스탬프를 조정하여 다른 헤더를 생성할 수 있습니다.

실제로 현대 채굴은 3차원 탐색 공간에서 작동합니다: 논스(내부 루프, 밀리초 단위로 소진), 엑스트라 논스(중간 루프), 타임스탬프/트랜잭션 집합(외부 루프).

3단계: 유효한 블록 찾기

채굴자가 마침내 목표 아래의 해시를 계산하면, 유효한 블록을 찾은 것입니다. 이 해시는 작업증명 — 특정하고 정량화 가능한 양의 계산 노력이 지출되었다는 증거 — 역할을 합니다. 누구나 블록 헤더를 한 번 해싱하고 결과가 목표 아래인지 확인함으로써 이 증명을 즉시 검증할 수 있습니다. 검증에는 마이크로초가 걸리지만, 증명을 찾는 데는 수십억 번의 시도가 필요했습니다.

이 비대칭성 — 생산은 어렵고, 검증은 사소함 — 이 작업증명을 합의에 유용하게 만드는 근본적 속성입니다.

4단계: 블록 전파

유효한 블록이 발견되면, 채굴자는 가능한 한 빨리 네트워크에 브로드캐스트합니다. 속도가 중요합니다: 다른 채굴자가 같은 높이의 유효한 블록을 먼저 찾고 그 블록이 더 널리 전파되면, 느린 채굴자의 블록은 고아 블록(더 정확히는 부패 블록)이 되어 보상을 받지 못합니다.

컴팩트 블록 릴레이 (BIP 152)

현대 비트코인 노드는 전파 시간을 최소화하기 위해 컴팩트 블록 릴레이를 사용합니다. 전체 블록(1 MB 이상)을 전송하는 대신, 노드는 블록 헤더와 짧은 트랜잭션 식별자 목록을 전송합니다. 수신 노드는 이 식별자를 자신의 멤풀에 이미 있는 트랜잭션과 매칭합니다. 새 블록의 대부분의 트랜잭션은 수신 노드에 이미 알려져 있으므로, 대부분의 경우 블록 전파 시간이 초 단위에서 밀리초 단위로 줄어듭니다.

블록 검증

블록을 수신한 모든 노드는 독립적으로 검증합니다:

  1. 헤더 검증: 해시가 목표보다 작은가? 이전 블록 해시가 올바른가? 타임스탬프가 허용 범위 내인가?
  2. 트랜잭션 검증: 모든 트랜잭션이 유효한가? 입력이 미사용인가? 서명이 올바른가?
  3. 머클 루트 검증: 계산된 머클 루트가 헤더의 것과 일치하는가?
  4. 블록 크기/가중: 블록이 400만 가중 단위 제한 내인가?

모든 검사를 통과한 후에만 노드가 블록체인 사본에 블록을 추가하고 피어에 전달합니다.

5단계: 난이도 조정

비트코인의 난이도 조정 알고리즘은 네트워크의 해시 파워가 얼마이든 관계없이 평균 10분마다 블록이 생산되도록 보장합니다. 이 조정은 2,016블록마다(약 2주마다) 발생합니다.

new_target = old_target × (2016블록 채굴 소요 시간 / 20160분)

지난 2,016블록이 14일 대신 10일 만에 채굴되었다면, 블록이 너무 빨리 나오고 있으므로 목표가 낮아집니다(난이도 증가). 20일이 걸렸다면 목표가 높아집니다(난이도 감소). 조정은 극단적 변화를 방지하기 위해 어느 방향이든 4배로 제한됩니다.

마이닝 풀: 집단 해시 파워

솔로 채굴자가 블록을 찾을 확률은 전체 네트워크 해시율에서 차지하는 비율에 비례합니다. 2026년에 네트워크 해시율이 700 EH/s를 초과하는 상황에서, 수천 대의 ASIC 기기를 운영하는 채굴자도 네트워크의 아주 작은 부분에 불과합니다. 1 PH/s의 채굴자는 각 블록을 채굴할 확률이 약 70만 분의 1이며, 평균적으로 약 13.5년에 한 블록을 채굴합니다.

이 분산 문제가 마이닝 풀의 탄생으로 이어졌으며, 많은 채굴자가 해시 파워를 결합하고 보상을 비례적으로 나눕니다.

풀 작동 방식

  1. 풀 운영자가 모든 풀 멤버에게 블록 템플릿 제공
  2. 각 채굴자는 이 템플릿의 수정된 버전(자체 엑스트라 논스 범위)으로 작업
  3. 채굴자들은 쉐어 제출 — 실제 비트코인 난이도보다 낮은 난이도 목표를 충족하는 작업증명 솔루션
  4. 어떤 채굴자의 해시가 실제 난이도 목표도 충족하면, 풀이 유효한 블록을 브로드캐스트
  5. 블록 보상은 기여한 쉐어에 비례하여 모든 풀 멤버에게 분배

보상 체계

PPS (Pay Per Share): 풀이 실제로 블록을 찾았는지 여부에 관계없이 각 유효한 쉐어에 대해 고정 금액 지급. 채굴자의 분산을 제거하지만 풀 운영자에게 위험 전가.

PPLNS (Pay Per Last N Shares): 블록이 발견된 시점 주변의 기간 동안 기여한 쉐어에 비례하여 지급. 위험을 더 균등하게 분배하지만 약간의 분산 도입.

FPPS (Full Pay Per Share): PPS와 유사하지만 블록 보조금뿐만 아니라 트랜잭션 수수료의 추정 몫도 포함.

중앙화 우려

2026년 현재, 상위 4개 마이닝 풀이 네트워크 해시율의 60% 이상을 통제합니다. 이 집중은 검열과 잠재적 51% 공격에 대한 우려를 제기합니다. 그러나 풀 채굴자들은 풀을 전환할 수 있고 실제로 전환합니다. Stratum V2 프로토콜의 개발은 개별 채굴자가 풀 운영자의 템플릿을 수락하는 대신 자체 블록 템플릿을 구성할 수 있게 하여 일부 중앙화 우려를 해결합니다.

ASIC 진화: 하드웨어 군비 경쟁

비트코인 채굴 하드웨어는 네 세대를 거쳐 발전했습니다:

CPU 채굴 (2009-2010)

사토시 나카모토는 표준 CPU로 최초의 비트코인 블록을 채굴했습니다. 당시 Intel Core i7은 약 10-30 MH/s를 달성할 수 있었습니다.

GPU 채굴 (2010-2013)

그래픽 처리 장치(GPU)는 병렬 처리 아키텍처 덕분에 SHA-256 해싱에서 CPU 대비 10-100배 향상을 제공했습니다. 고급 GPU는 200-800 MH/s를 달성했습니다.

FPGA 채굴 (2011-2013)

FPGA(Field-Programmable Gate Array)는 GPU보다 나은 에너지 효율을 제공했지만, 비싸고 프로그래밍이 어려웠으며 지배 기간이 짧았습니다.

ASIC 채굴 (2013-현재)

ASIC(Application-Specific Integrated Circuit)은 SHA-256 해싱만을 위해 설계된 칩입니다. 현대 ASIC(2026년)은 단위당 200-300 TH/s의 해시율을 달성하면서 테라해시당 15-25와트를 소비합니다.

주요 이정표:

  • Bitmain Antminer S9 (2016): 14 TH/s, 98 W/TH
  • Bitmain Antminer S19 XP (2022): 140 TH/s, 21.5 W/TH
  • Bitmain Antminer S21 (2024): 200 TH/s, 17.5 W/TH
  • 최신 세대 (2026): 250-300+ TH/s, 15 W/TH 미만의 효율

에너지와 경제학

채굴은 근본적으로 에너지 변환 과정입니다: 전기가 비트코인 네트워크의 암호학적 보안으로 변환됩니다. 채굴자는 획득한 비트코인의 가치(블록 보조금 + 수수료)가 전기, 하드웨어 감가상각, 냉각, 운영 비용을 초과할 때 수익성이 있습니다.

이 경제적 압력이 채굴자들을 지구상에서 가장 저렴한 전기를 찾게 만들며, 이는 점점 더 좌초 에너지(그렇지 않으면 낭비될 에너지)와 재생 에너지(대규모에서 kWh당 종종 가장 저렴)를 의미합니다.

왜 작업증명이 중요한가

작업증명은 종종 “낭비적”이라고 비판받습니다. 이 비판은 에너지 지출의 기능을 오해하고 있습니다. 채굴에 소비되는 에너지는 낭비되는 것이 아닙니다 — 특정 양의 물리적 작업이 수행되었다는 위조 불가능한 증명으로 변환됩니다.

  1. 객관적 비용: 유효한 블록 생성에는 실제 세계 자원(전기)의 지출이 필요합니다. 이 객관적 비용은 시빌 공격을 방지합니다.
  2. 열역학적 최종성: 후속 블록 아래에 묻힌 블록을 되돌리려면 그 후속 블록을 생성하는 데 사용된 모든 에너지를 재지출해야 합니다.
  3. 공정한 발행: 새로운 비트코인은 네트워크를 보호하기 위해 실제 자원을 지출하는 사람들에게 분배됩니다.

작업증명은 디지털 화폐를 물리적 현실에 고정시키는 메커니즘입니다. 이것 없이는 비트코인은 운영자에 대한 신뢰가 필요한 또 하나의 데이터베이스에 불과할 것입니다.

블록 구조에 대한 더 깊은 이해를 위해서는 비트코인 블록 구조를 참조하세요. 채굴의 경제적 함의에 대해서는 비트코인 반감기비트코인과 에너지를 참조하세요.

관련 글