반응형

블록체인에 대해 관심이 많지만 정작 찾아봐도 저렴하고 좋은 대단한 기술이다! 어디 어디에서도 쓴다!라는 글만 있고

기술적인 관점에 대한 정보를 찾기 힘듭니다.

그래서인지 개인적으로 저에게 질문하시는 분들이 있고 그때마다 조금 간추려서 설명을 하곤 하는데

그 애기를 블로그에도 적어봅니다.

※블록체인의 기본 개념은 같지만 여러 방향으로 발전하는 여러 블록체인이 많습니다. 설명과 해당되는 블록체인도 있고 아닌 블록체인도 있습니다.

※어디까지나 개념 전달을 위해 자세한 설명은 일부러 대략적이나 다른 예를 들면서 설명합니다.(채굴 알고리즘이라던지...)


-목차-

1. 블록체인 이란?

2. 채굴과 거래 그리고 채굴 풀

3. 블록 체인과 거래소 

4. 블록체인을 도입하기 전 생각해볼 점


======================================== 주의선 ========================================


채굴이란?



저번 글에서 블록체인에대해 대략적인 모습만 표현하면서

블록과 블록의 연결이 정상인지 검증한다라고 쓴 내용을 보충합니다.



채굴에 대해 설명하기 전에 약간의 암호학에 대해서 대충 설명하자면

초등학교 수학 문제에서 보던 이런 문제에서

결과값 12를 보았을때 중간에 어떤 과정을 거쳤는지 알면(암호 키)

쉽게 원래 어떤 숫자였는지 알 수 있습니다.


사실 암호학에서는 암호화가 아니라 무결성을 검증하기 위해 해시라는걸 사용하는데

위의 그림과 같이 결과 1과 중간에 어떤 일이 일어났는지의 과정을 알고 있어도

처음의 값을 추론하기 힘들게 만든것이 해시 알고리즘입니다.

(물론 그림의 저런 식을 쓰진 않고 지금 글을 쓰면서도 조금 적절하지 않았나 생각도 듭니다.)



이런 값을 블록의 해시를 사용해서

블록과 블록이 서로 맞는 해시값인지 검증이 가능하게 됩니다.



그럼 예를 들고 있는 해시1과 해시 4가 연결이 되었고

4와 연결이 되는 어떤 값을 알려면 어떻게 할까요?


각각의 해시 알고리즘마다 계산을 줄이는 방법들에 대해 연구도 있지만

기본적으로 1,2,3,4~~ 쭉 일일이 대입을 해보는 방법을 사용합니다.


이렇게 쭉 대입을 해보면서 맞는 값을 찾는 과정을 채굴이라고 부릅니다.





 블록체인의 거래와 수수료


위에서 새 블록 값을 발견하는것이 채굴이라는 것 까지만 설명했는데

일반적으로 애기하는 코인이라는 것이 이 채굴에 대한 보상으로 지급이 됩니다.

(역시나 블록 체인마다 방법이 다르기도 합니다... 네트워크를 유지한 보상으로 코인을 주던지 아예 없던지...)


채굴에 성공하게 되면 채굴 성공에 대한 기본 보상과

(비트 코인의 경우 코인의 발행량이 정해져 있고 전부 발행이 되면 이 보상이 없어짐)


일반적으로 코인을 거래를 하려면 채굴자에게 수수료를 지급하고

새로 발견된 블록에 자신의 거래 내역을 저장을 하는것으로 거래가 완료?됩니다.

 


여기서 약간 문제?가 발생하는데 이 수수료가 블록에 내 거래 내역을 저장해주게 하는 고정된 금액이 아니라 

수수료를 많이 내는 사람부터 블록에 저장되게 해주는 수수료라는 것입니다.

(은행의 이체 수수료가 아니라 택시의 따불! 하면서 팁을 주어서 다른 사람보다 먼저 택시를 잡듯)


블록마다의 저장 가능한 공간은 유명한 모 코인의 경우 1mb정도에

블록은 보통 10분에 하나가 발견됩니다.


저장 가능한 공간은 유한하고

(택시는 한정되어있고)

먼저 탑승하려고 다른 사람과 비슷하거나 비싼 수수료를 지불하지 못하면

블록에 기록이 저장되지 못해 거래가 지연되는 경우가 발생합니다. 

(택시를 못잡고 기다리는 상황 발생)


이런 문제점을 해결하기 위해 거래소(송금서비스)라는게 있고

