본문 바로가기
Blockchain

[Blockchain] 채굴(Mining)이란?

by 개발자 염상진 2022. 7. 4.

블록체인에서 채굴(Mining)이란 블록체인 네트워크 상에서 발생하는 트랜잭션들을 검증하고, 분산원장에 기록하는 행위를 통해 보상으로 암호화폐를 얻는 과정입니다. 땅에 묻혀 있는 광물을 캐는 행위와 유사하다고 붙여진 이름입니다. 채굴의 핵심은 블록체인에 연결될 새로운 블록을 생성하는 것입니다.

채굴은 복잡한 연산을 거쳐 진행됩니다. 암호화폐 중 가장 유명한 비트코인의 경우 10분에 한번씩 일정량의 블록이 생성되게 됩니다. 보상은 비트코인 채굴에 참여한 채굴 노드들 중 해시 퍼즐을 푼 노드에게 지급됩니다. 즉, 채굴은 특정 해시 퍼즐을 맞춰가는 과정입니다. 

 

 

해시 퍼즐을 풀기 위해서는 해시 파워(해시 레이트, CPU 파워)가 필요합니다. 채굴 노드들이 비트코인 네트워크에서 자신의 컴퓨팅 파워를 제공하면서 새로운 블록을 검증하고 생성하는 이유는 비트코인이라는 보상이 주어지기 때문입니다. 블록체인 플랫폼들은 적절한 채굴이 이뤄질 수 있도록 토큰 이코노미 + 크립토 이코노미를 구성하고 있습니다. 

 

 

채굴노드는 어떤 일을 할까?

 

블록체인 플랫폼들은 토큰 이코노미+크립토 이코노미를 통해 보상을 얻게 됩니다. 채굴 노드들의 채굴 행위는 결과적으로 블록체인 네트워크가 정상적으로 작동되게 합니다. 

 

비트코인 채굴노드의 역할

 

① 네트워크 동기화

새로운 노드가 블록체인 네트워크에 참여하면 채굴노드들은 다른 노드에게 과거 블록을 요청하고 블록체인을 다운로드하면서 네트워크를 동기화 하게 됩니다.

② 트랜잭션 검증

새로운 트랜잭션이 발생하면 브로드캐스팅 되고, 새로운 트랜잭션을 수신한 노드들은 해당 트랜잭션이 올바른 거래인지 검증하게 됩니다. 비트코인에서 트랜잭션을 검증하는 과정은 다음과 같습니다.

  1. 거래 당사자는 원본 데이터를 본인의 개인키로 암호화를 진행하는 디지털 서명을 합니다.
  2. 원본 데이터 + 디지털 서명된 데이터를 브로드 캐스팅
  3. 트랜잭션을 수신한 노드들은 트랜잭션을 송신한 노드의 공개키를 가지고 복호화를 진행해 검증을 합니다.
  4. 원본데이터와 복호화된 데이터를 비교해 데이터 무결성을 검증합니다.
  5. 해당 데이터가 진짜 데이터로 검증되면 블록체인에 트랜잭션을 올리고 블록체인에 연결된 노드들에게 다시 브로드캐스팅.

 

 

③ 블록 유효성 검사

채굴노드 + 풀 노드는 특정 규칙에 의거해 수신한 블록을 평가하고 유효성 검사를 진행합니다.

④ 새로운 블록 생성

채굴노드는 블록체인 네트워크에 브로드캐스팅된 트랜잭션의 유효성을 검사합니다.

⑤ 작업 증명(PoW) 수행

채굴 노드는 해시 퍼즐을 풉니다. 블록 헤더에는 6가지 값이 존재하는데, 이 중 가변성을 가진 논스(Nounce) 값을 바꿔가며 해시값이 목표값 보다 작은 값이 나올 때 까지 반복합니다. 블록헤더의 논스(Nounce)값은 계산되는 결과 해시값이 목표 해시값보다 작게 나오게 하는 용도로 사용됩니다. 반면 이더리움의 트랜잭션 논스(Nounce) 값은 발신 주소의 컨텍스 안에서만 의미를 가지며, 해당 주소에서 발생한 트랜잭션 건수를 세어 동적으로 계산됩니다. 

⑥ 보상 수령

해시 퍼즐을 맞춘 채굴 노드는 결과를 즉시 브로드캐스팅합니다. 다른 노드들은 결과를 검증하고 블록을 승인하게 됩니다. 만약 블록이 승인되면 비트코인 트랜잭션 수수료를 보상으로 받게 됩니다. 비트코인의 경우 210,000 블록이 생성될 때 마다 보상이 반으로 줄어들게 됩니다. 

 

