맨위로 가기
  • 공유 공유
  • 댓글 댓글
마스터노드 수익구조 2탄 (코마노님 티스토리 펌글)
yolofred

마스터노드 수익구조 2탄 (코마노님 티스토리 펌글)

지난 번에 마스터노드 코인과 마스터노드의 수익구조에 대해서 알아보았습니다

.

2018/05/10 - [분류 전체보기] - 마스터노드... 진짜 돈은 되는 것인가? 도대체 어떻게 돈이 되는건가? (1)

 

이번에는 가상화폐로써의 마스터노드에 대해서 한 걸음 더 들어가 보겠습니다.

 

지난 번에도 마스터노드와 POW의 채굴기와의 비교를 잠시 언급하면서 표도 보았습니다. 이번에는 이 채굴이라는 것에 대해서 조금 더 확인해 보도록 하겠습니다. 모든 블로그에서 잘못된 점이나 오류가 있는 문장에 대해서는 언제든지 [email protected]로 연락 주시면 됩니다.

 

그럼 가상화폐, 즉 코인들의 채굴이란 개념에 대해서 확인해 보겠습니다.

채굴에 대해서 알기 위해서는 알고리즘에 대해서 먼저 잠시 확인해 보겠습니다.

알고리즘을 위키백과에서 검색을 하면 다음과 같이 나온다.

 

 

"알고리즘이란 어떠한 문제를 해결하기 위한 여러 동작들의 모임이다. 유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다. 수학과 컴퓨터 과학에서 알고리즘이란 작동이 일어나게 내재하는 단계적 집합이다. 알고리즘은 연산, 데이터 진행 또는 자동화된 추론을 수행한다."

 

솔직히 위와 같은 정의는 대다수를 차지하는 비전공자들이 이해하기 어려운 내용이다. 그리고 가상화폐(암호화폐)와 무슨 연관이 있는지도 알기 어렵다.

 

그럼 가상화폐(암호화폐)의 원조 비트코인을 예로 들어보겠다. 물론 비트코인은 POW 방식의 채굴을 사용한다. 비트코인에서 채굴이란 간단하게 얘기하면 새로운 거래원장(블록)을 생성하는 것이다. 

 

https://d2.naver.com/helloworld/8237898

 

 

채굴기를 이용해서 Block n을 생성하는 것을 채굴을 의미한다. 채굴을 하는 여러 노드(컴퓨터)가 있어 그 중 가장 먼저 채굴을 성공한 채굴기 노드에게 보상을 주는 것이다. 그 보상이 비트코인인 것이다. 그런데 채굴기와 거래원장(블록)과 알고리즘이 무슨 상관이 있을까? 

 

 

위의 그림을 자세히 보면 "Hash"라고 되어 있다. 여기서 hash의 의미는 hash-256 함수를 이용해서 나온 결과값이다. 프로그래밍에서 hash-256 함수는 해시 알고리즘이라고 한다. 이 해시 알고리즘을 이용해서 나온 결과값을 알아맞추는 것이 정확히 채굴인 것이다. 

 

 

이제부터 이번에 이야기하고자 하는 본론으로 이 해시 알고리즘이 무엇인가? 하는 것이다. 해시 알고리즘이라고 하는 것은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 

 

 

비트코인의 화폐는 10분에 한 번씩 일정량이 생성되며 마이닝에 참여한 사용자 중 한 명에게 지급된다. 참여자들은 hashcash라는 문제를 풀어야 한다. hashcash는 특정한 조건을 가지는 해시값을 찾는 것이다.

 

 

예를 들어 가장 많이 사용하는 해시 알고리즘인 SHA-256으로 임의의 데이터를 해시한 값을 구하면 256비트(32바이트)의 값을 얻는다. 해시 함수는 단방향 함수라 데이터로부터 해시값을 구할 수는 있지만 해시값으로부터 데이터를 역산하는 것은 이론적으로 불가능하고, 해시값이 같은 임의의 데이터를 만들어 내는 것 역시 매우 어렵다. 특정한 해시값이 나오는 데이터를 찾으려면 2256개(256비트로 나올 수 있는 모든 경우의 수)의 데이터를 일일이 확인해야 한다. 현대의 컴퓨터로는 불가능한 작업이다. hashcash 문제는 이 불가능한 역산 작업과 유사하다. 특정한 해시값이 나오는 데이터를 찾는 것은 너무 어려우니 특정한 범위의 해시값이 나오는 데이터를 찾도록 난이도를 낮춘 것이다.

 

 

SHA-256 ("hello world" + " 0") = 3cad76d283686392c9c1813baf25239a3f09b9e075d830984a9a93d62b93adb8  

 

SHA-256 ("hello world" + " 1") = 063dbf1d36387944a5f0ace625b4d3ee36b2daefd8bdaee5ede723637efb1cf4  

 

SHA-256 ("hello world" + " 2") = ed12932f3ef94c0792fbc55263968006e867e522cf9faa88274340a2671d4441  

 

SHA-256 ("hello world" + " 3") = 4ffabbab4e763202462df1f59811944121588f0567f55bce581a0e99ebcf6606  

 

