본문 바로가기

카테고리 없음

블록체인의 원리 - 채굴, 작업증명, 네트워크 이에 대한 신뢰성이란?

반응형

블록체인에 대해서 알기 위해 필수적인 용어와 프로세스에 대해서 이해해보자. 블록체인에서 말하는 채굴, 작업 증명, 네트워크 난이도가 무엇인지 알아보고 진행 프로세스도 알아보자. 무엇이 채굴이고, 작업 증명이 고는 그 나중일 인 것 같다. 블록체인을 알기 위해 가장 중요한 내용은 무엇인지 총정리해보았다. 

 

 블록체인의 원리

블록체인의 원리는 모두가 알다시피 정보를 중앙 집권화하는 것이 아니라 모두가 공유하는 것에 있다. 이 공유가 블록체인의 핵심이다.

 

블록체인을 이해하기 위해서는 총 4가지를 이해하는 것이 시작이다. 

  1. 채굴
  2. 작업증명
  3. 네트워크
  4. 지갑
  5. 해시

먼저, 채굴이란 마이닝(mining)이라고도 불리며, 암호화폐의 트랜젝션을 기록한 블록을 생성하고 그 행위에 대한 대가로서 암호화폐를 얻는 것을 말한다. 

이러한 채굴로부터 암호화폐를 받아 현금처럼 물건의 매매가 가능하다는 것이 블록체인의 시작이라고 생각한다.

 

그렇다면 채굴은 어떻게 하는 걸까에 대한 의문이 남는다. 생각해보면 간단한 일인데, 이게 IT적인 요소 가미되면서 어려워졌다. 조금 더 쉽게 이해할 수 있도록 해보자. 채굴은 어떠한 시스템(후에 기술)을 통해 합의 알고리즘이라는 작업으로 암호화폐를 소유하는 것을 말한다. 

 

암호화폐는 2017년 3월 기준으로 초당 14 테라 해시(TH/s)인 비트코인 채굴기가 400만 테라 해시를 만들어내는데, 이 생성된 암호화폐는 채굴에 참여한 채굴자 중 *해시 캐시를 푼 이에게 지급되며 조건에 대한 해시를 찾아내는 일련의 과정을 통해 암호화폐가 생성된다.

 

참고적으로 말하자면, 여기에서 *해시 캐시를 생성하기 위해 컴퓨터를 24시간 가동해야 하며, 필요한 성능은 CPU인데, 이에 발전된 GPU가 있다. 더 발전된 컴퓨터 성능으로는 ASIC가 있는데 이는 CPU보다 훨씬 더 성능이 좋다고 알려져 있다. 

 

이렇게 이렇게 채굴을 하면서 채굴을 하는지에 대한 여부를 작업 증명으로 확인받는데 *1) 작업 증명이란 해쉬를 찾는 과정을 무수히 반복함에 따라 해당 작업에 참여했는지에 대한 여부를 증명하는 방식을 말한다. 이를 합의 알고리즘이라고 불린다. 이 알고리즘에는 작업 참여를 어떻게 했는지에 대한 기록이 담겨 있는데 이를 분산 원장이라 한다.  그리고 이 분산 원장 시스템에는 작업 증명(PoW), 지분 증명(PoS), 위임 지분 증명(DPoS), 경과시간 증명(PoET), 권위 증명(PoA), 비잔틴 장애 허용(BFT) 등과 같은 합의 알고리즘 즉, 기록방법을 사용하고 있다. 

 

*1) 참고적으로 작업 증명은 SHA-256 이전과 이후로 나뉘고 있다. 이는 18개의 0으로 이루어진 해시 캐시를 가지고 있으며, 해킹으로 인해 *2) 하드 포크와 소프트 포크로 발전하며 디앱으로 발전하는 계기를 낳았다. 

 

*2) 소프트 포크 : 비전을 즉시 변경하지 못함. 

하드 포크 : 비전 A와 비전 B가 존재할 경우 문제 발생 시 A는 A대로 B는 B대로 평행세계로 존재하는 방법을 말한다. 비전으로 돌아가고 안 가고의 문제가 아니라 공존한다는 것에 있다.

 