비트코인은 해시 퍼즐의 정답을 구하는 시간이 10분 정도 소요되도록 알고리즘화 되어 있습니다. 따라서 많은 채굴자가 문제를 풀려고 달려들수록 채굴 난이도는 상승하게 됩니다. 작업 증명에 대한 보상인 비트코인 총 공급량은 2100만개로 채굴이 진행될 수록 보상은 반감됩니다. 

 

이더리움 채굴 노드 역할

이더리움도 작업 증명(PoW)을 통해 블록을 생성합니다. 다만 이더리움에서는 이더해시(Ethash)라는 독립적인 작업증명 알고리즘을 사용해 블록을 생성합니다. 16진수로 구성된 32바이트 논스(Nouce)값을 바꿔가며 임의로 생성된 블록헤더를 사용합니다. 

논스를 통해 목표값보다 작은 해시 출력값을 구한 채굴 노드들은 즉시 브로드캐스팅하게 되고, 블록 생성에 대한 보상을 지급받습니다. 

 

 

트랜잭션 수수료

 

채굴 노드들은 블록 생성에 대한 보상으로 암호화폐를 지급받습니다. 비트코인의 경우 총 공급량이 2100만개로 이미 정해져 있고, 반감기가 진행되면서 채굴 보상이 점점 줄어들고 있습니다. 2009년만 해도 채굴 보상은 50 코인이었지만 현재 12.5개로 줄어든 상태입니다. 그럼 더 이상 채굴을 할 의미가 없게 될까요?

만약 채굴자들이 블록을 생성하지 않으면 새로운 트랜잭션은 블록체인 네트워크에 연결될 수 없습니다. 트랜잭션에 대한 검증도 안될 뿐더러 해커로 부터 네트워크를 안전하게 보호할 수도 없기 때문입니다. 여기서 채굴 노드들이 얻는  또다른 보상이 있습니다. 바로 트랜잭션(거래) 수수료 입니다.

트랜잭션(거래) 수수료는 채굴 노드들이 특정 거래 기록을 블록에 포함해 블록체인에 연결할 때 지급되는 보상입니다. 블록을 검증하고 체인에 연결하는데 참여한 채굴자와 검증자들은 거래 수수료를 보상받게 됩니다. 거래 수수료를 통해 보상을 받으면서 해커들이 네트워크를 해킹하는데 천문학적인 비용이 들게 만들고, 유효한 트랜잭션들이 블록체인에 연결될 수 있도록 일조합니다.

문제는 블록체인 네트워크의 사이즈가 커질 수록 거래 수수료가 비싸진다는 것입니다. 액시 인피니티가 인기를 얻으면서 이더리움 거래 수수료(가스비)가 치솟으면서 서비스가 중단되기도 했습니다. 얼마의 수수료를 지불하느냐에 따라 특정 트랜잭션이 블록에 올라가는 우선순위가 결정됩니다. 많은 수수료를 지불할 수록 빨리 블록에 올라가게 됩니다. 

 

채굴 풀(Mining Pool) 이란?

 

채굴 풀은 채굴자들이 모여 구성한 채굴 조합입니다. 채굴 풀이 생긴 이유는 블록체인 네트워크에서 보상을 지급하는 시스템과 연관있습니다. 비트코인에서 보상을 받기 위해서는 해시 퍼즐을 맞추고 거래 장부에 블록을 생성해야 합니다. 만약 A와 B라는 채굴자가 있고 A의 해시 레이트는 10, B의 해시 레이트가 20이라고 하면 무조건 B 채굴 노드가 보상을 받아갑니다. 

여기서 새로운 변수가 등장합니다. 해시 파워 15을 가진 채굴자 C가 등장해 A를 지원하는 경우 (A+C) 조합이 보상을 얻어가게 됩니다. 해시 파워의 총합이 25로 B의 해시 파워를 능가하기 때문입니다. 만약 해시 파워가 밀리면 아무리 많은 계산을 했다고 하더라도 보상을 아예 받지 못하는 경우가 발생합니다. 이 때문에 많은 채굴자들은 하나의 풀(Pool)을 만들어 조금이라도 보상을 얻어가는 방식을 채택하게 됩니다. 

채굴 풀은 보상을 받기 위해 만들어 졌지만 채굴 풀의 해시 파워가 전체 해시 파워의 51% 이상을 차지해버리면 51% 공격으로 블록체인 네트워크에 체인을 바꿔버릴 수 있는 위험을 가지고 있습니다. 이를 해결하기 위해 등장한 채굴 방식이 PoS(지분 증명) 방식입니다.

 

 