거래소에 대해서는 거래소 항목에서 보충 설명 하겠습니다.




블록체인 거래의 문제점2 거래 취소와 거래 완료 시간


위에서 거래를 설명하면서 수수료에 대해서도 설명하면서

블록체인 거래의 문제점을 애기했지만

여러 블록체인에 대한 반대 의견에 대한 애기를 보면 블록체인 거래를 하는데 20~30분 걸린다는 애기가 있습니다.

요즘 몇초안에 송금한다로 광고도 하는 세상에 20~30분 걸리는건 확실히 문제라고 할 수 있습니다.


그래서 거래소(송금서비스)가 있고 거래소 항목에서 보충 설명 하겠지만

일단 여기서는 왜 20~30분이 걸리는지를 알아보겠습니다.






해시에 대해서 잠깐 보았지만 해시에는 어쩔수없는 특징이 있습니다.

해시로 표현되는 값에는 한정이 되어있고

(그래서 위의 수식은 잘못 예를 들었다고 후회중...)

입력할 수 있는 값은 무한하다보니 해시의 결과값이 같은 경우가 발생됩니다.(해시의 충돌)


(해시에 대한 조금 더 자세한 설명은 네이버 지식백과에서)

http://terms.naver.com/entry.nhn?docId=3432003&cid=58437&categoryId=58437&expCategoryId=58437



만약 이전 블록에 해당하는 해시값을 가진 블록이 거의 동시에 발견이 되면 이제부터 큰 문제가 발생하게 됩니다.

일단은 변함없이 각각의 블록에 거래 내역이 추가되며 거래가 진행이 되지만




먼저 지속적으로 새 블록을 발견하며 체인을 연결한 쪽은 거래가 지속되지만

그렇지 못한 쪽은 거래가 전부 취소되게 됩니다.


그래서 유명한 모 코인은 블록 하나를 발견하는데 보통 10분정도가 소비되므로

블록 몇개가 더 이어질때까지 기다려야 취소될 걱정없이 거래가 확정되므로 30분정도 걸린다 라는게 이 현상입니다.



지금 너무 반복하는것 같지만 그래서 거래소를...

 



-덤-



채굴기란?


단순한 계산이지만 여러 숫자를 대입해보면서 값을 찾기 위해 동시에 계산을 작업하는 성능이 요구됩니다.

보통 코어라고 부르면서 동시에 작업이 가능한 CPU의 경우 2~16코어등

사람 2~16명이 숫자를 분담해서 동시에 계산을 하신다고 생각하시면 편합니다.

(클럭은 계산 속도, 코어는 동시 작업 수)



하지만 CPU는 복잡하고 다양한 연산을 하기 위해 설계되어서 코어수가 많지 않습니다.



반면 GPU 코어는 원래는 계산은 단순하지만 동시 연산이 중요한 그래픽 쉐이더를 위해 그래픽 카트에는

1000개가 넘는 코어가 있습니다. 그래서 그래픽 카드를 6개를 장착하여 몇천개의 계산을 동시에 합니다.




GPU도 계산을 위해 몇가지 명령어를 실행시켜야 계산이 되는데

그것보다 빠르게 하기 위해 반도체 자체에 다른 작업은 못하고 오직 해시 알고리즘만 풀도록 설계를 하는  

전문 채굴기들도 존재합니다. 소문으로는 비트코인의 경우 사실상 다 이런 채굴기로만 채굴이 가능하고

이런 채굴기의 사용을 막도록 보완한게 이더리움 변화되었습니다.



채굴 풀이란?


엄청난 그래픽카드들과 채굴기까지 동원하여 계산을 분담하고 있지만

채굴 풀은 채굴자들끼리 더 계산을 분담해서 작업을 하도록 만든 조직입니다.(협동 조합같은 느낌)



이런식으로 일을 분산하고 이중 하나가 블록 채굴에 성공하면

풀에 소속되어있는 구성원들에게 기여도(얼마나 많이 계산해보았냐)에 따라 보상을 나누어 갖는 시스템입니다.


보통 풀을 운영하는 사람도 수수료를(조합비 처럼) 얻게 되는데

열심히 체굴하는 체굴자나 보안이나 서버가 크게 중요한 거래소보다 가장 편하고? 안전하게 코인을 벌 수 있는 승리자가 아닐까 싶습니다...


 



반응형

+ Recent posts