채굴이란?
비트코인을 얻는 방법에는 대체로 세 가지가 있다. 즉 이를 거래소에서 구입하는 것과 상품 및 서비스를 제공한 대가로 받는 것과 새로운 비트코인을 채굴하는 방법이다. 채굴(mining)은 블록체인이라고 불리는 비트코인의 공공 원장에 거래 기록을 추가하는 과정을 가리킨다. 채굴의 존재 이유는 모든 거래의 정확성을 확인하고 네트워크 상에 있는 모든 참여자들이 이 원장을 열람할 수 있도록 하려는 것이다. 이는 또한 합당한 비트코인 거래와 다른 곳에서 쓴 돈을 다시 지출(re=spending)하는 것을 구분하는 데도 사용된다.
채굴 — 컴퓨터 처리능력(processing power)을 사용하여 수행 기록을 남기는 과정
블록체인 — 모든 비트코인 거래가 기록되어 있는 분산형 공공원장
이러한 네트워크를 블록체인이라고 부르는 이유는 이는 그야 말로 블록이 체인처럼 연결되어 있기 때문이며 이는 일정한 기간 동안에 이뤄진 모든 거래의 리스트를 가리킨다. 거래의 블록이 생성될 경우 채굴자들(miners)은 이를 기록에 남기게 된다. 이들은 이 블록 정보에 복잡한 수학적 공식을 적용하고 나중에 이를 무작위적으로 보이는 문자와 숫자의 순서인 '해시(hash)로 빠꾼다.
해시 — 주어진 데이터에 근거하여 생성되는 정해진 길이의 독특한 무작위 문자열
해시는 거래 블록에 대한 정보로만 구성되지는 않고 다른 데이터도 포함된다. 무엇보다 중요한 것은 블록체인에 저장된 과거 블록의 해시도 포함된다는 점이다.
거래 블록 같은 데이터 집단으로부터 해시를 생성하는 것은 그렇게 어려운 일은 아니지만 해시 문자열을 보고 어떤 데이터가 사용되었는지를 알아내는 것은 거의 불가능에 가깝다. 더구나 모든 해시는 독특하며 비트코인 블록에서 단 한 문자만 변경시켜도 해시 문자열은 모두 바뀌게 된다.
위의 예에서 알 수 있다시피 인풋으로 얼마나 많은 데이터가 사용되었든 관계없이 해시는 항상 길이가 같다.
이 같은 특성으로 인해서 해시는 마지 디지털 밀랍봉인과 같은 역할을 한다. 누군가가 거래 한 블록을 건드렸을 경우 이 해시는 즉각적으로 변경되며 블록체인 상에 있는 다른 모든 해시 순서도 바뀌게 된다. 따라서 블록체인 네트워크 내에서 사기를 시도할 경우 이는 아주 쉽게 포착될 수 있다.
보상(rewards)
한 마디로 채굴자들은 모든 거래를 확인하고 그럼으로써 모든 거래가 정상적임을 확인해주는 일을 함으로써 비트코인 커뮤니티에 공헌을 하는 것이다. 새로운 거래가 '봉인(seal-off)'될 경우(즉 채굴자가 정확한 해시 순서를 성공적으로 만들어냈을 경우) 채굴자들은 보상을 받게 된다.
2017년 10월 현재 채굴 보상은 블록당 12.5 BTC로 정해져 있으며 이 액수는 21만 블록이 지날 때마다 절반으로 줄어들게 되어 있다. 전체적인 비트코인 발행 수는 한정되어 있고 따라서 더 많은 코인이 채굴될수록 그 가치는 더욱 높아질 수밖에 없다. 따라서 블록당 비트코인의 수는 불가피하게 줄어들 수밖에 없지만 채굴자에게 주어지는 보상 가치는 전과 동일하거나 더 높아지게 된다.
이론적으로는 다양한 종류의 정보로부터 해시를 생산하는 것은 아주 쉬우며 컴퓨터를 통해 얼마든지 가능한 일이다. 그런 까닭에 사용자들이 매초마다 수천 개의 거래 블록으로부터 해시를 만들어내고 몇 분마다 여러 개의 BTC를 가져가는 일이 없도록 하기 위해 비트코인 네트워크는 이 프로세스를 어렵게 만들어야 했던 것이다.
복잡성
이는 소위 '작업증명(PoW)'을 통해서 이루어진다. 이는 서비스 요청자로부터 일정한 작업을 요청하는 시스템을 의미하며 많은 경우 컴퓨터의 프로세싱 시간을 가리킨다. 작업증명을 만들어내는 일은 그 가능성이 낮은 무작위적 과정으로서 유효한 작업증명을 생성하려면 상당한 정도의 시행착오를 겪어야 한다. 비트코인에 있어서 해시는 그러한 작업증명의 역할을 한다.
작업증명 — 사기행위를 방지하기 위해 서비스 요청자가 요구하는 일을 처리하는 과정을 의미하는 개념으로 보통 컴퓨터의 프로세싱 시간을 가리킨다.
채굴활동을 좀더 어렵게 만들기 위해 '비트코인 채굴난이도(Bitcoin Difficulty)'라는 것이 실행되기도 한다. 이는 새로운 블록을 찾아내는 가장 쉬운 채굴 방법과 비교해서 얼마나 어려운지를 측정하는 기준이다.
비트코인 채굴 난이도 — 정확한 해시를 생성하는데 얼마나 어려운지를 측정하는 기준
이 측정 기준은 매번 2016 블록을 처리할 때마다 다시 계산이 된다. 이러한 방법을 도입한 이유는 한 블록을 채굴하는데 소요되는 시간을 약 10분 정도로 일정하게 유지하기 위해서이다. 채굴꾼들이 네트워크에 점점 더 많이 참여함에 따라 블록 생성률은 불가피하게 높아질 수밖에 없다. 그래서 난이도가 다시 계산된 다음에 그 난이도는 블록 생성률을 다시 떨어뜨리기 위해 올라가야 한다. 사기성이 농후한 채굴꾼이 만들어낸 일정한 난이도 수준에 미치지 못하는 블록은 네트워크 상의 다른 참여자들에 의해 거부되고 그럼으로써 아무런 가치를 갖지 못하게 된다.
따라서 이러한 과정은 상당한 정도의 노력이 필요하게 되며 이 모든 과정을 통해서 새로운 화폐가 서서히 생성되는 것이다. 새로운 코인이 발행되는 속도는 금 같은 1차 상품이 채굴되어 생산되는 속도와 비슷하며 그런 까닭에 이 과정을 채굴이라고 부르는 것이다.