초보자를 위한 Blockchain 강좌 #7 채굴 - 작업 증명

토픽 내용을 시작하기 전에 먼저 다음과 같이 마음속으로 속삭여 보시라고 말씀드리고 싶네요.
"나는 내용이 아무리 어렵게 쓰여 있어도 아주 쉽게 받아 들일 수 있다!"
방금 학습에 있어서 매우 중요한 것을 알려드렸습니다.
어떤 것을 접하더라도 할 수 있다는 믿음이 있다면 그 학습 능력은 놀랄만치 올라간다는 것을요.

채굴(Mining)을 알아보도록 하죠. 채굴이라고 하면 대부분의 사람들은 가상화폐를 얻는 방법으로 알고 있습니다. 특히 왜 비싼 그래픽 카드를 써서 전기를 "낭비해가며" 가상화폐를 "채굴"하는지 의아해 할 것입니다. 먼저 채굴의 주요 역할은 다음과 같습니다.

  1. 새로운 블락 생성
  2. 신규 가상화폐 발행

앞 모듈에서 언급됐듯이 블락체인 네트워크의 채굴노드는 트랜잭션들을 모아서 하나의 블락을 생성을 하는 작업을 합니다. 이 때 채굴노드들간 경쟁을 통해서 가장 먼저 블락 생성을 생성하는 채굴노드에게 보상을 주게 됩니다. 보상이라 함은 신규로 가상화폐를 발행해서 채굴노드에게 주는 것입니다.

채굴의 역할은 신규 블락 생성 및 신규 화폐 발행입니다.



새로운 블락 생성에 대해서 설명해 보도록 하겠습니다. 이전 토픽에서 채굴 노드들간 수학 문제(Math Problem) 풀게 해서 가장 먼저 문제의 답을 찾은 노드가 블락을 생성한다고 하였습니다. 따라서 채굴노드는 수학문제를 풀기 위해서 각 노드들이 가진 컴퓨터 자원, CPU나 그래픽 카드(GPU) 등을 이용해야 합니다. 이 수학 문제라는 것이 복잡한 수학 문제라기 보다는 동일한 작업을 반복적으로 수행해야만 답을 찾을 수 있는 것이라서 CPU보다는 그래픽 카드의 병렬 처리 기능을 이용하면 더 빠르게 찾을 수가 있습니다. CPU에도 연산을 담당하는 코어(Core)가 있지만 그 수가 8개 이하로 매우 적습니다. 반면 그래픽 카드에는 그 코어수가 수백에서 수천에 이릅니다. 제가 가끔 집에서 채굴할 때 사용하는 GTX 1060의 경우는 코어수가 1280개 입니다. CPU코어와 단순비교하기는 그렇지만 채굴 속도가 100배 이상 나게 됩니다. 이런 채굴 성능 차이 때문에 최근 그래픽 카드가 없어서 못사는 사태에 이르게 된 것이지요.
1.jpg

위 그림처럼 무수히 많은 그래픽 카드를 연결시키면 채굴 속도는 더욱 더 증가하게 됩니다. 집에서 재미삼아 채굴하는 방법은 별로도 설명드리도록 하겠습니다.

그래픽 카드의 품절 사태는 채굴에 적격이기 때문입니다.



그런데 이렇게나 많은 그래픽 카드를 돌리려면 엄청난 전기를 소모하게 됩니다. GTX 1060의 경우는 최대 시간당 120W를 소모하게 됩니다. 이런 그래픽 카드가 10개가 있다면 1200W를 소모하게 됩니다. 고성능 진공청소기를 1시간 동안 켜두는 것과 맞먹는 전력 소비입니다. 왜 채굴에는 이렇게 전력을 "낭비" 할까요? 그냥 채굴 노드끼리 가위바위보를 하던 주사위를 굴리던 해서 정하면 전력 낭비도 없을텐데 말이죠.

왜 채굴은 전력 낭비를 해야 할까요?



채굴이 전력을 소비를 필요로 하는 데에는 아주 중요한 기능이 있기 때문입니다. 그것은 바로 네트워크의 해킹 안전성을 보장하는 기능입니다. 채굴 노드가 고생한만큼 네트워크는 안전해집니다. 간단히 말씀드리면 블락 생성에 '고생'을 했기 때문에 이것을 뒤집거나 변경하려면 그 만큼 이상의 고생이 필요하다고 할 수 있습니다. 더욱 정확히는 블락체인 네트워크의 채굴 노드들의 전체 고생량보다 더 많은 고생을 해야 합니다. 만약 어떤 집단이 전체 채굴 노드의 51%를 확보하여 네트워크 해킹을 시도한다면 가능할 수도 있겠습니다. 이것이 블락체인에서 언급되는 51% Attack 입니다. 하지만 블락체인 네트워크는 이러한 공격에도 해킹되지 않는 구조를 가지고 있습니다. 단순히 블락하나에 대해서는 51% Attack이 가능하겠지만 블락들이 체인으로 엮여 있기 때문에 최근 블락을 해킹하면(또는 수정하면) 그 이전 블락의 내용도 변경해야 합니다. 그러면 또 그 이전의 블락을 변경해야 하고... 즉 블락체인의 블락수가 증가할수록 해킹하기 어려운 구조인 것입니다. 이런 구조때문에 블락체인의 해킹이 '거의' 불가능하다라고 할 수 있는 것입니다.

블락체인은 해킹이 불가능하다!



채굴 노드가 고생한다고 표현했는데 이에 해당하는 용어가 작업 증명(Proof of Work)입니다. 고생을 했으니 그 작업(블락 생성)에 대한 신뢰가 생기고 그 작업의 결과물이 해킹되지 않았다는 것을 증명할 수 있게 되는 것입니다. 이 작업 증명이 블락체인 네트워크의 핵심 중에 핵심입니다. 왜냐하면 제3자의 개입없이 블락체인 네트워크가 해킹에 안전하도록 만들어주기 때문입니다. 작업 증명으로 인해서 안전하게 블락체인 네트워크 상에서 금전거래, 데이터 기록 등의 작업을 할 수 있는 것입니다.

2.png
[블락체인, 출처]

작업증명을 통해서 블락체인 네트워크의 안전성이 확보됩니다.



작업 증명과 관련되어 "비잔틴 장군 문제"를 검색해보면 보다 자세한 내용을 알 수 있습니다.

다음 토픽에서 작업 증명에 대한 기술적 부분을 간단히 다뤄보겠습니다.

이번 토픽의 홈워크는 이번 강좌에서 이해가 되지 않는 부분을 댓글에 남겨주시는 것입니다.


포스팅한 내용이 유익했다면 아래의 스팀잇의 게시글 하단에 투표해주세요!
투표하셔도 스팀이나 스팀파워가 소모되지 않습니다.

강좌를 오픈튜토리얼스에서 온라인 강좌형태로 보실 수도 있습니다.
오픈튜토리얼스 바로가기


초보자를 위한 Blockchain 강좌 시리즈

H2
H3
H4
3 columns
2 columns
1 column
1 Comment