개발하기좋은날

채굴 (Mining) 본문

BlockChain

채굴 (Mining)

devbi 2022. 10. 17. 18:38
반응형

블록체인에서 흔히 '채굴' 이라는 단어는

블록체인 네트워크에 노드로 트랜잭션을 검증하여 분산원장을 기록하고 보상으로 암호화폐를 얻는 것을 말함

 

여기서 블록체인 네트워크에서 새로운 블록을 생성하고 그 대가로 암호화폐를 지급받는 노드들이 '채굴자' 라고 얘기하조 

 

그럼 우리 노드들은 채굴을 왜하는걸까? (당연히 돈이 되니깐 하조..ㅋㅋ)

이익이 되니깐 하는거다 이건 비트코인 게임 이론이랑도 연관이 있다

 

대표적으로 비트코인의 Pow에 대해 알아봅시다 

이 노드(채굴자)는 어떤일 을 하나면 (이것도 일이조) 

- 네트워크 동기화 : 새로운 노드가 비트코인 네트워크에 합류하면, 다른 노드에게 과거의 블록들을 요청해 블록체인을 다운로드 할수있게 해주조 

 

- 트랜잭션 검증 : 새로운 트랜잭션을 수신한 노드는 반드시 해당 트랜잭션이 올바른 트랜잭션인지 검증하는 과정을 거쳐요

 

- 블록 유효성 검사 : 채굴자와 풀노드는 특정 규칙에 따라 수신한 블록을 평가? 하여 유효성 검사를 합니다  

 

(풀노드? 란게 뭐냐면 블록체인의 가장 첫 번째 블록부터 지금까지의 블록정보를 모~~~~~두 가지고 있느 노드를 말합니다 

그외로 라이트노드가 있는데 SPV라고 블록체인 거래 데이터가 없어서 다른 풀 노드에게 자료를 요청해서 거래를 진행하는걸 말합니다  아예없는건 아니고 블록체인에 헤더 요약본을 가지고있습니다) 

 

- 새로운 블록 생성 : 채굴자가 네트워크에 브로드캐스팅된 트랜잭션의 유효성을 검사 하는 행위 

 

- 작업 증명 POW 수행 : 채굴 과정의 핵심입니다, 채굴자가 해시 퍼즐을 풀어서 유효한 블록을 찾는 과정이조 

HOW? 블록헤더에 Nonce라는 값이 있는데 이값을 채굴자가 계속 바꿉니다, 그래서 이미 결정된 목표값보다 작을 때까지 반복하는거조 그렇게 먼저 빨리 찾으면? 새로운 블록을 생성하고 비트코인을 지급받고 돈을 벌게됩니다...!

 

* 블록 헤더에 있는 논스와 트랜잭션 논스는 다릅니다 

* 비트코인 논스와 이더리움 논스의 차이입니다 

 

- 보상  수령 : POW 퍼즐을 풀면 결과를 브로드캐스팅하고 다른 노드들은 그 결과를 검증하고 블록을 승인하게 되며 당사자는 bitcoin을.. 지급받습니다!!

 

이렇게 생각보다 노드는 하는일이 많습니다 

돈을 벌기위해 하나의 체인에서 자신의 컴퓨팅 파워를 소모하는것이조 

 

우리도 비트코인 노드가 될수있을까?

- 결론부터 말하자면 불가 하다 아래 그림을 살펴 보자 

비트코인 해시레이트

위 그림은 '해시율' 이라고 초당 해시 계산 개수 비율을 말하는데 쉽게 말해서 블록을 찾기 위해 비트코인 네트워크상의 채굴자들이 해시를 계산하는 속도를 말합니다 

2010년부터 2016년 까지는 인기가 없어서 개인 CPU 비트코인을 채굴했는데 2018년이되서 전문 마이닝풀, ASICs 라는게 도입이 되면서 마치 비트코인시세처럼 떡상하게 되조 

이 얘기는 비트코인 난이도가 급격하게 증가했다는 얘기에요 

막강한 컴퓨팅 파워를 가지고 병렬로 작업하지않는 이상 우리는 코인을 획득할수없을거에요 아마 전기세만 기부만 하게되는거조 

 

우리는 그러면 채굴풀(Mining Pool) 에 대해 알아볼 필요가있습니다 

앞서 잠깐 얘기를 했는데, Pool이 라는게 우리나라 노조 같은거 ..네 맞아요 노조 입니다

 

여기서 생각할게 이 노조가 왜 생겼냐에요

앞서 그래프를 보면 알수있듯이 기존에 비트코인 채굴자들은 개인PC로 퍼즐을 풀어서 비트코인을 보상으로 지급받았습니다 

그런데 마이닝 기술이 발전하면서 해시레이트가 급격하게 증가 하면서 기존의 개인 해시파워로는 보상을 받을수없게된거조

그래서 낮은 해시파워를 가진 사람들끼리 뭉쳐서 보상을 나눠가지는게 이 채굴풀 이라는겁니다 

 

 

이제 몇가지 채굴 방법에 대해 알아보자 

POW, POS, DPOS 

 

POW

POW는 앞에서 설명했듯이 해시퍼즐을 풀어서 보상을 지급합니다 

하지만 동시에 블록을 채굴하는경우가 생기면? 

실제로 그러한 경우 고아블록이 생기게 됩니다 

고아블록이란 동시에 블록을 두개를 생성하여 블록이 분기되는걸 말합니다 

출처 - 해시위키

결과적으로 체인의 길이가 가장긴것을 선택하여 블록이 쌓이지만 그렇지못한 고아블록이 처리될려면 

비트코인은 거래 확정을 3~5개 이후 확정되게끔 설정을 해놔서 해결을 합니다 

이더리움 같은경우 POW 시절에는 고스트 프로토콜을 사용하여 위 문제를 해결했습니다 

 

