안녕하세요. 어미새입니다.
이전 포스팅에서는 볼록의 식별자 역할을 수행하는 블록해시 정보에 대하여 상세하게 알아봤습니다.
저는 블록체인 기술에 대한 포스팅을 연속적으로 하고 있기 때문에 이전에 게시한 포스팅을 혹시 못보신 분들은 처음부터 정독하는 것을 추천드립니다.
#1 - 합의 문제(Consensus Problem), 합의 알고리즘
#2 - 해시함수란 무엇인가?
#3 - 블록체인 기술 및 블록에 관한 정의
#4 - 머클트리(Merkle Tree) 및 머클루트(Merkle Root)에 관한 정의
#5 - 블록해시에 관한 정의
Remind
자 그럼 본격적으로 채굴에 대한 설명을하기 앞서 이전에 설명했던 블록헤더의 구성요소는 어떻게 구성되며 각 구성요소가 어떠한 역할을 수행했는지 다시 한번만 점검하고 넘어가겠습니다.
'블록'은 크게 헤더와 바디정보로 구성되어있다고 설명해 드렸습니다. 헤더 정보에 대해서 다시 살펴보겠습니다.
버전 : 해당 블록의 버전 정보입니다.
이전 블록 해시 : 이전의 블록 주소 값을 가르키는 요소입니다. (이 요소 정보로 인하여 블록이 체인형태로 연결되어있습니다.)
머클 루트 : 트랜잭션의 무결성 및 블로 해시의 무결성을 검증하는 역할을 수행합니다.
타임 : 해당 블록의 대략적인 생성 시간을 의미합니다.
bits : 난이도 해시 목표 값을 의미하는 지표입니다.
nonce : 블록을 만드는 과정에서 해시 값을 구할 때 필요한 재료 역할을 수행합니다.
블록헤더를 구성하는 구성요소 중 심도있게 다루지 않은 항목은 bits와 nonce 정보입니다. 이 정보에 대해서 설명하기 위해서는 우선 채굴에 대한 개념이 필요합니다. 그렇기 때문에 이번 포스팅에서는 채굴이 어떤 의미이고, 어떻게 이루어지는지에 대한 개념 정리만 하겠습니다.
개념만 잡자! 그래서 채굴이 뭔대?
가상화폐 열풍이 불면서 '채굴'에 대한 이야기를 많이 접하셨을거라고 생각합니다. 비트코인에서 채굴에 대한 개념은 아주 중요합니다. 그렇다면 이러한 '채굴'은 도대체 무엇일까요? 저는 공부를 하기 전에 아래와 같은 의문점이 생겼습니다.
- 비트코인은 언제 누가 어떻게 발행할까요?
- 블록체인 기술은 분산되고 독립적인 공통장부 관리기술입니다. 그렇다면 누가 거래기록을 기록할까요?
- 블록은 크게 헤더와 바디정보로 구성됩니다. 블록의 바디정보에는 다수의 거래정보가 담겨져있습니다. 그렇다면 이 블록은 누가 생성할까요?
여러분들은 이 의문에 대한 명확한 답을 가지고 있으신가요?
우선 자세한 설명을하기 앞서 '채굴'에 대한 개념을 이해하기에 아주 좋은 동영상 한편을 찾아왔습니다. 1분55초 분량의 아주 짧은 영상이니 꼭 시청해주셨으면 좋겠습니다. 해당 영상 정보는 영어로 설명하고 있기 때문에 유튜브 영상 하단에 있는 자막을 설정하시고 보시면 보기 더 편하실겁니다!(한글 자막을 지원합니다!)
채굴이란 무엇인가?
위의 영상을 보시고 어느정도 채굴에 대한 개념 정리가 되셨나요? 위의 영상의 내용 중 채굴에 대한 설명을 조금 정리해보면 아래와 같습니다.
- 비트코인에서 채굴자가 수학문제를 푸는 소프트웨어를 사용하며, 문제를 푼 댓가로 코인을 채굴자에게 지급합니다.
- 수학 문제가 얼마나 빨리 풀리는지에 따라서 비트코인 네트워크는 수학 문제의 난이도를 조절합니다.
- 비트코인 거래에 대한 검증이 필요하기 때문에 더 많은 채굴자가 있을수록 더 안전한 네트워크를 의미합니다.
채굴(마이닝)이 왜 필요했을까요?
비트코인을 통한 거래가 발생하고, 발생된 거래내역을 투명하게 네트워크를 통해 공유되어야합니다. 그렇다면 누군가는 이 거래 내역을 기록하고 기록된 거래내역을 블록에 담아 사용자들에게 전파하는 역할을 수행해야 합니다. 그리고 추가적으로 전파된 블록이 진짜인지 거짓인지에 대한 검증이 필요합니다.
이러한 작업들을 하기 위해서는 당연히 네트워크 및 전력자원이 낭비됩니다. 즉 아무런 보상없이 이러한 일을 수행하기엔 무리가 아닐까요? 이러한 작업들을 수행한 댓가의 보상으로 비트코인을 지급하는겁니다. 그리고 이러한 보상을 우리는 '채굴'이라고 표현하고 있습니다.
다시 한번 정리해보면 아래와 같습니다.
- '블록'을 생성해내는 과정에 따른 보상을 '채굴'이라고 표현한다.
- '블록'은 10분에 한번씩 생성되기 때문에 '블록'을 생성하는 시간에 따라 난이도라는 개념이 필요하다.
- 생성된 '블록'이 진짜인지 가짜인지에 대한 검증이 필요하다.
이제 어느 정도 보상에 대한 개념인 '채굴'에 대해서 이해가 되셨나요? 여기까지 설명을 들으셨다면 아래와 같은 의문이 생깁니다.
- '블록'은 수학문제를 풀어서 생성이된다. 그렇다면 수학 문제는 도대체 무엇이고 어떻게 풀어야하는가?
- 생성된 '블록'이 진짜인지 가짜인지 누가 어떻게 판단하는가?
다음 포스팅에서 위의 질문에 대한 답과 더불어 본격적으로 블록체인 기술에 대해서 파헤쳐보는 포스팅을 이어가도록 하겠습니다.
이상 긴글 읽어주셔서 감사합니다!
[참고자료]
https://organicmedialab.com/2014/01/11/virtuous-cycle-of-bitcoin-mining/
https://brunch.co.kr/@bumgeunsong/41
http://www.leejungmin.org/post/2017/05/30/mastering-bitcoin/