[블록체인 부트캠프] 10주차 4일 정리노트

Donghun Seol·2022년 11월 17일
0

코드스테이츠 BEB 07

목록 보기
35/39

노트정리 규칙

학습목표

블록체인에서 채굴이 무엇인지 설명할 수 있다.

  • 채굴 노드가 무슨 일을 하는지 이해할 수 있다. ✅
  • 채굴과 관련된 다양한 개념들(보상, 거래 수수료, 해시율, TPS, 채굴 풀)에 대해 이해할 수 있다. ✅

다양한 블록 생성 및 보상방안(합의 알고리즘)에 대해 설명할 수 있다.

  • 작업 증명✅, 지분 증명❓, 위임 지분 증명❓에 대해 각각 이해하고, 그 차이점을 설명할 수 있다.

학습내용

Chapter - 채굴

채굴이란?

채굴

채굴이란 블록체인 네트워크에 노드로 참여하여 트랜잭션을 검증하고 검증된 트랜잭션을 포함한 새로운 블럭을 생성하는 행위를 말한다. 비트코인의 경우 리딩제로 조건을 만족하는 해시값을 생성하기 위한 논스를 찾고, 해당 논스값을 활용해서 자신에게 보상을 주는 트랜잭션이 담긴 신규 블럭을 생성한다. 비트코인은 채굴자들의 해시파워에 맞춰 자동으로 난이도를 조정하여 약 10분을 주기로 채굴이 가능하도록 설계되어 있다.

채굴자가 하는 일

채굴자는 블록체인 네트워크 유지에 필수적이다.

채굴과정

채굴자의 노드가 비트코인 네트워크에 접속하면 다음과 같은 작업이 수행된다.

  1. 네트워크 동기화
  2. 트랜잭션 검증 : 수신한 트랜잭션을 검증한다.
    • 공개키 암호화방식으로 서명된 트랜잭션을 브로드캐스트
    • 수신한 노드는 공개키로 서명을 복호화하고 원문을 해싱한 값과 비교해서 트랜잭션의 무결성을 검증한다
    • 무결성이 검증되면 블록에 트랜잭션을 업데이트하고 다른 노드들에 트랜잭션을 다시 전파한다.
  3. 블록 유효성 검사
  4. 새로운 블록 생성
  5. 작업증명(PoW) 수행 : 논스를 브루트포스 방식으로 찾는다.
  6. 블록 보상 수령 : 논스를 찾은 노드는 결과를 브로드캐스팅하고 다른 노드들은 그 결과를 검증해서 블록을 승인한다.

보상

노드가 받는 보상은 두 가지 종류가 있다. 채굴에 대한 블록 보상과 신규블록 검증에 대한 수수료다. 논스를 찾은 노드는 블록생성에 대한 보상을 수령하고 생성된 블록을 검증한 노드는 트랜잭션 수수료를 보상으로 받는다.

트랜잭션 수수료

트랜잭션 수수료란 특정 거래기록을 블록에 포함시키고 이를 체인에 추가한 대가로 받는 인센티브다. 트랜잭션 수수료를 통해 블록체인은 체인에 대한 무제한의 스팸공격을 막을 수 있고, 유효성을 검증하는 노드에게 인센티브를 제공해 토큰 이코노미를 건강하게 유지할 수 있다.

해시율과 TPS

해시율은 네트워크상 채굴자들의 초당 해시 계산개수를 나타낸다. 현재는 전문 마이닝풀이 채굴전용 ASICs장비를 활용하여 채굴에 참여하여 개인의 채굴이 힘들정도로 해시율이 높아진 상태다.

TPS는 네트워크가 초당 처리할 수 있는 트랜잭션의 개수다. 일반적으로 원장에 참여하는 노드 수와 분산화의 정도가 커질수록 TPS는 낮아지며 수수료도 증가한다. 확장성과 높은 수준의 탈중앙화를 만드는 것은 블록체인 트릴레마로 알려져있는 문제로서 현재 블록체인이 해결해야 할 과제다.

마이닝 풀

마이닝풀이 생긴 이유

비트코인은 해당 논스값을 먼저 찾은 노드가 블록 보상을 독점하는 보상구조를 가진다. 따라서 해시파워가 높은 노드가 블록생성마다 보상을 독점할 수 있다. 이에 대항해 소규모의 해시파워를 가진 노드들은 마이닝 풀을 형성해서 블록 보상을 받을 확률을 높이고 보상을 나눠가진다.

마이닝풀의 위험성