이렇게 채굴하여 채굴에 참여했다는 증명을 받기 위해서는 네트워크 난이도가 중요하다. 뜬금없이 증명을 받기 위해 네트워크 난이도가 필요하다는 것이 조금 이상하다. 무슨 말일까? 이는 해시 캐시라는 문제를 풀게 되는데 이를 작업자의 네트워크 난이도라고 한다. 네트워크 난이도는 결국 CPU 성능(돈이 조금 있는 채굴자의 경우 ASIC)을 말한다. 

 

 지갑(Wallet)이란? 

앞단에서는 채굴에 관한 이야기를 했다. 이제 채굴 후의 뒷단의 이야기를 해볼까 한다. 채굴을 통해 암호화폐를 얻게 되면 이를 보관해야 하는 보관장소가 필요한데, 암호화폐 업계에서는 이를 지갑이라고 불린다. 나는 처음에 이 지갑을 에르메스, 구찌, 프라다 등의 단순한 형태의 지갑으로 생각을 했었으나, 이는 완벽히 틀린 생각은 아니지만, 맞는 정답도 아니었다. 

 

블록체인에서 말하는 지갑은 총 5가지로 이루어져 있다. 아니 지갑이 무슨 5가지나 될까 싶은데, 사실 알고 보면 어려운 이야기는 아니다. 

  1. 웹(클라우드) 지갑
  2. 데스크톱 지갑
  3. 모바일 지갑
  4. 하드웨어 지갑(소프트웨어 지갑)
  5. 페이퍼 지갑

웹(클라우드) 지갑은 거래소라고 보면 쉽다. 주요 'key'를 개인이 아닌 중앙화 된 제3의 기관이 관리한다. 따라서 이 경우 제3의 기관이 보안 기술을 가지고 있어야 한다. 다만, 웹 지갑의 사용은 점점 증가하고 있는데 이는 *3) 볼트(vault)라는 기능이 한몫을 하고 있다. 

 

*3) 볼트(vault) : 보안 기술로서 암호화폐의 인출을 지연해서 소유자 허락받지 않은 인출 시도를 무효화할 시간을 갖도록 하는 기능을 말한다. 

 

데스크톱 지갑은 기능에 따라 2가지로 분류되는데 풀 클라이언트(Full client), 라이트웨이트 클라이언트(Lightweight client)가 있다. 쉽게 말해서 풀 클라이언트는 집중인인 소프트웨어 응용프로그램을 사용하여 블록체인 전체를 내려받는 형태로 저장공간이 많이 필요하다. 만약 이를 핸드폰에 내려받게 되면 고장 날 수도 있다. 라이트웨이트 클라이언트는 편리한 보관 기능을 제공하며 거래정보만 제공하는 장점이 있다. 이렇게 기능에 따라 지갑이 분류된다.

 

모바일 지갑은 라이트웨이트 클라이언트와 비슷하며, 개인 키를 제3 기관의 서버에 저장하는 것이 아닌 디바이스에 개인키를 저장하는 지갑을 말한다.

 

하드웨어 지갑은 다른 사람에게 암호화폐를 타인에게 보내는 지갑을 말하며, 키 생성, 보관, 송금 기능을 모두 가지고 있다.  Ledger Nano X, Trezor Model One. SafePal S1 등이 있습니다. 

 

페이퍼 지갑은 일련의 글자와 숫자로 이루어진 공용키와 개인키를 종이에 보관하는 지갑을 말한다. 

 

 해시(hash)

해시(hash)란 다양한 길이를 가진 데이터를 고정된 길이를 가진 테이터로 매핑(mapping)한 값을 말한다. 참고적으로 해시 레이트라는 말도 존재하는데, 이는 연산 처리능력을 측정하는 단위로 해시 속도를 의미한다. 따라서, 특정한 배열의 인덱스나 위치를 입력하고자 하는 데이터의 값을 이용해 저장하거나 찾는 게 가능하다. 

 

 

 

728x90
반응형