brunch

You can make anything
by writing

C.S.Lewis

by Ash Han 한승환 Dec 21. 2016

초보자를 위한 암호화폐 (cryptocurrency)

스펙분석/개념정립 - 비트코인,알트코인

암호화폐 개념 정립을 위한 글입니다.






하단과 같은 스펙(Specification)을 지닌 코인을 분석해보겠습니다.


예제로 분석해 볼 코인은 블랙코인(Blackcoin)입니다.


*대부분의 코인이 아래와 동일한 스펙기준을 가지고 있습니다.


아래의 스펙을 살펴보세요 :)


------------------------------------------------------------------------

https://bitcointalk.org/index.php?topic=469640.0





1.

No premine. No IPO.


2.

Specifications

Block time: 64 seconds

Difficulty retarget: every block

Nominal stake interest: 1% annually

Min transaction fee: 0.0001 BC

Fees are paid to miners

Confirmations: 10, maturity: 500

Min stake age: 8 hours, no max age

P2P port: 15714, RPC port: 15715


3.

Proof of work (done)

Algo: scrypt

Block reward: 10000 BC, no halving

Max height: 10000 (after this network will not accept PoW)

P2Pool source: https://github.com/rat4/p2pool-blackcoin


--------------------------------------------------------------------------


하나씩 천천히 아래에서 다시 살펴보면서 분석해보겠습니다.




1.

No premine.

코인을 공식 런칭하여 채굴자들이 채굴을 하기 전에, 따로 미리 운영진에서 채굴을 해두는 경우가 있습니다. 미리 테스트를 해본다는 의미도 있고, 운영진의 수익보전의 의미도 있습니다.


노 프리마인(No + Pre + Mine)은, 미리 채굴을 안해두었다는 뜻입니다.

운영진도 여타의 채굴자와 동일하게, 런칭이 된 다음에야 채굴을 시작할 수 있다는 뜻입니다.



No IPO.

IPO(Initial Public Offering)는 주식을 해보셨던 분이시면 익숙할 용어입니다.


일반적으로 코스닥이나 나스닥 등에 공개상장되어, 최초로 외부투자자들이 공개적으로 해당 회사의 주식을 구매할 수 있게 되는 것을 뜻합니다.


코인에서의 의미는 물론 약간 다릅니다.

코인계에서 IPO는 주식을 사는 것이 아니라 그 코인 자체를 사는 것입니다.

개발진들도 자금이 필요하기 때문에 미리 코인을 파는 것인데요,

1) '개발이 끝난 코인'을 마케팅 비용이나 생활비 등을 충당하기 위해 IPO하는 경우도 있고, 

2) '개발이 아직 시작조차 되지 않은 코인'을 개발비 충당 등을 목적으로 파는 경우도 있습니다. - 이 경우 실제로 코인을 줄 수는 없기 때문에, 나중에 주겠다는 약속만을 믿고 거래하는 수 밖에 없습니다.


먼저 판매공고를 올립니다. 

그리고 코인의 비전과 개발진의 역량 등을 써서 PR을 하겠죠.

그리고 판매 비율을 설정합니다.


주로 비트코인으로 신규코인 IPO에 참여하게 되는데요,

1BTC면 1,000블랙코인과 교환을 해주는 식입니다.

초기에 참여자는 교환비가 더 크고 시간이 지날 수록 점점 더 줄어들어 나중에는 1BTC로 100블랙코인만을 교환해 주는 등의 '데크레센도(Decrescendo)' 프로모션 기법을 사용하기도 합니다.


이렇게 운영진은 미리 비트코인을 받아서 사용할 수가 있고,

구매자는 초기에 싼 가격에 알트코인(Altcoin)을 살 수가 있게 됩니다.





2.

Specifications

Block time: 64 seconds

하나의 블록이 매 64초마다 생성이 된다는 뜻입니다.



Difficulty retarget: every block

매 블록마다 난이도가 재조정 된다는 뜻입니다.

비트코인의 경우, 매 2016블록마다 난이도가 재조정되죠.

(이런 알트코인의 경우, 매블록마다 난이도가 조정되지 않는다면 다음과 같은 문제가 생길 수 있습니다. - 거대한 채굴풀에서 알트코인을 채굴해서 난이도를 엄청나게 높여놓고, 해당코인 가격이 떨어지자 돈이 안되니까 떠나간다. 그 다음 개인이 채굴을 하려니까 너무나 난이도가 높아서 영원히 아무도 채굴을 하지 못하는 경우)



Nominal stake interest: 1% annually

명목이율은 매년 1%라는 뜻입니다.

여기서 명목이라는 말을 쓴 것은, 일반적인 금융에서 명목/실질의 뜻이 아닙니다.

(*금융에서의 실질이자율은=명목이자율-인플레이션율)

코인에서 명목이율은, 1%의 이율에 딱 맞추어 주지 못할 수도 있기 때문에 '명목(Nominal)'이율이라고 부르는 것입니다. 사실 코인계에서는 정확히 '매년 1%' 이런식으로 맞추는 것은 거의 불가능(한번 세팅된 블록 당 이자율을 단위 당 끊어서 조정불가)합니다.


