6 분 소요

채굴


채굴이란, 블록체인 네트워크에 노드로 트랜잭션을 검증하여 분산원장을 기록하고, 보상으로 암호화폐를 얻는 것을 말한다. 여기서 보상으로 암호화폐를 얻는 노드를 채굴자라고 하며, 토큰 이코노미와 크립토 이코노미에 의해 이러한 구조가 형성된다.

채굴자가 하는 일

비트코인 채굴


  • 네트워크 동기화 : 새 노드가 비트코인 네트워크에 참여하기 위해 다른 노드에게 과거의 블록들을 요청해 블록체인을 다운로드한다.
  • 트랜잭션 검증 : 새로운 트랜잭션을 수신한 노드는 반드시 해당 트랜잭션이 올바른 트랜잭션인지 검증한다.
    1. 원본 데이터를 자신의 개인키로 암호화를 진행하여 디지털 서명을 진행
    2. 원본 데이터와 디지털 서명된 데이터를 노드로 전파
    3. 트랜잭션을 받은 노드는 해당 데이터에 대한 검증(feat. 디지털 서명)
    4. 데이터 무결성을 검증 후,
    5. 수신받은 트랜잭션이 진짜 거래로 판단될 경우, 블록체인에 해당 트랜잭션을 업데이트하고 블록체인 네트워크에 연결된 노드들에게 해당 트랜잭션을 다시 전파
  • 블록 유효성 검사 : 채굴자와 풀 노드는 특정 규칙에 따라 수신한 블록을 평가하여 유효성 검사를 진행한다.
  • 새로운 블록 생성 : 채굴자는 네트워크에 브로드캐스팅된 트랜잭션의 유효성을 검사한다.
  • 작업 증명(PoW) 수행 : 채굴 과정의 핵심으로 채굴자가 해시 퍼즐을 풀어 유효한 블록을 찾는다.
    • 블록체인 헤더에 있는 논스를 사용하여 채굴자는 논스값을 계속 바꿔가며 결과 해시값이 미리 결정된 목표값보다 작을 때까지 반복 계산
  • 보상 수령 : 해시 퍼즐의 해를 구한 노드는 즉시 결과를 브로드캐스팅하고, 다른 노드들은 그 결과를 검증하여 그 블록을 승인한다.

이더리움 채굴


채굴자들은 채굴을 위해 해시 연산에 특화된 ASIC칩을 개발하였고, 다수의 채굴자들이 ASIC를 사용하면서 해시 영향력이 중앙집중화되고 있다. 따라서 이를 방지하고, 경량 클라이언트에서도 블록을 검증할 수 있도록 이더리움은 이더리움 합의 엔진인 Ethash를 개발했다.

Ethash는 컴퓨터 메모리를 읽은 후, 이를 넌스와 계산하는 방식인데, 이러한 점은 메모리를 읽는 속도가 해싱 속도보다 느리기 때문에 해시 연산 능력이 크게 의미가 없게 한다. 따라서 Ethash는 메모리를 생성하기 위해 DAG 알고리즘을 사용한다.

DAG

  • 이더리움 노드는 먼저 캐시 영역을 확보하기 위해 시드 해시를 생성한다.
  • 여기서 시드 해시로 생성된 캐시 데이터 집합을 DAG 파일이라고 한다.
  • 현재 30,000블록(에포크) 주기로 DAG 파일을 전체를 재생성하게 되어 있다.

믹스해시

  • 믹스해시는 작업 증명 계산을 할 때 넌스를 이용하여 생성되는 중간 단계의 128바이트 해시값이다.
  • 원래의 작업 증명 계산은 부정확하거나 악의적인 넌스값을 갖는 블록들에 의해 작업 증명 계산 요청이 올 경우, 이를 계산할 때 디도스와 같은 부하를 받을 수 있다.
  • 그러나 믹스해시를 통해 중간 단계의 계산을 진행함으로써 부하를 방지하고 또한 작업 증명 계산이 경량화 됨으로써 경량 클라이언트에서도 채굴이 가능하다.

Ethash Flow


Flow-diagram-of-the-Ethash-algorithm-used-by-Ethereum-with-a-DAG-size-of-237-GB-of-late

  1. 블록의 헤더와 넌스를 암호 해시하여 최초 Mix 0를 생성한다.
  2. Mix 0으로 DAG로부터 Page 0을 추출한다.
  3. 추출된 DAG Page와 Mix 0로 Mixing 함수를 사용하여 다음번 Mix를 생성한다.
  4. 2-3과정을 64번 반복하여 Mix 64를 생성한다.
  5. Mix 64를 후처리 함수를 통해 Mix Digest(32byte)로 구성한다.
  6. Mix Digest와 미리 정의된 32byte 채굴 목표값과 비교한다.
    • 만약 Mix Digest가 목표보다 작거나 같다면 현재 넌스는 성공한 것으로, 블록에 업데이트를 한 후, 브로드캐스팅한다.
    • 만약 Mix Digest 목표보다 크다면 해당 넌스값을 증가하거나 임의의 넌스값을 정해 다시 진행한다.
      • 목표 : 2^256/난이도
        • 난이도가 낮아질수록 목표값이 커지고 넌스 찾기 쉬워짐(블록 생성 주기 감소)
        • 난이도가 높아질수록 목표값이 작아지고 넌스 찾기 어려워짐(블록 생성 주기 증가)
    • Mix Digest는 다음 블록의 연결된 부모 블록의 해시값의 일부로 사용되기 때문에 해당 블록이 정당한 것인지 판단하는 값이기도 하다.