POW의 장점은 높은 보안성이라는겁니다 

블록체인의 취약점인 51% 공격을 쉽게 방어합니다 

POW의 단점은 채굴난이도가 높아지면서 개인 채굴자는 채굴할 수 없는 수준까지 도달한다는겁니다 

그리고 채굴을 위해 사용되는 고사양 장비와 과도한 전력 소모는 높은 탄소를 배출하고 환경오염까지 영향을 미치게 됩니다

 

 

POS

POS는 암화화폐를 보유하고 있는 지분율에 비례하여 의사결정 권한을 주는 합의 알고리즘 입니다 

POW의 컴퓨팅 파워 낭비문제로 지분이라는 개념이 나왔조 즉, Staking 한 자산을 통해 블록을 생성하는 메커니즘 입니다

주주 총회에서 주식 지분율에 비례하여 의사결정 권한을 가지는 것과 유사합니다

 

POS의 장점을 빠르게 알아보면 

1. POW에비해 환경친화적

2. 인센티브에 대한 강한 동조및 지지 

3. 채굴 풀의 중앙집중화를 해결 

 

이정도가 있습니다, 전부다 POW의 문제점을 해결하기위해 만들어진 느낌이조 

그렇다면 POS의 단점은 무엇일까요? 

 

장점을 뺀 모든 문제에 불안정하다는 겁니다. 그리고 POS는 암호화폐 보유량에 비례하여 신규 자금을 배당하는데 그 뜻은 자산이 많은 사람한테 자금이 집중된다는 말입니다. 

 

가장 큰 문제는 Nothing at Stake Problem 입니다 

즉, 위험에 노출되지 않는 문제를 뜻하는데, 블록 작성자가 네트워크 분기가 될 때 위험에 처하지 않는다는 뜻입니다 

말이 재밌는게 예를들어 회사 사장님을 떄려도 직장을 다닌다는 재밌는 비유가 있습니다

우리가 회사 사장님을 때리지않는 이유는 직장에서 해고 당할 위험에 노출될 수 있기 떄문이조 

 

또 다른 예 로는

POS방식은 모든 노드가 제한 없이 여러 블록에 자신의 지분을 증명할 수 있기 떄문에

만약 하나의 거래에서 서로 다른 거래내용이 발생한 경우 많은 지분을 가진 노드가 공격을 목적으로 두 개의 블록에 모두 증명해놓고, 거짓인 체인도 참인 것처럼 길게 체인을 형성시킬 수 있습니다.

여기서 새로 참여한 검증자 즉  밸리데이터는 어느 것이 정당한 블록체인인지 알 방법이 없습니다. 

그래서 새로 많은 지분을 사들여 검증에 참여하는 노드가 거짓인 블록체인에 증명 해버릴 경우 제대로 된 거래를 한 사람은 모두 공격에 당하는 꼴이 되는거조. 

 

이더리움은 이러한 문제를 해결하고 Pos로 전환했습니다 

그것은 캐스퍼 프로젝트이고 기존 Pos에서 악한 행위를 하는 검증인들을 처벌할수있는 기능이 탑재되어있습니다 

위와 같은 NSP 공격시 Staking된 자산을 모두 몰수당하는걸 의미 하조. 

 

Dpos

위임 지분 증명입니다 대표적으로 EOS가 선택한 방법이조 

암호화폐 소유자들이 각자의 지분율에 비례하여 투표권을 행사하여 자신의 대표자를 선정하고, 선정된 대표자들끼리 합의하여 의사결정을 내리는 합의 알고리즘 입니다.

지분 증명이 자산을 가진 사람들이 전부 참여할 수 있는 방식이라면, 위임지분증명은 특정 인원에게만 지분 증명(Pos)을 할 수 있도록 권한을 위임하는 것입니다. 

 

재밌는건 POS에 대한 문제와 비판으로 DPos가 탄생했다는거조 

위임지분증명은 지분증명 방식과 달리 누구에게나 대표자가 될 기회가 주어지지 않습니다 

대표자가 되기 위해서는 투표를 거쳐야 하며, 이떄 명칭이 바뀌는데 투표를 통해 선출된 사람을 대표자라고 합니다 

선출된 대표자들은 블록을 생성하고, 블록을 확정하기 위해선 2/3 이상의 승인이 필요합니다.

 

DPos의 장점은 무엇일까요?

1. 소규모 참여자도 이득을 볼 수 있다.

2. POS보다 거래속도가 빠르다 

 

그렇다면 단점은? 

- 네트워크 보안, 대표자의 수 입니다 

 

이둘의 단점은 공통적인 부분에서 나옵니다.

가장 먼저 블록체인의 보안은 탈중앙화에서 나오는데 대표자들의 수가 제한되니 보안에 취약할수밖에 없습니다. 또한 외부 공격에 강한 이유가 블록체인은 익명성 떄문인데 대표자로 선출되면 대표자에 대한 정보를 밝혀야 한다는 딜레마가 있조.

대표자의 수가 일정하니 상대적으로 중앙화가 이루질수 있기 떄문에 암호화폐를 보유하고 있는 사람들의 수가 많아질수록 네트워크가 커질수록 대표자의 수는 늘어나야만 합니다 

그러면 속도의 장점을 잃게되는 문제는 겪게 됩니다

 

클레이튼의 합의 메커니즘은 다음에..!! 

 

 

 

반응형

'BlockChain' 카테고리의 다른 글

재진입 공격 방지 (Re-Entrancy)  (0) 2022.10.28
External Call 보안  (0) 2022.10.28
프루닝  (0) 2022.08.31
IPFS? IPFS 동작 방식  (0) 2022.08.24
해시 테이블, DHT  (0) 2022.08.16
Comments