본문 바로가기
블록체인 | 비트코인 | Web 3

4. 사람들이 비트코인 채굴을 하는 이유, 블록체인 구조, 작업증명

by 머니볼테크 2024. 2. 18.

지난 시간에 비트코인과 블록체인의 관계에 대해서 배웠습니다. 안 보고 오신 분들은 홍진경의 공부왕찐천재 블로그 비트코인 기초 내용을 꼭 읽어주세요. 두 번째 포스팅 블록체인 vs. 비트코인 (암호화폐)의 관계도 꼭 읽어보시면 저같은 초보자도 조금은 이해가 갑니다. 공부할수록 디지털 화폐 세상은 생각보다 일찍 올 것이라고 예상됩니다. 우리만 모르면 안 될 것 같습니다. 블록체인을 현재 소유하진 않더라도 알고는 있어야 합니다. 그래야 준비할 수 있으니까요.  
 
어쨌든 긴 얘기 짧게 줄여서 블록체인은 전자화폐가 진짜인지 가짜인지 구별하는 기술이라고 이해를 하고, 비트코인은 전자화페의 한 종류라고 생각합시다. 지금은 이게 가장 쉬습니다. (처음 비트코인을 공부하는 초보자의 기준에서 이렇게 정의하는 게 쉬워 보입니다.) 
 
사람들이 자꾸 비트코인을 채굴(마이닝: mining)한다고 하는데 채굴을 왜 하는지 아시는 분? 저도 궁금해서 찾아봤는데 채굴하면 보상을 주기 때문입니다. 그리고 그 보상은 바로 비트코인입니다. 현재 비트코인 얼마인가요? 지금 비트코인 시세 USD 51,734 (6500만원) 정도입니다. 그래서 비트코인을 채굴하는 것을 금을 캐는 것과 비슷하게 생각하면 됩니다. 
 
지금 채굴(마이닝)하기에는 늦었다고 어제 포스팅에 올린 공부왕찐천재 나오신 강사님이 말했어요. 이미 비트코인을 채굴하는 전문업체들도 있다고 합니다. 블록체인 창시자 사토시 나카모토는 비트코인은 총 2100만 개까지만 채굴될 수 있도록 프로그래밍 했다고 말했습니다. 그리고 비트코인의 채굴은 2140년에 종료될 예정이라 합니다.
 
그리고 4년마다 반감기를 통해 채굴량이 줄어들게 됩니다. 그 뜻은 4년마다 채굴을 해도 보상인 비트코인을 조금만 주는 것입니다. 비트코인이 2009년부터 발행됐으니까 최초에 암호 풀어서 블록 한 개 만들면 상으로 비트코인 50개 준다고 했습니다. 근데 이제 2022년에는 블록하나 만들면 비트코인 6.25개만 준다는 의미입니다. 2024년에 또 한 번의 반감기가 올 수 있다고 합니다. 그럼 마이닝을 하고 블록 암호를 풀어서 블록을 하나 만들어도 약 3.125개의 비트코인 보상만이 주어질 것으로 예상됩니다. 
 
정리할께요. 사람들은 비트코인을 받기 위해 채굴을 한다. 채굴을 한다는 의미는 블록에 있는 암호를 풀어서 그다음블록을 이어 나가는 것을 의미한다. 많은 사람들이 블록을 계속 이어나갈 수 있도록  암호를 푸는 작업을 하고 있다. 암호풀이에 성공을 하고 블록을 연결시키면 비트코인/ 블록체인 커뮤니티에서 잘했다는 보상을 비트코인을 준다.
 
"채굴이 끝나면 블록체인이라는 산업은 끝나는 건가?"라고 궁금해 할 수 있는데요. 근데 아니라고 합니다. 블록을 생성하는 참여자들 (채굴자)에게 보상되는 것은 비트코인뿐 아니라 (블록에 기록되는 거래내역의 일부의) 수수료를 보상받을 수 있습니다. 2140년에 채굴이 종료되어도 채굴자는 지속적으로 보상을 받을 수 있다고 합니다. 비트코인이 많이 사용되면 사용될수록 채굴자가 받는 수수료도 많아진다고 한다. 이 세상에서 비트코인이 사라지거나, 국가적으로 사용을 금지하지 않는 이상 채굴자들은 지속적으로 블록 생상하고 자발적으로 유지할 것으로 보입니다. 
 
현재 기관들도 많은 비트코인을 확보하고 있습니다. (예를들어, 테슬라, 블랙록, 넥슨, 마이크로스트레티지, 코인베이스 등이 있습니다.) 
 
더 자세한 내용을 이해하고 싶다면 아래 블록체인 구조를 읽어보시면 조금 더 알 수 있을 거예요. 
 

블록체인 구조 

마침 블록체인에 대해 다시 한번 설명해 주는 코미놈(유튜버) 다시 한번 감사합니다. 계속 설명 이어서 해볼게요. 
 
우리는 금융 거래든 다른 거래든 종이에 서류 장부를 쓰잖아요. 블록체인 세계에서는 그 종이 한 장을 블록 한 개라고 친다고 해요. 조금 전 말했던 사토시 나카모토가 만든 그 블록이요. 그 블록에도 한 장의 장부에 적힌 여러 가지 거래 내역이 다 포함되어 있을 수 있다고 합니다. 
 