보상


위 보상 수령 단계와 같이 블록을 승인 시 채굴자는 비트코인과 관련된 트랜잭션 수수료를 보상으로 받는다. 비트코인의 블록 생성 주기가 10분이기 때문에 더 많은 채굴자가 등장하고, 빨리 채굴할수록 채굴 난이도가 상승한다. 또한 비트코인의 총 공급량 제한으로 인해 시간이 지날수록 보상에도 변화가 생긴다.(ex. 비트코인 반감기])

거래 수수료

위와 같이 보상에 변화가 생기면 크립토 이코노미가 유지될 수 있을까? 답은 거래 수수료에 있다. 거래 수수료란 채굴자들이 특정 거래 기록들을 블록에 포함해서 블록체인에 추가할 수 있도록 제공되는 인센티브이다. 이러한 거래 수수료는

  • 트랜잭션을 승인하는 데 도움을 제공
  • 스팸 공격으로부터 네트워크를 보호

와 같은 목적을 달성함으로써 채굴자에게 보상으로 주어진다. 따라서 채굴자에게는 거래 수수료 또한, 보상으로 포함되기 때문에 수수료가 높을 수록 트랜잭션의 Confirm이 빠르다.

채굴 풀(Mining Pool)

채굴 풀은 채굴하는 채굴자들이 모여서 만들어진 채굴자 조합이다.

채굴 풀은 채굴자들이 해시파워를 높여 채굴 경쟁에서 우위를 점하기 위해 나타났으며, 비트코인 채굴 풀 및 채굴 풀별 HashRate는 BTC.com에서 확인할 수 있다.

채굴 풀의 위험성 : 51% 공격


51% 공격이란 블록체인의 전체 노드 중 50%를 초과하는 해시파워를 확보한 뒤, 거래 정보를 조작함으로서 이익을 얻으려는 해킹 공격을 뜻한다. 만약 특정 채굴 풀이 비트코인 네트워크의 해시율을 51%이상 생성해 네트워크의 51%이상을 통제하는 경우, 채굴의 중앙 집중화가 발생하며, 공격자는 이중 지불 공격 및 다른 버전의 거래 내역을 강요할 수 있게 된다.

새로운 채굴 풀 모델


커스터디 서비스 형태의 채굴 풀

본래 커스터디란, 보호, 관리라는 뜻을 가진 단어로 금융 거래에 있어 수탁업무를 의미하며, 수탁업무란 다른 사람의 자산 관리를 위탁받는 것을 말한다.

PoS의 경우, 특정 노드가 자신이 보유하고 있는 가상화폐 중 일정 지분량을 고정하는 것인 스테이킹을 통해 운영하게 되는데, PoS 특성상, 지분을 많이 가지고 있을 수록 채굴에 유리하다. 따라서 커스터디 서비스 형태의 채굴 풀의 경우, 돈이 적은 사람도 PoS 채굴 풀에 자신의 자산을 예치하고 예치 기간 동안 일정 수수료를 제외하고 채굴 보상을 받을 수 있게 된다.

다른 형태로는 DPoS를 사용하는 채굴 풀인데, 이는 사용자가 시스템에 스테이킹을 해두고 투표를 통해 채굴자를 선정하는 시스템이다.

다양한 채굴 방법

작업 증명(PoW)


PoW는 유효한 블록을 만드는 데 충분한 계산 자원을 소모했다는 작업의 증명으로, 메인체인을 선택하는 데 있어 가장 긴 체인을 채택하는 알고리즘인 고스트 프로토콜을 사용하여 블록이 결정된다.

고스트 프로토콜이란 어느 블록이 가장 큰 전체 작업증명을 가졌는지 계산하면서, 그 블록의 부모 블록과 조상뿐만 아니라, 그 블록의 고아 자손까지도 체인에 추가한다. 이를 통해 네트워크 보안 손실 문제를 해결한다.

채굴 알고리즘

  1. 비트코인 네트워크로부터 이전 블록의 헤더를 얻는다.
  2. 네트워크 상에서의 트랜잭션 브로드캐스트 세트를 제안할 블록에 넣어서 합친다.
  3. 이전 블록 헤더 값의 Double 해시를 계산하고 논스와 새롭게 제안된 블록을 SHA256 알고리즘을 사용해 결합한다.
  4. 결과 해시값이 현재의 타겟 난이도보다 낮은지 확인하고, 낮으면 발견된 블록은 네트워크에 브로드캐스트되고 보상을 받는다.
  5. 결과 해시값이 현재의 난이도보다 낮다면 위 과정을 반복하며 논스값을 증가시킨다.