지분 증명(PoS) 방식에서는 커스터디(Custody) 서비스 형태의 채굴 풀을 사용합니다. 타인의 자산(코인)을 위임 받아 운용하는 자산 운용 서비스와 맥락을 같이 합니다. PoS에서는 스테이킹을 통해 자신이 가진 코인을 고정하고 예치 기간에 따라 일정 수익을 얻을 수 있습니다. 자산이 적은 사람은 수익이 미미하기 때문에 스테이킹을 채굴 풀에 이용해 PoS 채굴 풀에 합류하면서 채굴 보상을 나눠 가질 수 있게 됩니다.

실제로 진화된 채굴풀은 위임 지분 증병(DPoS) 형태로 등장하였고, 스테이킹을 한 사용자들은 투표를 통해 채굴 노드를 선정하는 시스템으로 발전합니다. 

 

해시율(Hash Rate), 해시 파워란?

 

해시율(Hash Rate, 해시 파워)란 초당 해시 계산 개수를 의미합니다. 비트코인이 등장한 초기만 하더라도 2.2GHz CPU를 사용하는 일반 PC로도 비트코인 채굴이 가능했습니다. 해시 퍼즐의 난이도가 그렇게 높지 않았기 때문입니다. 하지만 전문 마이닝 풀이 등장하고 GPU, FPGA을 거쳐  Application Specific Integrated Circuits(ASICs)가 등장하면서 해시율은 급격하게 상승합니다. 현재 해시율은 15,000,0000,000,000,0000,0000입니다.

 

 

 

TSP(Transaction Per Second)란 기존 블록체인 네트워크들이 해결해야할 확장성과 관련됩니다. 초당 처리 가능한 트랜잭션을 의미합니다. 7 TPS는 초당 7개의 트랜잭션이 처리되어 블록체인에 올라갈 수 있음을 의미합니다. 블록체인 네트워크가 분산화되고, 참여 노드가 증가할 수록 TPS는 낮아지고 수수료는 증가하게 됩니다. 

만약 네트워크가 중앙화되면 TPS를 올릴 수 있게 되지만, 보안성과 탈중앙화 가치가 훼손되어 버립니다. 확장성을 높이기 위해 Layer 1, Layer 2 등의 방법이 고안되고 있습니다. 이를 블록체인 트릴레마 라고 합니다. 이더리움 또한 이 문제를 해결하기 위해 PoW에서 PoS로 채굴 방식을 변경하고자 합니다. 

 

작업증명(PoW)의 가장 큰 문제점

 

작업 증명(PoW)의 핵심은 가장 많은 해시 파워를 제공한 노드가 블록 생성 권한을 얻는 것입니다. 이 때문에 경쟁적으로 해시 퍼즐을 맞추기 위해 해시 파워를 공급하고 있는데 이게 도가 지나칠 만큼 진행된게 문제입니다. 비트코인 채굴을 위해서는 엄청한 해시 파워가 필요하기 때문에 전기료가 저렴한 저개발 국가를 중심으로 채굴 공장이 들어서기 시작합니다. 

 

비트코인 채굴에 필요한 전력량은 스웨덴이 1년간 사용하는 전력량을 추월했습니다. 133 테라 와트를 사용합니다. 참고로 한국이 1년간 527 테라 와트를 사용합니다. 전기료가 저렴하게 유지되던 나라들도 전기가 부족해 수입을 해와야 하는 상황까지 발생되자 채굴장을 불법을 규정하는 나라들이 생기기 시작합니다. 

 

 

블록체인 네트워크를 유지하는 것도 중요하지만 친환경적인 네트워크가 필요하다는 공감대가 형성되면서 채굴 방식 또한 PoS, DPoS 방식으로 발전하고 있습니다. 해시 파워를 증명한 노드가 아닌 암호화폐를 많이 보유하고 있는 노드가 블록을 생성하는 방식으로 발전해야 하는 이유가 여기에 있습니다. 

 

 

 

 

[Blockchain] 프루닝(Pruning)이란?

프루닝(Pruning)이란 인공지능에서 검색 모델을 학습한 후 중요도가 낮거나 불필요한 노드를 제거하는 기술입니다. 그래프가 수많은 파라미터 값들을 가지고 있고 그래프의 엣지를 제거하는 모습

about-tech.tistory.com

 

 

[Blockchain] 블록체인 트릴레마 해결 방법?

블록체인에서 가장 유명한 네트워크는 비트코인과 이더리움입니다. 하지만 사용자들이 증가함에 따라 한계점을 명확하게 보여주고 있습니다. 바로 확장성의 문제입니다. 사용자는 늘어나는데,

about-tech.tistory.com

 

 

[Blockchain] 블록체인 트릴레마란?

블록체인은 분산원장 기술(DLT)를 이용한 거대한 데이터베이스이자 클라우드 컴퓨터입니다. 블록체인을 통해 제3의 미들맨 없이 거래가 가능하고, 미리 짜여진 스마트 컨트랙트로 합리적인 거래

about-tech.tistory.com

 

댓글