작업증명 난이도 계산 쉽게 이해하기 — 개념과 원리
비트코인 같은 작업증명(PoW) 블록체인에서 채굴자는 블록 헤더의 해시값이 목표값보다 작아질 때까지 해시를 반복해서 계산합니다. 네트워크 난이도는 그것이 얼마나 어려운지를 나타냅니다. 이 계산기는 난이도와 내 해시레이트로 혼자 블록 하나를 찾는 데 걸리는 기대 시간을 구하고, 난이도로부터 네트워크 전체 해시레이트를 추정합니다. 단독 채굴이 왜 복권과 같은지, 채굴자들이 왜 풀에 모이는지 이해하는 데 도움이 됩니다.
계산 방법
- 블록당 기대 해시 수 ≈ 난이도 × 2³²(2³² = 4,294,967,296)입니다. 난이도 1에서는 평균 약 2³²번의 해시가 필요합니다.
- 기대 시간 = 난이도 × 2³² ÷ 내 해시레이트이며, TH/s 단위를 초당 해시 수(× 10¹²)로 바꾸어 계산합니다.
- 네트워크 해시레이트 = 난이도 × 2³² ÷ 600초입니다. 비트코인은 10분마다 블록 하나를 목표로 하기 때문이며, EH/s(초당 10¹⁸ 해시)로 표시합니다.
시간은 크기에 따라 시간·일·년 단위로 보여 줍니다.
원리
좋은 해시 함수는 난수 생성기처럼 동작하므로, 매번의 시도가 이전 시도와 상관없이 같은 작은 확률로 목표값 아래에 떨어집니다. 따라서 성공까지의 시도 횟수는 기하분포를 따르고 평균은 1 ÷ (1회 성공 확률)이며, 난이도는 이 평균이 약 난이도 × 2³²가 되도록 정의됩니다. 비트코인은 2,016블록마다 난이도를 조정해 장비가 늘어도 블록이 약 10분마다 나오게 합니다. 그래서 난이도를 거꾸로 계산하면 네트워크 전체의 해시 능력을 알 수 있습니다.
예제 풀이
- 입력값은 난이도 1.0 × 10¹⁴, 해시레이트 200 TH/s = 2 × 10¹⁴ H/s입니다.
- 기대 해시 수 = 10¹⁴ × 4,294,967,296 ≈ 4.295 × 10²³입니다.
- 시간 = 4.295 × 10²³ ÷ (2 × 10¹⁴) ≈ 2.147 × 10⁹초입니다.
- 2.147 × 10⁹ ÷ 86,400 ÷ 365.25 ≈ 68년입니다.
- 네트워크 해시레이트 = 4.295 × 10²³ ÷ 600 ≈ 715.8 EH/s입니다.
| 내 해시레이트 (TH/s) | 블록 발견까지 예상 시간 |
|---|---|
| 50 | 272 years |
| 100 | 136 years |
| 150 | 90.7 years |
| 200 | 68 years |
| 250 | 54.4 years |
| 300 | 45.4 years |
| 400 | 34 years |
결과 해석
68년은 평균일 뿐 약속이 아닙니다. 블록 발견은 기억이 없는 과정이므로 시간 t 안에 한 번 이상 찾을 확률은 1 − e^(−t ÷ 기대 시간)이며, 이 예에서 1년 안에 찾을 확률은 약 1.5%입니다. 내 해시레이트를 네트워크 해시레이트로 나눈 값(약 0.00003%)이 풀에서 기대할 수 있는 보상 몫입니다.
흔한 실수
- 단위를 혼동합니다. TH/s는 10¹², PH/s는 10¹⁵, EH/s는 10¹⁸입니다.
- 단독 채굴로 꾸준한 수입을 기대합니다. 결과는 매우 들쭉날쭉합니다.
- 전기료와 장비 비용, 그리고 난이도가 대체로 계속 오른다는 점을 무시합니다.
자주 묻는 질문
풀에 들어가면 보상이 늘어납니까?
평균으로는 그대로입니다. 풀은 수입을 자주 들어오는 작은 금액으로 고르게 만들 뿐이며, 기대 총액에서 풀 수수료가 빠집니다.
비트코인 난이도는 얼마나 자주 바뀝니까?
2,016블록, 약 2주마다 직전 2,016블록에 걸린 시간을 바탕으로 조정됩니다.
출처: Satoshi Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System", 2008 · A. Narayanan et al., Bitcoin and Cryptocurrency Technologies, Princeton University Press, 2016