장, 단점

  • 장점
    • 작업 증명에서 51%의 컴퓨팅 파워를 확보하려면 천문학적인 비용이 발생하기 때문에 높은 보안성을 갖는다.
  • 단점
    • 채굴 난이도가 높아지면서(블록 생성 주기 10분에 맞춰 난이도 상승), 에너지 낭비가 심해졌다.
    • 또한, 채굴 풀의 중앙집중화로 탈중앙성을 잃을 수 있다.

대표 코인

  • 비트코인, 이더리움(PoS로 전환 예정)

지분 증명(PoS)


PoS는 해당 암호화폐를 보유하고 있는 지분율에 비례하여 의사결정 권한을 주는 합의 알고리즘이다. 즉 스테이킹(Stacking)한 자산을 통해 블록을 생성하게 되며, 네트워크 참여자 모두가 지분에 비례해서 블록을 검증할 기회를 갖게 된다. 이더리움은 PoW에서 PoS로 전환 예정이다.

장, 단점

  • 장점
    • 작업 증명과 다르게 큰 에너지를 소모해야 할 프로세스가 없어 환경친화적인 시스템이다.
    • PoW의 문제점인 채굴자들과 암호화폐 보유자들의 이해관계 일치와 해시율 임대를 암호화폐 보유자가 곧 채굴자 역할을 수행하게 함으로써 해결할 수 있다.
    • 현재 PoW의 소수의 풀에 해시 파워가 집중되는 현상으로 인한 중앙화를 방지할 수 있다.
  • 단점
    • 체인 선택에 대한 해결책만 존재한다.
    • 지분에 따른 불공평한 경제 모델이 구축될 수 있다.
    • Nothing at Stake Problem : 위험에 노출되지 않는 문제로, 블록 작성자가 네트워크 분기가 될 때 위험에 처하지 않는다.

이더리움의 PoW에서 PoS 전환 (Casper Project)

캐스퍼 프로젝트

대표 코인

  • 네오, 제트캐시, 퀀텀, 에이다, 피어코인, 코스모스

위임지분증명(DPoS)


DPoS는 해당 암호화폐를 보유하고 있는 지분율에 비례하여 자신의 대표자를 선정하고, 이 대표자들끼리 합의하여 의사결정을 내리는 합의 알고리즘이다. 따라서 PoS와 달리 누구에게나 대표자가 될 기회가 주어지지 않고 블록을 확정하기 위해서 2/3이상의 승인이 필요하다. 또한 대표자는 일정 시간 이내에 블록 셋업에 참여해야 유지된다.

장, 단점

  • 장점
    • 소규모 참여자도 이득을 볼 수 있다.
    • 검증 참여 노드가 적기 때문에 거래속도가 빠르다.
  • 단점
    • 대표자들의 수가 제한되어 검증시 탈중앙화의 이점이 존재하지 않아, 보안에 취약하다.
    • 대표자를 선출하는 과정에서 대표자에 대한 정보를 밝혀야 하기 때문에 익명성에 대한 이점이 존재하지 않아, 보안에 취약하다.
    • 대표자가 늘어날 경우, 검증 참여 노드가 늘어나기 때문에 거래속도에 대한 이점이 줄어든다.

대표 코인

  • 이오스, 스팀, 비트셰어, 엘프, 테조스

거버넌스 블록체인의 채굴 - Klaytn


Klaytn에는 컨센서스 노드(CN), 프록시 노드(PN) 및 엔드포인트 노드(EN)라는 세 가지 유형의 노드가 존재하며, 컨센서스 노드는 CCO(Core Cell Operators)에 의해 관리되며 블록 생성을 담당한다.

klaytn

IBFT(Istanbul Byzantine Fault Tolerance)

  • 즉각적인 최종성을 보장하는 권한 증명 블록체인 합의 알고리즘
  • PBFT는 유효성 검사기 집합은 정적이지만 IBFT는 동적 유효성 검사기 집합이 존재
  • 작동 방식(Klaytn 합의알고리즘)
    • 시작하려면 노드 그룹이 선택되어 유효성 검사기 풀을 구성한다. 이 노드는 제안된 블록이 체인에 추가하기에 적합한지 여부를 결정하는 역할을 한다.
    • 이 검증자 노드 중 하나가 제안자로 임의로 선택된다.
    • 검증자 풀에서 메시지를 받은 이 단일 제안자는 체인에 무엇을 추가할지 결정한다. 이것은 다른 검증자에게 제안된 블록으로 제시된다.
    • 대다수의 검증인 블록이 유효하다고 간주하는 경우에만 원장이 추가된다.
    • 각 합의 라운드가 끝나면 검증자가 새로운 제안자를 선택하고 프로세스가 반복된다.