당신이 지갑에 100개의 블랙코인을 사용하지 않고 1년간(더 정확히는 'Min stake age: 8시간'을 포함해서 '1년 8시간') 보관하고 있다면, 그 1년이 마치는 시점에 101코인이 됩니다. - 물론 1년 뒤에 1블랙코인이 '짠'하고 생기는 것이 아니라 매 블럭마다 소량씩 모이게 됩니다.


여기서 한 가지 더 깊이 살펴보자면, 이자에도 이자가 붙는 '복리 시스템'이기 때문에, 실제로는 100코인이 1년에 이율이 1%라면 1%이상을 수령하게 됩니다. (당연한 이야기이지만, 블록생성 주기(=이자지급주기)가 짧을 수록 복리효과는 커집니다)



Min transaction fee: 0.0001 BC

코인을 지갑끼리 이체를 할 수가 있는데, 이러한 이체에 드는 최소 수수료가 0.0001 블랙코인이라는 뜻입니다.


이러한 최소한의 수수료마저 없다면, 의도적으로 대량의 이체를 무한정 만들어내서 네트워크의 처리능력을 마비시키는 일종의 도스(DOS)공격이 가능해집니다.



Fees are paid to miners

당신이 지불하는 위와 같은 이체수수료는, '해당 수수료가 지불된 이체를 첫번째로 컨펌해주는 블록'의 채굴자에게 주어집니다.


즉, 간단하게 당신의 거래를 확인(Confirm)해주는 채굴자가 해당 이체수수료를 받아갑니다.



Confirmations: 10, maturity: 500

10컨펌(Confirmations: 10)이라는 말은, 10개의 순차적인 블록들에서 당신의 이체내역을 확인(Confirm)해 주어야만, 해당 이체받은 코인을 재사용(다시 다른 곳으로 이체)할 수 있다는 뜻입니다.


즉, 당신이 1블랙코인을 수령받았으면, 일반적으로 10컨펌이 이루어지(10개의 블록이 쌓이는)는 시간(64초*10=640초)인 640초 가량이 지나야지 다른 곳으로 이체를 할 수 있다는 뜻입니다.


성숙도 500컨펌(maturity: 500)이라는 말은, 채굴자에게 해당되는 말입니다.

채굴자들은 누군가로부터 이체를 받는 것이 아니라, 블록자체(coinbase)에서 신규코인을 보상받게 됩니다. 즉, 세상에 없던 코인이 새로 생기는 것이지요.


따라서 보안성이 훨씬 낮아지게 됩니다. 따라서 500컨펌을 기다려야만 사용을 할 수 있게 됩니다.


즉, 채굴자들이 채굴을 통해 블록으로부터 새로이 발급받은 신규생성코인은 약 8시간 50분(64초*500)가량 이후에야 디른 지갑으로 이체를 할 수 있는 것입니다.

-물론 8시간 50분처럼이라는 시간이 정확히 나올 수는 없는데, 매 블록마다 난이도가 재조정되고 투입되는 해시량도 유동적으로 변화하기 때문에, '실제로' 1컨펌에 걸리는 시간은 계속해서 바뀌게 됩니다.



Min stake age: 8 hours, no max age

최소 8시간은 코인을 지갑에 그대로 두고 있어야지만, 이자수령이 시작된다는 뜻입니다.



P2P port: 15714, RPC port: 15715

노드(클라이언트)의 네트워크 연결을 위한 포트 번호입니다.




3.

Proof of work (done)

코인(블록체인)이 작동하는(합의를 보는=공통의 장부를 만드는) 방식에는 여러가지가 있는데, 현재까지 가장 크게 검증된 방식은, POW(Proof of Work)와 POS(Proof of Stake), 그리고 그 둘을 합친, 'POW/POS Hybrid'입니다.


현재 블랙코인은 POW/POS Hybrid였다가, 순수 POS로 전환이 되었다고 볼 수 있습니다. POW는 종료(done)된 상황인 것입니다.


POW는 채굴자들이 해시를 가지고 '채굴(Mine)'을 해서 블록체인을 만들어(늘려) 나가는 방식입니다.


POS는 상기 된 것처럼, 사람들이 각자의 지갑에 얼마나 많은 코인(지분)을 가지고 있는지에 따라 블록체인이 만들어지는 방식이고요.



Algo: scrypt

'암호화 알고리즘(Algorithm)'이 스크립트 방식(Scrypt)이라는 뜻입니다.


블록이 만들어질 때에는 '해싱(Hashing)'이라는 과정을 거칩니다. 해시방식은 여러가지가 있는데 기본적으로 해시라는 것은, 어떠한 정보를 '암호화'처리하는 것이라고 생각하시면 됩니다. 비트코인 등이 '암호화화폐(Crypto Currency)'라고 불리우는 이유가 여기에 있습니다. 여러가지 암호화 방식이 있겠죠? 


단순화(simplification) 시켜보자면, 당신이 어떠한 영어 알파벳을 쓸 때, 'A는 0'로, 'B는 1'로, 'C는 2' .... 'Z는 25' 등으로 암호화한다고 순차적으로 상정해 봅시다.