SHA-256 ("hello world" + " 4") = 000e5e410dd915d190cce21d72a40bdbcc9db96d80de87d28896b56766f31b4e  

 

SHA-256 ("hello world" + " 5") = f6471bb5cd1837f3ef4891903c40c5300c9f0fd8a902d5c3774628c44dab78ed  

 

SHA-256 ("hello world" + " 6") = 6a9b5a89258b50744dfdf62e49ac6d869e8916e04ce57d9d1fc953daed9bfcd8  

 

 

위와 같이 어떤 값을 해시하던 결과값은 항상 일정한 길이로 나온다. 

 

"hello world"라는 문자열에 임의의 nonce 숫자(암호 시스템에서 사용하는 일회용 일련번호)를 덧붙여서 SHA-256으로 해시값을 구한 것이다. 해시값은 "SHA-256 hash calculator"와 같은 사이트에서도 쉽게 확인할 수있다. 위의 값 가운데 'hello world 1'과 'hello world 4'의 해시값의 시작 부분에는 숫자 0이 각각 1개와 3개가 있다. 0이 4개 이상인 해시값을 찾으려면 nonce 숫자를 조금 더 바꾸어 가면서 시도하면 될 것이다. 0의 개수가 하나씩 늘어날 때마다 확률적으로 16배씩 더 많은 nonce 숫자를 대입해 보아야 한다. 0의 개수가 5개인 해시값을 찾으려면 약 백만 개의 nonce 숫자를 대입해야 할 것이라 컴퓨터를 사용해도 쉽게 찾기 어렵다. 비트코인에서 사용하는 hashcash 문제란 이처럼 몇 개 이상의 0으로 시작하는 해시값을 찾으라는 문제다. 위의 예에선 "hello world"라는 임의의 문자열을 사용했지만 비트코인에선 블록체인에 추가된 가장 최신 블록의 헤더가 해시의 대상이 된다. 

 

hashcash 문제에서 해시값을 찾는 데는 많은 계산량이 필요하며 해시의 특성상 무작위로 생성되는 값이라 누가 먼저 조건에 맞는 해시값을 찾을 수 있는지 보장하기 어렵다. 비트코인은 가장 먼저 해시값을 찾은 사용자에게 보상으로 지급된다. 결국 이 것이 채굴이 된다는 것이다. 

 

 

그럼 마스터노드의 원조 대시에서 사용된 X11 알고리즘을 살펴보면, 알고리즘의 종류에는 전공자나 개발자들도 다 모르게 많은 종류의 알고리즘이 존재한다. 알고리즘의 종류에는 blake, bmw, groestl, jh, keccak, skein, luffa, cubehash, shavite, simd, echo 등이 존재하는 X11 알고리즘은 대시코인을 개발한 이반 더프필드(Evan Duffield)가 개발한 해시 알고리즘으로서 위에 열거된 알고리즘, blake, bmw, groestl, jh, keccak, skein, luffa, cubehash, shavite, simd, echo 등을 포함한 11개의 알고리즘를 여러개 섞어서 돌려가면서 순차적으로 적용하는 순환(revolving)방식의 알고리즘이다. 요즘 생성되는 코인들은 X11, X13, X15등 점차 섞어서 사용하는 알고리즘의 종류가 늘어나고 종류도 다양해지고 있다.

 

지금까지 설명한 이유로 POW방식의 채굴에서는 해시 결과값을 찾기 위해서 어마어마한 전력량이 소모가 되고 많은 양의 GPU가 사용되는 것이다.

 

 

이와 같은 일반적인 채굴의 단점을 보완, 코인 네트워크의 안정성을 높이기 위해서 대시에서 처음 사용한 개념이 마스터노드인 것이다. 채굴에 사용되는 전력, GPU를 현저히 줄이면서 코인의 네트워크의 안정성을 높이는 결과가 나타난 것이다.

 

 

마스터노드는 서버 프로그램와 같이 24/7로 실행되는 프로그램을 사용하면서도 막대한 전력량을 사용하지 않고 거래에 서명을 책임지는 프로그램이다. 마스터노드는 3개이상의 거래 내역(트랜지션)을 섞어 각각의 거래 내역을 성사시키고 새로운 블록을 만드는 것이다. 마스터노드를 들어가는 3개의 거래 내역의 거래량의 합은 마스터노드를 거쳐 나오는 3개의 거래 내역의 거래량의 합과 같기 때문에 거래량의 변화는 전혀 없고 단지 거래 내역의 당사자들을 알 수 없도록 한 것이다. 마스터노드를 이용한 채굴 방식은 이러한 거래 내역의 섞음(셔플)의 대가, 즉 채굴을 하여 보상을 받는 방식이다.

 

 

 

마스터노드는 채굴에 해시 알고리즘을 이용한 hashcash를 푸는 것이 아니라 전력량도, 많은 GPU도 필요하지 않는 것이다. 

 

 

그러므로 마스터노드를 이용하면 누구나 코인 자체만을 구입할 수 있으면 복리 효과의 코인 보상을 받을 수 있는 것이다. 시간이 지날 수록 많은 코인의 보상으로 코인을 되팔아 수익을 높일 수 있는 것이다.

 


 

댓글 0

0/1000

1
최신 게시글