특정노드가 50% 초과의 해시파워를 가질 경우 51% 공격으로 이중지불 공격을 성공할 수 있다. 특정 채굴풀이 네트워크 전체 해시파워의 51% 이상을 점유한 GHash.IO사건이 있었지만 개인들의 자발적인 이탈로 51% 공격은 일어나지 않았다.

새로운 마이닝풀 모델

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

PoS나 DPoS 형태의 블록체인에서 활용되는 채굴 풀 모델이다. 펀드와 비슷하다. custody service란 남의 코인을 위임받아 운용하는 형태를 의미하는데, 소액 지분을가진 사람도 커스터디 풀에 합류하여 함께 노드를 운용할 수 있다. 참여자는 마이닝 풀에 지불하는 수수료를 제외한 보상을 나눠받는다.

PoW 채굴의 문제점

비트코인 채굴에 사용되는 전력량은 세계 전력사용량 순 30위권 국가와 비슷하다. 중국과 이란은 채굴공장의 전력사용 증가로 인한 부작용이 발생하자 정부주도로 채굴장의 영업금지 및 폐쇄 정책을 시행하고 있다.

채굴 시스템

CPU

초기의 채굴방식, PC나 laptop에서 채굴. 현재는 채산성이 없다.

GPU

GPU의 병렬 설치와 병렬연산을 지원하여 CPU에 비해 채굴속도를 향상시킴

FPGA

GPU보다 성능이 높은 프로그래밍가능한 집적회로. ASIC의 등장으로 사용되지 않음.

ASIC(Application Specific Itegrated Circuit)

SHA256연산을 목적으로 만든 집적회로. 현재 비트코인의 경우 채굴난이도가 급격히 상승해서 수천개의 ASIC을 병렬으로 가동하며 채굴해야 채산성이 있다.

Chapter - 다양한 채굴 방법

작업증명

작업증명에서 블록 브로드캐스팅 시간 차이로 동시에 블록이 생성될 경우 메인체인을 선택해야한다. 이를 위해 비트코인은 longest chain rule을 활용하고 이더리움은 ghost protocol를 활용한다. 동시에 생긴 블록 중에서 메인체인으로 선택되지 못하는 블록을 stale블록, 또는 오펀블록이라 한다. 작업증명은 51% 공격을 구조적으로 방어할 수 있으므로 높은 보안성을 가진다. 하지만 ASIC장비와 마이닝풀의 등장으로 개인 채굴자의 채굴 불가, 과도한 전력 소모와 같은 단점이 있다.

Longest Chain Rule

가장 긴 체인이 가장 많은 해시파워가 축적된 체인이므로 이를 메인체인을 선택한다. 오펀블록에 담긴 트랜잭션은 롤백되지만 멤풀에 저장되어 추후에 자동으로 재처리된다. 이런 특성 때문에 비트코인의 트랜잭션은 해당 트랜잭션을 포함한 블록 다음 6블록이 생성된 이후에 finalize된다. Safety over liveness가 적용되었다.

고스트 프로토콜

이더리움은 블록생성시간이 비트코인에 비해 짧으므로(10분 -> 12초) 오펀 블록이 생성될 가능성이 크고 보안성이 떨어진다. 이를 해결하기위해 수정된 고스트 프로토콜을 적용했고 이에 따라 메인 체인으로 가장 무거운 즉, 오펀블럭까지 포함한 작업량이 가장 많이 포함된 체인을 선택한다.

논스를 찾는 방법

리딩제로 조건을 만족하는 해시값을 찾기 위해 논스를 무자별 대입한다. 리딩제로 조건은 특정한 조건보다 낮은 값을 찾도록 제한하는 것이다. 채굴 난이도가 올라갈수록 리딩제로가 많아진다.

비트코인 채굴 절차

  1. 이전 블록의 헤더를 네트워크로 부터 수신한다.
  2. 트랜잭션 브로드캐스트 세트를 생성할 블록에 넣어서 합친다.
  3. 이전 블록 헤더 값의 더블해시를 계산하고 논스와 새롭게 제안된 블록을 SHA256 알고리즘을 사용해 결합한다.
  4. 결괏값이 현재의 리딩제로를 만족하면 PoW를 푼 것으로 블록을 네트워크에 브로드캐스트하고 보상을 받는다.
  5. 결괏값이 조건을 만족하지 못하면 3번을 반복한다.

지분증명