그러면 '7 14 22 0 17 4 24 14'는 무슨 말일까요?

-"HOW ARE YOU"입니다.


이번에는 정 반대로, 함께 숫자를 알파벳으로 암호화(encrypt)해보겠습니다.

오늘날짜인, '2015 03 24'를 한 자리씩 끊어서 알파벳과 대입시키면, 

-"CABE AD CE"가 됩니다.

대충 이런것을 암호화라고 생각하시면 됩니다. 현대 대부분의 암호화기법은 '소수(PRIME NUMBER)'의 비대칭성에 원리를 두고 있습니다.


물론, 위와 같이 허접하지는 않습니다. 현재 컴퓨터 성능기준으로 수천년이 걸려도 붕괴시킬수 없다고 알려진 것이 비트코인의 해시 알고리즘인 'SHA-256'방식이니까요.


Scrypt알고리즘 방식은 일반적으로 그래픽카드로 채굴하는 것이 그나마 효율이 높다고 알려져 있습니다. 


그 외에도 'blake, bmw, groestl, jh, keccak, skein, luffa, cubehash, shavite, simd, echo'등의 알고리즘 방식이 있으며, 이러한 알고리즘을 여러개 섞어서 돌려가면서 순차적으로 적용하는 순환(revolving)방식의 알고리즘(X11, X13 등)도 있습니다.



Block reward: 10000 BC, no halving

각 블록의 블록생성 보상이 '10,000블랙코인'이라는 뜻입니다.


위에서 배운 사항을 적용해 본다면, 매 블록마다 새로이 생성되는 코인은 10,000코인이며, 이러한 코인은 500컨펌을 받아야 사용이 가능하겠군요.


No halving(Halve=become half), 즉 반감기가 없다는 뜻입니다.

비트코인의 경우 매 210,000블록마다 반감기가 이루어 집니다.


보상량이 반으로 감소한다는 뜻인데요, 처음 비트코인의 블록보상량은 50btc 였습니다. 21만블록(약 4년)이 지난 2013년말에, 25btc로 반감하였습니다. 또 4년 뒤(2017년 말)에는 12.5btc로 다시 반감하겠지요.


블랙코인은 이렇게 반감하지 않고, POW종료시까지 계속해서 10,000코인씩 신규생성 되는것이군요.



Max height: 10000 (after this network will not accept PoW)

POW로 인해 생성되는 블록의 높이입니다.


1) 10,000블록이 최대라는 것입니다. POW로 받을 수 있는 컨펌도 10,000개가 최대이겠군요. 그 이후로는 네트워크에서 POW를 거부할 것이니까요(after this network will not accept PoW).


2) POW가 아까 채굴을 통한 블록생성방식이라고 했으니, 채굴로 인해 신규생성할 수 있는 블랙코인의 최대갯수는 "1억 BC(블랙코인)=10,000블록*10,000BC(각 블록 보상량)"입니다.


3) POW가 종료되는 1만번째 블록 이후부터는, 순수 POS방식으로 블록들이 생성되게 됩니다.



P2Pool source: https://github.com/rat4/p2pool-blackcoin

P2Pool, 즉 '채굴을 할 수 있는 풀'을 만드는데 필요한 소스 주소입니다.


채굴을 하려면, 싱글채굴(혼자)을 할 수도 있겠지만, 채굴풀(단체)을 통해 채굴을 할 수도 있습니다.


아까 채굴(블록생성=블록해싱)에 성공하는 노드(채굴자)가 10,000개의 블랙코인을 보상 받는다고 했잖아요? 이렇게 채굴에 성공하는 '단 한명'의 노드만 채굴보상을 받게 됩니다. 비트코인도 마찬가지입니다.


따라서 당신이 혼자서 채굴을 하게 되면, 영원히 한번도 채굴을 못할 수도 있겠네요. 다른 더 많은 해시파워(컴퓨팅파워)를 가진 채굴자들이 당신을 제치고 채굴을 다 해갈테니 말입니다.


차라리 그러한 대형 채굴자들에게 당신의 컴퓨팅 파워를 빌려주고 그 지분만큼 보상을 나눠달하고 하는 것은 어떨까요?


그렇게 해서 만들어진 것이 채굴풀입니다. 풀의 주인에게 수많은 채굴자들이 컴퓨팅 파워를 빌려주고, 그것은 인계 받은 한 명의 노드(채굴자)가 대표하여 채굴을 하게 됩니다. 그리고 채굴에 성공하면, 그 기여도(일반적으로 컴퓨팅파워 비율)에 따라, 채굴성공하여 받은 코인을 나누어 주게 됩니다.


*아까 배운 내용에 따르면, 코인성숙도(maturity)가 500컨펌이니까, 500컨펌이 지나서야 비로소 채굴한 사람이 당신에세 코인을 나누어 줄 수 있겠네요. 지금 채굴을 한 코인은 '약 8시간 50분(64초*500)'이 지나야 이체를 해줄 수가 있겠군요.


--------------------------------------------------------------------------------------------------



초보분들이 졸업하는데 도움이 되기를 바래봅니다.




작가의 이전글 플랫폼 경제학 Platform economy
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari