가상화폐에 대한 이해 02

앞서는 적지 않았었는데 가상화폐는 각각 알고리즘을 달리 할 수 있습니다
현재 제가 적는 것은 비트코인을 기반으로 합니다

Image Source

블록

블록은 거래내역들의 묶음입니다
쓰레기들을 버리기 위해서 쓰레기봉투에 꽉꽉 채운후 묶은 한봉지
그것을 블록이라고 할 수 있습니다
비유가 좀 그렇지만 가장 쉽게 설명하려니 그랬는데
각 블록은 노드(정보를 받는 주체)들이 거래를 수집해서 알아서 채웁니다
여기서 블록들은 규칙만 만족하면 독자적으로 만듭니다
즉 대기중인 미승인거래들 중에서 원하는 것들을 골라서 채워넣는데
누구는 10개, 누구는 30개 채워넣은 식으로 블록마다 내용이 다르다는 겁니다
그리고 블록을 창출해낼때 고정된 채굴보상외에 블록내에 담긴
거래들의 수수료를 전부 챙기기때문에 당연히 높은 수수료의 거래들이
먼저 블록에 담기게 됩니다
즉, 수수료가 낮으면 낮을수록 거래가 오래걸리게 될 가능성이 높습니다

블록체인

어찌어찌해서 채굴과정까지 끝내고 이름표(해시값)를 부여받은 블록은
이전 블록의 다음위치에 놓이게 됩니다
이때 순서대로 나란히 놓인 각 블록들이 가진 고유 해시값은 다음 블록의
해시계산의 입력값에 포함되어 있으며 그럼으로써 앞과 뒤의 블록들이
연결되어 있음이 증명됩니다

Image Source
다음 블록을 만들때 입력값에 앞의 블록 해시값을 포함안시키면
인정이 안된다는 것입니다

여러블록과 주체인(Main Chain)

보통 블록체인은 하나라고 알고 있을테고 그게 이상적이지만
물리적으로 그렇게 되지 않는 경우가 많습니다
왜 그런지 살펴보죠
블록을 최초로 만든이는 블록을 사방에 전파합니다
그런데 네트웍이 별로라 잠시 버벅거리는 동안
B라는 인물이 간발의 차로 늦게 채굴을 끝낸 블록을 배포하기 시작했고
그걸 먼저 받은 노드들은 내가 보낸 블록은 최초라고 인정하지 않고 버려버립니다
한편 내가 보낸 블록들을 먼저 받은 이들은 B라는 인물의 블록을 버려버리죠
그 결과 블록체인이 둘로 나뉘게 됩니다

이때 잠깐 이런 의문이 생길 수 있습니다.
그렇다면 블록이 가볍도록 거래를 꽉채우지 않고 보내는 쪽이 유리할 수 있지 않은가?
네 맞습니다. 그래서 각 채굴노드들중에 블록의 최대크기를 다 채우는 노드는 없습니다

여하튼 체인은 두개로 나뉩니다. 이렇게 되면 어떻게 되는가..
각 노드들은 동기화시 가장 많은 노드들이 가진 체인을 진짜로 판단하고
다른 체인은 폐기시킵니다. 이 진짜 체인을 주체인(Main Chain) 이라고 합니다

Proof Of Work (작업 증명)을 하는 이유

@twinbraid/2b3hcu
앞서 채굴파트에서 블록해시값(이름표)를 찾아내는 작업을
작업증명(POW)이라고 하였습니다
http://www.convertstring.com/ko/Hash/SHA256
여기가서 'block' 이라는 글자는 놔두고 뒤에 'block1' 'block2' 이런식으로
숫자만 바꿔가면서 맨앞에 0 으로 시작하는 해시값을 찾아보면
고작 한자를 맞추는것도 힘들겁니다 그걸 0000000으로 시작한다거나 하는게
얼마나 빡신 과정인지는 확실히 알 수 있을겁니다
그럼 왜 이런 과정을 해야할까요

바로 보안을 위해서입니다
각 블록은 내용이 바뀌면 블록해시값도 다시 찾아내야하며
그렇게 블록해시값이 바뀌면 이후의 블록들 해시값도 죄다 다시 찾아내야합니다
이게 만약 그닥 힘든작업이 아니라면 그냥 슈슉 거리고 다 바꿔버리면되지만
무식한 컴터파워를 동원해야 한다면 얘기가 달라지죠
보통 새로운 블록은 조작해봐야 새블록안의 거래를 다 검증해버리기에 거기서
탈락해버립니다. 고로 이미 증명된 이전 블록을 조작해야되는데 앞서말했듯이
그걸 조작하면 해시값이 달라져서 다음 장부까지 조작해야됩니다
최소 작업증명을 두번이나 해야되죠. 한번하기도 빡신걸 두번하는 동안 10분을 넘기면
다음 블록이 생성되어 있고 20분 넘긴다면 두개 더 생겼을테니 영원히 조작증명질하다가
끝나는거죠.

마치며..

글을 쓰기전엔 진짜 암것도 몰랐던 가상화폐의 실체를 제대로 공부하게되었습니다
물론 아직도 많이 부족하고 잘못 알고 있는 것도 있겠지만
그래도 이제 다른 알트코인에 진입이 훨씬 수월해질 것 같습니다

아래 참고한 글들은 개략적 정리가 아니라 좀더 정확히 알고 싶다면
읽어보시길 추천드립니다
특히 일부러 블록을 안채운다던지 하는 이야기는 정말 흥미로웠으며
그외에도 가상화폐에 대한 쉽고 재밌는 설명이 많습니다

http://www.seunghwanhan.com/2016/08/bitcoin-scalability-controversy-and.html
https://ko.wikipedia.org/wiki/%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8
http://tadakichi.tistory.com/131
http://hanmomhanda.github.io/2016/01/23/BlockChain-%EA%B8%B0%EC%B4%88-%EA%B0%9C%EB%85%90/
https://organicmedialab.com/2014/02/20/bitcoin-addresses-transactions-and-wallets/
http://www.seunghwanhan.com/2015/05/blog-post.html
http://www.ddaily.co.kr/news/article.html?no=113278
https://technet.microsoft.com/ko-kr/library/aa998077(v=exchg.65).aspx
https://books.google.co.kr/books?id=3v6wAwAAQBAJ&pg=PT95&lpg=PT95&dq=%EC%95%94%ED%98%B8%ED%99%94+%ED%99%94%ED%8F%90+%EA%B3%B5%EA%B0%9C%ED%82%A4+%ED%95%B4%EC%8B%9C&source=bl&ots=4I4AJMtYUU&sig=7a1uX362fTRRBdd9OCiJmoXrRM8&hl=ko&sa=X&ved=0ahUKEwjLxr6-5KXPAhWIQpQKHTh_AhYQ6AEIMTAD#v=onepage&q=%EC%95%94%ED%98%B8%ED%99%94%20%ED%99%94%ED%8F%90%20%EA%B3%B5%EA%B0%9C%ED%82%A4%20%ED%95%B4%EC%8B%9C&f=false
http://d2.naver.com/helloworld/8237898
https://ko.wikipedia.org/wiki/SHA
https://namu.wiki/w/%ED%95%B4%EC%8B%9C
http://minix.tistory.com/397

H2
H3
H4
3 columns
2 columns
1 column
6 Comments