지분증명은 암호화폐를 보유하고 있는 지분에 비례해 채굴할수 있는 합의 알고리즘이다. 네트워크에 참여하는 모든 노드는 자신의 지분에 비례해서 블록생성 노드로 선정될 확률을 갖는다. 물론 블록생성 노드는 블록생성 권한과 수수료를 보상으로 받는다. 논스를 찾는데 해시파워와 전력을 낭비하지 않아 친환경적이다.

지분증명의 단점

PoS에서 발생가능한 가장 큰 문제점은 Nothing at Stake Problem이다. 지분증명에는 컴퓨팅파워가 소모되지 않으므로 Validator는 포크된 모든 블록에 지분을 투표할 수 있다. 악의적인 Validator는 아무 비용 없이(costless) 이중지불을 시도할 수 있는 것이다. 이를 해결하기 위해 Slash 제도를 도입했다. 32ETH 이상의 보증금을 예치하게 하고, 악의적 행동시 Validator는 정해진 규칙에 따라 페널티를 받는다.
또 다른 단점으로는 PoS는 체인 선택에 대한 해결책만을 제시했으며, 지분에 비례한 블록생성기회 제공으로 네트워크가 중앙집중화 될수 있다는 점이다.

이더리움의 PoS 전환

이더리움은 캐스퍼 프로젝트를 통해 PoW에서 PoS로의 전환을 시도하고 있다. 캐스퍼 알고리즘은 이러한 전환을 위한 알고리즘이다. 캐스퍼 PoS는 악의적인 Validator를 처벌하기 위해 Slash제도를 도입했으며 노드는 Validator가 되기 위해선 보증금을 예치해야한다.

🤔 캐스퍼 프로토콜의 작동원리는 어떤가?
🤔 보증금과 스테이킹하는 코인은 동일한 것인가?
🤔 처벌받을때는 보증금만 몰수당하나?
🤔 몰수당한 보증금은 어떻게 처리되나? 소각되는가?

위임지분증명

개요

대의 민주주의와 같이 각자의 지분율에 비례한 투표권으로 대표자를 선출하고 대표자끼리 합의하여 의사결정을 내리는 합의 알고리즘. 특정인에게 PoS할 수 있는 권한을 위임하는 것이다.

장점

소규모 참여자도 이득을 볼 수 있다. (🤔 무슨이득?)
PoS에 비해 거래속도가 빠르며 수수료가 없다.

단점

위임받은 대표자들의 수가 제한되어 있어 탈중앙성이 떨어져 보안에 취약할 수 있다. 네트워크가 커졌을때도 대표자의 수가 동일하다면 탈중앙성이 떨어지고, 대표자의 수가 네트워크에 비례해서 늘어난다면 TPS가 떨어져 확장성이 저하되는 문제점이 있다.

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

거버넌스 블록체인

블록체인에 참여한 구성원들이 네트워크에 관련된 의사결정하는 과정을 블록체인 거버넌스라 한다. 일반적으로 투표가 널리 활용되고 있으며 개발자 커뮤니티를 통해서도 거버넌스가 이뤄진다.

🤔 거버넌스로 채굴한다는 의미인가? 사전에 합의된 독특한 거버넌스를 통해서 블록생성노드를 결정하는 것?

클레이튼의 합의 매커니즘

클레이튼은 확장가능한 BFT 합의 알고리즘을 사용한다.
전체 N개의 노드(Council) 중에 VRF로 무작위로 선택된 S개 노드로 구성된 부분집합을 만든다. 해당 부분집합은 커미티(Committee)라 불리고, 커미티 안에서 BFT를 수행한다. 합의된 블럭은 네트워크로 전파된다. 매 블럭마다 커미티가 달라지므로 보안성을 강화한다.

커미티 속에서 BFT 합의 과정

  1. 커미티에 속한 노드로 유효성 검사기 풀을 구성합니다. 풀에 소속된 노드들은 블록이 체인에 추가하기에 적합한지 여부를 결정하는 역할을 합니다.
  2. 이 검증자 노드 중 하나가 제안자로 임의로 선택됩니다.
  3. 검증자 풀에서 메시지를 받은 이 단일 제안자는 체인에 무엇을 추가할지 결정합니다. 이것은 다른 검증자에게 제안된 블록으로 제시됩니다.
  4. 대다수의 검증인이 블록이 유효하다고 간주하는 경우에만 원장에 추가됩니다.
  5. 각 합의 라운드가 끝나면 검증자가 새로운 제안자를 선택하고 프로세스가 반복됩니다.

채굴 알고리즘 종류

profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글