비트코인과 블록
비트코인에 대해 논하려면, 비트코인이 돌아가는 과정부터 알 필요가 있다.
비트코인의 구조는 무엇인가?
[블록의 구성, www.jenitennison.com]
비트코인은 블록과 체인으로 이루어져 있다. 여기서 블록은 실질적인 정보를 가지는 하나의 덩어리를 의미하고 체인은 추상적으로 블록과 블록을 연결하는 것으로 이전 블록이 가지는 해시값을 통해 만들어진다. 블록 안에는 블록이 만들어진 시간을 의미하는 timestamp와 머클 트리 구조를 가지는 트랜잭션(거래) 정보들, 그리고 난스(nonce)가 있는데 이들에 대해서는 이후에 자세히 설명하도록 한다.
채굴(Mining)이 왜 필요한가?
채굴은 비트코인에 있어서 없어서는 안될 요소이다.
비트코인을 모르는 사람에게 있어서 채굴은 돈이 되는 작업일 뿐이지만, 비트코인 시스템에게는 블록을 만들어내는 중요한 작업이다.
이 작업이 없다면 블록체인은 더 이상 블록을 만들지 못할 것이고, 트랜잭션 또한 저장되지 못할 것이다.
비트코인은 PoW(Proof of Work)라는 방식을 통해 블록을 만들어내는데 PoW는 Nonce보다 작은 자기자신의 해시값을 만들어내는 과정이다.
PoW를 다른 말로 작업증명이라고 하는데, PoW는 많은 노동력을 필요로 한다. 한 때 가성비 좋은 그래픽 카드가 시장에 남아나질 않았던 이유도 다 PoW라는 과정이 정말 많은 노동력을 필요로 하기 때문이다.
초기의 비트코인과 지금의 비트코인이 필요로 하는 노동력은 아주 많이 다른데, 노동력이 많이 필요한 것을 난이도가 높다고 한다.
비트코인은 분산 데이터베이스와 같으므로 어떤 서버에서 난이도값을 받아올 수 없다. 즉, 블록이 난이도에 대한 정보를 갖는데 nonce가 그것이다. 앞서 말했듯 비트코인은 자기 자신에 대한 해시값을 찾기 위해 nonce보다 작은 값의 해시를 찾아야 한다. 만약 nonce가 2라면, 엄청 많은 해시값의 가능성 중에서 1이 되는 것을 찾아야 하며 이는 지금(2018.04)의 난이도보다 몇 배는 높을 난이도일 것이다.
채굴자에게 왜 보상을 주는가?
이 문제에 대한 답은 위에서부터 나왔듯이 '비트코인이 필요로 하는 블록을 만들어주었기 때문'이다. 비트코인은 채굴자에게 일정량의 BTC를 주며 이는 난이도에 따라 제공량이 달라진다. 물론 보상을 발견한 이에게만 주는 것은 아니다. 비트코인을 거래할 때 발생하는 수수료를 채굴자들에게 지급하는데 만약 수수료 제공을 하지 않았다면 노동력을 많이 보유한 소수만 남게 될 테고 이는 51% 공격을 손쉽게 만들 수 있을 것이다. (물론 이는 경우의 수일 뿐이며 실제로는 변함없을 수도 있고, 노동력이 적은 사람은 지금도 못 받고 있다. 공격 문제도 이해관계나 현실성을 고려하면 가능성도 적어질 것이다)
트랜잭션과 머클 트리
트랜잭션은 머클트리로 되어 있는데 리프노드의 부모노드는 자식노드들의 해시값을 이용하여 자신의 해시값을 만든다. 그리고 리프노드의 부모노드의 부모노드는 자신의 자식 노드들을 이용하여 해시값을 만든다. 이 과정을 반복하면 루트 노드의 해시값이 정해진다.
'왜 이렇게 귀찮은 일을 하는가' 하면 변조를 막기 위함이다. 만약에 트랜잭션 중 하나를 내가 원하는 결과로 변경했다고 하면, 해당 노드의 해시값은 바뀔 것이다. (해당 트랜잭션 정보를 이용하여 해시값을 만들기 때문이다) 머클 트리는 자식 노드의 해시값 하나가 바뀌면 루트 노드의 해시값도 필연적으로 바뀐다. 그렇게 되면 해당 블록의 해시값도 바뀌게 된다.
참고로 비트코인은 채굴량이 정해져 있고, 정해진 양을 채굴하게 되면 그 이상부터는 블록은 만들어져도 블록 생성에 대한 보상은 나오지 않는다. (수수료는 이전처럼 계속 받을 수 있다)
이 때문에 블록 생성 보상이 없어질 경우 네트워크가 어떻게 될지는 아무도 모른다. 비트코인이 최고가를 갱신하며 호가한다면 수수료만으로도 충분할 것이므로 네트워크는 유지될 것이다. 그러나 채굴자들에게 큰 이득이 없거나 손익분기를 넘지 못한다면 네트워크가 유지되지 않을 것이므로 비트코인은 자연스레 사라질 것이다.
'블록체인 > 비트코인(BTC)' 카테고리의 다른 글
트랜잭션과 UTXO (0) | 2018.05.06 |
---|---|
광풍의 비트코인과 블록체인 (1) | 2018.05.05 |