brunch

7-1. 무작위에서 질서로: 비트코인 채굴 원리(상)

계산과 경쟁으로 완성되는 디지털 장부의 기초

시리즈 1편부터 정주행 하기 -> [쉽게 배우는 비트코인 작동원리]



곡괭이 없는 채굴장


비트코인을 살아 숨 쉬게 하는 기술이 있다면 아마 채굴일 것이다.

하지만 이 채굴에는 그 어떤 곡괭이도, 굴삭기도, 덤프트럭도 필요하지 않다.


채굴자들은 블록이라는 비트코인의 장부를 생성하고 보상을 받기 위해 전기료를 지불해 가며 고군분투한다는 사실을 우리는 이미 간략하게나마 다뤘다.


여기서 기술적으로 더 깊은 수준의 이해를 하려면 실제로 채굴자들이 블록을 생성하는 과정과, 어떻게 서로 경쟁하는지, 또 경쟁 수준에 따라 변모하는 비트코인 네트워크의 모습에 대해 알아볼 필요가 있다.


자, 이제 곡괭이 없는 채굴장으로 여행을 떠나보자.



채굴의 기본 개념



채굴이란 무엇인가?


사용자가 [5. 비트코인 전송 과정에서 일어나는 일들]에서 언급된 내용처럼 트랜잭션을 서명하고 거래를 브로드캐스팅 했다고 가정해 보자.


비트코인의 장부를 검증하고 보관하는 노드들은 전파받은 거래를 확인하고, 해당 거래가 위변조 되지 않았다면 이를 Mempool(멤풀)이라고 불리는 대기열에 추가시킨다.

bitcoin-mining-final-dfdc034510b04a9b83c5ce84a338bf9c.png image source: investopedia

채굴자는 Mempool에서 대기 중인 거래들을 모아 블록을 생성하는데, 만들어지는 블록의 유효성과 불변성을 보장하기 위해 수학 퍼즐을 푸는 과정을 채굴이라고 한다.


채굴자들이 전기를 소모해서 퍼즐을 푼 후 블록을 생성해서 네트워크에 공개하면 시스템에서는 보상으로 비트코인을 준다.



비트코인 네트워크에 채굴이 필요한 이유


만약 장부를 기록할 수 있는 권한이 아무에게나 주어진다면 위변조가 빈번하게 일어날 수 있다.


따라서 채굴은 블록 생성자로 하여금 일정한 수준의 비용을 들여 블록을 생산하고 보상을 얻도록 유도한다.


이를 [2. 비트코인은 장부다]에서 간략하게 작업증명(Proof of Work)이라는 개념을 통해 언급했었다.


만약 블록 생성자가 얼마나 많은 에너지를 쏟았는지 검증할 수 있다면 동시에 그가 위조장부를 생성하는 것이 경제적으로 그에 상응하는 만큼 비합리적이라는 사실을 동시에 검증할 수 있다.


비잔틴 장군 문제와 작업증명 개념이 생소하다면 [2. 비트코인은 장부다] 편을 다시 보고 오시는 것을 추천드립니다.


즉 정직하게 채굴에 참여하는 것이 더 합리적이기에 비트코인은 비잔틴 내결함성(Byzantine Fault Tolerance)을 지닌다고 할 수 있는 것이다.



쉽게 채굴 알아보기



주사위 게임 비유


실제로 어떻게 비트코인이 채굴되는지 알아보기 전, 이해를 돕기 위해 주사위 게임의 예시를 들어 채굴 개념을 쉽게 알아보자.


100개의 로봇들이 주사위 게임에 참가하기 위해 모였다. 이들은 모두 1개의 주사위를 가지고 있다.

gD5JVTI0jRCrGu6LlXY%3D

규칙은 간단하다. 주사위를 4번 던졌을 때 나온 숫자들의 합이 화면에 제시된 목푯값 이하가 되면 성공이다.


예를 들어 제시된 숫자가 10이라면, 4~10이 보상 조건에 충족하는 합이라고 할 수 있다.


이 게임에는 보상이 있다. 먼저 정답을 맞힌 로봇은 리워드를 받고, 게임은 새롭게 초기화된다.


그러다 보니 주사위 게임 보상의 가치가 상승함에 따라 더 많은 보상을 얻기 위해 참여자들은 높은 사양의 로봇들을 투입하기 시작했다.

raw?se=2025-04-04T14%3A23%3A57Z&sp=r&sv=2024-08-04&sr=b&scid=8a0ed56f-6aee-5028-88eb-b079b56c6aa1&skoid=a3336399-497e-45e5-8f28-4b88ecca3d1f&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-04-04T09%3A08%3A47Z&ske=2025-04-05T09%3A08%3A47Z&sks=b&skv=2024-08-04&sig=sH%2BSjmZ4o5%2BXomIfaQGSK4q91JdysYUS3tWdGzBnC5k%3D

팔이 많고 반응속도가 빠른 로봇일수록 경쟁 상대들에 비해 압도적으로 빠른 속도로 답을 찾아낼 수 있다.


자연스럽게, 추가 보상을 원하는 참가자들은 더 많은 자원을 투입해 경쟁력을 확보하려고 노력할 것이다.



게임 속 경쟁과 난이도 조절


그런데 문제가 생긴다. 너무 많은 고사양 로봇들이 참전하기 시작하자, 정답이 비정상적으로 빠르게 발견되기 시작한 것이다.


이 게임은 설계상 정답이 평균적으로 10분에 한 번씩 나와야 한다. 그래야 적절한 속도로 게임이 진행되기 때문이다.


따라서 게임의 관리자는 이따금 게임의 규칙을 조금씩 조정한다.

raw?se=2025-04-04T14%3A39%3A55Z&sp=r&sv=2024-08-04&sr=b&scid=836b1c39-b5e0-5557-a17a-fa993eb9e34e&skoid=a3336399-497e-45e5-8f28-4b88ecca3d1f&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-04-04T11%3A43%3A23Z&ske=2025-04-05T11%3A43%3A23Z&sks=b&skv=2024-08-04&sig=M26rcLISQoLhd86YM612O0aBwFNQAIYqRLASUW9qPTg%3D

참가자들이 너무 빠른 속도로 답을 찾을 경우, 관리자는 목푯값을 낮춰서 (예: 10 -> 8) 정답 발견 난이도를 높일 수 있다.


반대로 로봇들의 참여율이 저조하여 답이 느리게 발견될 수 있다.


이 경우 관리자는 목푯값을 높여서 (예: 10 -> 13) 더 쉽게 정답을 발견할 수 있도록 난이도를 하향조정할 수 있다.


주사위를 굴리는 행위와 로봇을 투입하는 행위는 모두 비용이며, 보상의 규모와 난이도에 따라 게임의 참여자들은 투입할 로봇의 사양과 숫자를 결정한다.


결국 비트코인 채굴이란 블록을 만드는 조건에 만족하는 정답을 찾기 위해 채굴자들이 컴퓨터로 끊임없이 숫자를 조합해 보는 작업이다.


이제 실제로 이 과정이 비트코인 내부에서 어떻게 일어나는지 하나씩 알아보자.



실제 채굴이 진행되는 방식


채굴 방식은 초보자에게 다소 난해할 수 있어 직접 실습해 볼 수 있는 링크를 마련했으니 글을 읽으면서 따라온다면 큰 도움이 되리라 확신한다.


또한 채굴의 초반부 개념은 [3. 비트코인 블록체인 해부하기]에서 자세히 다룬 적이 있어 이번에는 다소 간소화하여 설명을 진행했다.


트랜잭션 수집


마이닝 노드를 구동하는 채굴업자이다.


장부를 저장하고 검증함과 동시에 채굴을 진행하는 마이닝 노드는 네트워크를 통해 전파된 트랜잭션(거래)들을 수집한다.


은 이 중에서 임의의 거래들을 모아(주로 수수료가 높은 순으로) 자신이 만들고자 하는 블록에 넣는다.


아래 보이는 사진은 이 생성 중에 있는 2번 블록의 단면이다.

2.png image source: Blockchain Demo

실제 링크에는 난스, 이전 값 등에 특정 내용이 이미 적혀있겠지만, 채굴자가 네트워크에서 트랜잭션을 모으는 모습을 가정하고 다 지워보았다.


사진에서 확인할 수 있듯 앤더스소피아에게 10 비트코인을 보내고 있고, 루카스에게 20 비트코인을 보내고 있다.


그렇다면 보낸 이 가 적혀있지 않은 코인베이스는 어떤 형태의 트랜잭션일까?

2025년 4월 10일 오후 11_36_47.png

코인베이스는 네트워크에서 새로 발행되어 채굴을 성공한 채굴자에게 주어지는 보상이다. 이를 블록 보상이라고 부른다.


만약 이 2번 블록 채굴에 성공한다면, 코인베이스 트랜잭션 또한 블록체인에 기록되게 되고, 은 보상으로 적혀있는 100 비트코인을 챙겨갈 수 있다. (실제로 100개는 아님)


이렇게 블록에 기록될 트랜젝션 데이터 수집이 끝났다.



블록헤더와 해시 연산


이 마음대로 장부를 조작하는 상황을 방지하기 위해 비트코인 네트워크에서는 이전 값, 즉 이전 블록의 해시를 요구한다.


현재 블록에 이전 블록의 해시를 기록한다는 것은 과거 장부의 유효성을 인정하는 과정과도 같다.


만약 과거의 내용이 변조되었다면 그 블록의 고유번호라고 할 수 있는 해시 또한 변경되어 그 뒤에 따라오는 모든 블록들과의 연결고리를 끊어놓기 때문이다.


6NVRrMnpv2ctMDNXwMoY5f2Cq44.PNG image source: Blockchain Demo

이후 의미 없는 랜덤 숫자라고 할 수 있는 난스를 기록하면 블록 생성에 필요한 모든 정보는 입력되었다.


이제 [3. 비트코인 블록체인 해부하기]에서 언급한 내용처럼,

[난스 + 거래내역 + 이전해시 + 기타 정보]를 조합하여 블록 헤더를 생성할 수 있다.


생성된 블록 헤더SHA256 함수에 두 번 넣어서 연산하면, 해당 블록의 해시값을 얻을 수 있다.


SHA256 해시 함수와 블록헤더 개념에 대한 이해가 부족하다면 [3. 비트코인 블록체인 해부하기]를 먼저 읽고 오시는 것을 추천드립니다.



난스 변경


이제은 무작위로 난스 값을 바꿔가며 원하는 목표 범위에 상응하는 해시가 나올 때까지 연산을 진행한다.


블록 헤더[난스 + 거래내역 + 이전해시 + 기타 정보] 부분 중 변경되어도 거래 내역에 지장을 주지 않는 정보는 난스뿐이기 때문이다.


SHA256 해시 함수의 특성상 역추산이 불가능하기 때문에 가능한 모든 수를 대입해 보는 것 외에는 방법이 없다.

3.png image source: Blockchain Demo

그렇게 무작위로 난스를 변경하는 연산 과정을 거쳐 목푯값에 도달하면 채굴이 완료되고 은 완성된 블록을 네트워크 전체에 전파할 수 있다.


링크에서 채굴 버튼을 누르면 간단한 연산을 통해 규칙에 맞는 블록을 생성해 볼 수 있다.


의 블록을 전달받은 풀 노드들은 블록의 유효성을 검증하고, 문제가 없다면 새 주사위 게임이 시작된다.


이제부터 채굴자들은 의 블록 위에 이어서 작업을 하고, 현재 이 생성한 2번 블록의 해시는 그들이 생성할 3번 블록이전 해시가 된다.



이제 우리는 채굴의 기본적인 과정에 대해 조금이나마 이해했다.


하지만 어떻게 이 주사위 게임의 정답이 10분에 한 번 나오는지, 채굴자들은 어떤 보상을 어떻게 수령하는지, 보상은 끝없이 이어질지 등 비트코인 채굴경제학에 대한 질문들이 남아있다.


이런 질문들에 답하기 위해 채굴 원리를 설명하는 글을 상, 하로 나눴다. 따라서 다음 글에서는 비트코인 채굴의 속도 조절 시스템과 보상 구조를 중점으로 서술할 예정이다.



참고문헌


Antonopoulos, Andreas. Mastering Bitcoin, 2nd Edition. O’Reilly Media, Inc, 2017.


keyword
매거진의 이전글6. 검증과 창조의 균형 : 비트코인 네트워크의 동력