ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 블록체인의 코어기술 : 작업증명(Proof of Work, PoW)
    몰상식 (몰라도 되는 상식) 2021. 6. 1. 19:30
    728x90
    반응형

    블록체인(Block Chain)의 핵심 기술인 작업증명(Proof of Work)애 대해 이야기를 해볼까 합니다. 역시 암호화폐가 거래될 때 외부로부터 해킹 등 취약한 보안을 극복한 처리방식으로 생각하면 되는데 그러한 작업을 증명한다라고 보면 될 것 같습니다.

     

    그렇다면 어떤 작업을 증명하는 것일까요?

     

    작업증명(Pow)은 해시(Hash)값을 구하는 과정이라고 합니다. 

     


    ☞ 해시(Hash)

     

    해시는 다양한 길이를 가진 데이터를 고정된 길이의 데이터로 대응(mapping)시킨 값입니다. 좀 더 구체적으로 보면 특정한 데이터를 상징하는 다른 길이의 데이터로 변환하는 행위를 말하는데 글자하나만 달라도 완전히 다른 문자열로 변환되기때문에 무결성과 보안성을 띕니다. 

     

    우리가 알고자 하는 해시의 보안성은 출력값을 토대로 입력값을 찾을 수 없는 즉, 복호화(암호화의 반대의미)가 불가능하기 때문에 아주 강력한 보안성을 가지고 있다고 보면 됩니다. 

     

    (참고로, 갑자기 생각이 나서 씁니다만...

    제가 이 블로그를 시작한 계기중 주요이유는 제 컴퓨터가 '랜섬웨어'라는 지독한 바이러스에 걸려 중요한 자료가 복구가 되지 못했습니다. 해커에게 돈을 주면 풀수있는 암호키를 준다고 스크린에 딱 뜨더라구요.. 온갖 곳에 도움을 요청했지만 방법이 없었습니다. 정말 짜증이 엄청 났지만 돈을 준다고 해커가 암호키를 준다는 보장도 없고 게다가 비트코인으로 달라 하더군요..

     

    아마도 이런게 해시값으로 이루어진게 아닌가 하는 생각이 갑자기 드네요.)

     


    ▒ 작업증명 역사

     

    작업증명의 기본개념은 1933년도에 고안되었다고 합니다. 대단하죠? 이 알고리즘을 구현하여 최초로 적용한 시점은 1997년 영국의 암호학자인 애덤백(Adam Back)의 해시캐시(Hashcash)고 이후 2009년 이 기술은 사토시 나카모토라는 사람이 개발한 비트코인(Bitcoin)에 적용이 되어 오늘날까지 사용된다고 합니다. 

     

     

    ☞ 해시캐시(Hashcash)

     

    해시캐시는 대량으로 발생되는 스팸메일을 방지하고자 고안된 암호화폐입니다. 이메일을 보내기 위해 작업증명 알고리즘을 이용하여 해시값을 찾고 그 보상으로 발행되는 우표였다고 보면 됩니다. 이 과정이 시간과 비용이 들기때문에 대량으로 발생되는 스팸메일을 막을 수 있는 방법으로 작업증명(PoW)방식을 사용했다고 보면 됩니다. 

     

    애덤백은 현재 블록체인 기술을 기반으로 하는 Blockstream이라는 회사의 CEO인데 블록체인 기술의 상용화를 위해 인터넷이 연결되지 않는 곳에서도 실시간 거래가 이루지도록 '블록체인 인공위성'서비스를 시작했다고 합니다. 

     

     


     

    ▒ 작업증명 특징

     

    작업증명 방식의 알고리즘은 거래가 발생했을 경우 해당 거래가 유효한지에 대한 합의이자 검증방식이라고 말할 수 있다. 

     

    1. 채굴 (Mining)

     

    광산(Mine)에서 금이나 광물을 캘때 마이닝(Mining) 즉, 채굴이라고 합니다. 위 설명한 해시값을 구하는 과정을 채굴(Mining)이라고 보면됩니다.

     

    채굴의 원리는 임의의 Nonce(특정상황에만 쓰기위해 만든 임시의)값을 대입하여 얻은 결과값이 제시된 값보다 작은 결과값이 나올때까지 무한 반복 과정을 실행되고 그 대가로 암호화폐를 얻는 행위입니다. (여기까지는 어렵습니다.)

     

     

    2. 채굴 시간 (Mining Time)

     

    블록(데이터)은 블록헤더(Block Header)와 블록바디(Block Body)로 구성이 되어 있는데 블록헤더(Block Header) 정보에서 bits값으로 조절되는 난이도에 따라 시간이 달라지게 되어 있다고 합니다. 이 기준은 블록이 2,160개 생성되는 시간인 21,600분을 기준으로 설정되어 있는데 하나의 난이도는 평균 10분이 걸리겠죠. 

     

    그럼 단순한 생각으로 21,600분은 15일을 뜻합니다. 

     

    한개의 비트코인을 채굴하는 시간이 15일을 뜻하는지 더 들어가봐야겠습니다.

     

     

    3. 보상

     

    비트코인 기준으로 새로 발행되는 비트코인과 해당 블록에 포함되는 거래 수수료의 합으로 보상이 됩니다. 채굴자가 처음 블록을 구성할 때(블록이 2,160개가 생성될 때) 채굴자의 지갑으로 일정량의 비트코인이 입금되는 거래를 그 블록의 첫거래로 추가가 된다고 합니다. 첫거래는 특히 Generation Trasaction이라고 불립니다.

     

    새로 발행되는 비트코인의 시작은 50BTC입니다. 

     


     

    작업증명을 통한 방식은 강한 보안성이 장점으로 꼽힙니다. 반면 좀 더 빠른 연산을 위하여 고사양 장비를 동원하는 기업형 채굴자들이 등장하게 되고 이에 따라 전력 소비량도 어마어마 하다고 합니다. 이제는 거의 싱카포르의 년간 전력량하고도 비슷해져서 오히려 탄소배출 등 환경문제 또한 심각해지고 있다고 하며 기업형 채굴자들의 단합은 곧 블록체인의 기본취지인 탈중앙화를 흐리게 하는 경우도 발생이 되고 있습니다. 

     

    다음 시간에는 좀 더 채굴과 관련된 이해와 채굴자의 지갑이 어떻게 형성되는지 일반인들이 지갑을 어떻게 보유하는지 알아봐야겠습니다. 

     

     

     

     

     

    반응형

    댓글

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Designed by Tistory.