이 블록 하나가 (많은) 금융 내역을 담고 있다고 치고, 블록이 2개도 될 수 있고 3개도 될 수 있잖아요. 그럼 그것을 체인으로 연결한 것이 바로 블록체인입니다. 시간의 순서대로 연결되어 있다고 해요. 근데 막 다 금융 내역이 종이조각처럼 모두가 볼 수 있는 것이 아닌 암호화되어 있다고 해요.
 
그리고 체인으로 연결됐다고 했죠. 그 체인을 풀기가 어려운 가봅니다. 그 체인을 풀려면 엄청 어려운 암호를 풀어야 하나 봐요. 수학문제보다 더 어려운 암호. 그리고 이 암호를 푸는 과정을 "작업증명 (Proof-of-Work)"이라고 한다고 해요. (조금 있다가 작업증명은 다시 설명해 볼게요) 
 
한 마디로 정체불명의 사카시 나카모토는 금융기관 시스템에 화가 나서 모든 사람이 앞으로 중개자 (금융기관)에게 의존하지 않아도 되는 시스템이자 기술을 찾으려고 블록체인을 만든 것 같습니다.  
 
블록체인 안에는 뭐가 들어있을까요? (어제 얘기한 레이어로 구성이 되어있는데 그 안에 무슨 내용이 들어있을까요?)
1) 이전 블록의 Hash 값이 있습니다. (연결된 블록들의 이전 블록에서 받은 해시값인 듯해요) 2) 거래 내역들 3) 임시값 (Nounce)이 있습니다.  
 
방금 말한 이 임시값을 바꿔가면서 누군가가 결국 결과값을 찾아내고, 그 결과값은 다음 블록의 이전 해쉬(hash) 값으로 기록됩니다. 이렇게 블록으로 이어질 때 결과값을 가져와서 다음블록의 해쉬값으로 넣고 블록을 계속 연결하며 모든 블록이 하나로 연결되는 구조라고 합니다. 이것을 바로 블록체인이라고 부릅니다.  
 
 
(이전블록의) 해쉬값
임시값 
결과값
|
(이전블록의) 해쉬값
임시값 
결과값 
|
(이전블록의) 해쉬값
임시값
결과값 
 

 
블록체인 네트워크에 연결된 모든 사람들은 동일한 거래내역을 접수. 이를 모아 블록을 만들어 이전 블록과 연결하기 위한 특정 해시값을 찾아냅니다. 누군가 제대로 된 해시값을 찾으면 다른 참여자들에게 이 값을 알리고 블록이 생성. 또 다른 블록을 연결을 위해 참여자들은 새로운 작업증명을 합니다. 이 과정 무한 반복! 
 
정체불명 사토시 나카모토는 블록체인을 유지하기 위해 바로 작업증명을 하고 암호를 푼 참여자에게 보상을 주기로 했기 때문입니다. 누군가 암호를 풀면 블록이 생성되고 또 연결되고 블록체인이 유지가 된다. 그럼 보상으로 무엇을 주냐? 최초의 암호화폐인 비트코인 준다. 암호를 찾아낸 사람이 보상으로 비트코인을 받기 때문에 우리는 비트코인을 암호화폐라고도 부른다. 
 
그래서 사람들은 암호를 풀어서 비트코인을 상으로 받으려고 하는 것이다. 암호를 풀고, 블록을 연결하는 작업을 마이닝(mining), 또는 채굴이라고 하며, 그 암호를 푸는 사람들을 채굴자라고 합니다. 
 

작업증명 (Proof of Work: POW) 

결론부터 쉽게 말하면 엄청나게 어려운 블록체인 암호를 찾아내는 것이 작업증명입니다. 암호화 푸는 법, 즉 작업증명에 대해서 조금 더 설명을 해볼게요. 
 
내가 가진 장부 한 장을 복사해서, 3명에게 나눠줬어요. 그 장부에는 나에 대한 많은 정보가 있고요. 거래내역부터 시작해서 모든 정보가 있다는 말입니다. 근데 제 장부를 받은 사람은 저를 어떻게 믿고 그 정보가 맞는지 알 수 있을까요? 제가 3명에게 모두 다른 정보를 줬다면 어떨까요? 이걸 금융기관 (중간자) 없이 어떻게 증명할 수 있나요?
 
여기서 바로 위에서 말한 작업증명 (Proof of Work)가 필요합니다. 작업증명 (proof of work)은 블록체인의 핵심기술이기도 한 "합의알고리즘"이라고도 부릅니다. 사토시의 비트코인 논문에서 말하는 것은 이 작업증명이라는 것을 통해 제 3자 (금융기관) 없이도 신뢰할 수 있는 거래가 가능하다고 말합니다. 
 
블록체인 안에 임시값 (Nounce)이 들어있다고 우리는 알고 있습니다. 이 임시값을 변경해 가며 암호화 기술의 일종인 해시함수를 통해 프로그래밍화 되어 블록에 저장되어 있는 목표값보다 작거나 같은 결과값 (64개 16진수로 구성되어 있음)을 찾아야 하는데요. 이것을 바로 작업증명이라고 합니다. 목표값이 2024라고 하면 결과값은 2024보다 작거나 같은 값 이어야 해요. 
 
블록들이 암호화어 체인으로 연결되어 있는 것을 블록체인이라고 했는데요. 블록을 연결하기 위해서 체인이 필요하고요. 이걸 어려운 암호로 잠가놔야 해요. 그리고 블록을 열어서 내용을 보고 싶으면 암호를 풀어야 하고요.