시작하는 말
이전 글 “블록체인과 가상화폐(1)”에서 치킨 두마리를 증발시키고 닭다리과자를 먹으며 와신상담하는 도중 필자는 깨달음을 얻었다. 문명화된 도시에 태어났어도 사내란 무릇 싸움을 피할 수 없는 법이다. 지피지기면 백전불태라 하였으니, 흉폭한 코인판에서 살아남기 위해 상대를 알아보기로 하자.
코인판은 세계 각국의 세력들이 밤낮을 가리지 않고 자웅을 겨루며 그 결과 누군가는 웃고(얻고) 누군가는 울게(잃게)된다. 그리고 나는 치킨을 잃었다. 다시 치킨을 잃지 않기 위해 눈물을 삼기며 가상화폐의 핵심기술인 블록체인을 알아보고 치킨해방전선[1]에서 탈퇴하기로 하자.
블록체인
블록체인 뉴스와 기사를 통해 한 번쯤 접해봤을 법한 단어다. 블록체인은 낯설고 생소하기 때문에 훈민정음 Patch(feat.대왕세종)를 진행하여 “덩어리고리”라고 하자. 블록은 덩어리, 체인은 고리이므로 블록체인이란 덩어리들이 고리처럼 연결되어 있는 “덩어리고리”인 것이다.
“덩어리고리”라는 위와 같은 그림을 떠올릴 수 있다면 블록체인의 ㄱ~ㅎ에서 ㅅ까지 이해한 거나 다름없다.[2] 어렵게 느껴졌던 블록체인도 알고보면 단순한 구조에 지나지 않는다. 결국 블록체인이란, 블록과 블록이 서로 연결되어 거래내역을 네트워크를 통해 모든 사용자에게 공유하고 검증함으로써 안정성과 신뢰성을 담보하는 기술이다. 놀랍게도 우리는 블록체인의 모든 것을 알게되었다. 그럼 이상으로 글을 끝마친다.
[주의] 하단내용은 뇌 건강에 심각한 악영향을 초래할 수있습니다.
글의 왼쪽에 위치한 그림[3]과 제목에서 경고한 것처럼 위에서 언급한 것처럼 높은 강도의 학습은 뇌 건강에 악역향을 초래할 수 있으므로 하단에서 다룰 내용은 되도록 읽지 않는 것을 권고한다. 다만, 아주 튼튼한 뇌를 가진 극소수의 사람들(Like 문도[4])은 읽으면서 고통받는 것을 허(許)한다.
하단의 글은 읽지 않아도 전혀 상관없다. 우리가 “1+1=2”인 것은 알지만 “1+1=2”를 증명하는 방법은 몰라도 다른 사칙연산과 그 이후에 배우게 되는 수학적 원리를 이해하는데 그 어떤 문제가 되지 않는 것처럼 아래 내용을 몰라도 코인판에서 치킨 값을 버는 데에는 조금의 지장도 없다. 덧붙여 정확하지 않는 내용일 수도 있다.
“조금 더 깊은 내용을 알고 싶다”라고 한다면 아래의 가상화폐 입금 주소로 화폐를 입금해보자. (단, 0.2이더리움 또는 250 리플 이상의 송금은 정중히 사양하지만 더 보낸다면 부담스럽고 좋습니다, 감사합니다, 행복합니다.)
0xCFC05EB052499196B22DC71E4E9F92855F1CFF2E | |
rp2diYfVtpbgEMyaoWnuaWgFCAkqCAEg28 |
위의 각각의 가상화폐 개인지갑의 주소는 NGO 및 비영리구호단체의 개인지갑의 주소가 아닌 필자의 개인지갑 주소다. 만약 여러분이 코인을 송금하였다면 99%의 확률로 본인의 사리사욕 추구를 위해서 사용된 다는 것을 알아주길 바란다.
코인을 송금하도록 한 이유는 놀랍게도 물론 아래의 설명을 위함이였다.(순박한 순박씨가 금전을 요구할 리가 없잖아요!). 물론 여러분이 송금할거라는 기대는 전혀하지 않았지만, 혹시라도 입금한 분들의 경우(함정카드 발동) 아래의 그림과 같은 글을 보았을 것이다.
- 이더리움의 경우 48번의 Confirmation이 발생한 이후 계좌에 입금내역이 반영되며, 이 과정은 약 10분정도 소요된다는 안내 문구를 확인할 수 있다.
- 리플의 경우 1번의 confirmation이 발생한 이후 계좌에 입금내역이 반영되며, 이 과정은 10분 정도 소요된다는 안내 문구를 확인할 수 있다.
이더리움과 리플은 각각 48번과 1번의 confirmation이 발생한 이후 계좌에 거래내역이 반영되고소요시간은 동일하게 약 10분정도가 걸리는 것을 알 수 있다. 여기서 confirmation이란, 검증이란 뜻으로 덩어리 암호 값(Hash of Block)이 생성되면 한번의 검증이 이루어진 것 이다. 가상화폐 거래는 검증을 통해 신뢰성을 담보하고 검증의 결과로 새로운 덩어리(Block)가 생성된다.
가상화폐를 교환하고 거래내역을 반영할 때 필수불가결한 것이 덩어리의 검증이다. 검증 또는 작업증명이라고 불리는 이 과정은 중앙의 관리자가 없어도 다수의 익명 사용자들이 거래를 신뢰할 수 있게 만드는 핵심이며 이해하는 것은 무척 어렵다. 그러나 걱정하지 마시라, 이해가 안되면 이해한 척 하면 되니까!! 다음으로 블록체인의 검증에 대해서 살펴보자
[그림] 가내수공업방식으로 제작한 Hand made 블록체인 구조
위 그림에서 보이는 것처럼 덩어리는 머리와 몸통으로 이루어져 있다. 머리부분은 덩어리의 일방향 암호 값과 버전, 이전 덩어리 암호, 이진 암호, 덩어리 생성시간, 난이도, 임의의 값 등으로 이루어져 있고, 몸통부분은 거래정보들로 구성되어있다.
덩어리검증과 채굴 그리고 덩어리생성은 사실 하나의 행위라고 볼 수있다. 덩어리를 검증하는 것은 덩어리 머리에 있는 6가지의 값을 통하여 덩어리 암호 값을 도출해내는 행위이다. 덩어리 검증과정에서 덩어리 암호 값을 찾게되면 보상으로 가상화폐를 얻게되며 이를 위해 검증행위를 하는 것을 채굴이라고 부른다. 또한 덩어리 암호 값을 찾는 순간 새로운 블록이 생성되게 된다.
덩어리 암호값은 위의 그림과 같이 덩어리 머리의 6가지 값을 단방향 암호화한 값이다. 그러나, 단방향 암호화의 특성으로 인해 암호화 값에 대응되는 입력값을 계산하는 것은 불가능하다.
블록체인은 덩어리 암호 값을 특정 값이 아닌 범위(특정 값 이상 또는 시작값이 0을 몇 개나 포함하는지 등)로 설정하여 6가지의 요소 중 임의의 값(Nonce)을 변경하며 무작위 대입하여 덩어리 암호 값을 계산할 수 있도록 한다.
덩어리 암호 시작 값이 0을 많이 포함해야 하는 경우 여러 번 임의의 값(Nonce)를 대입하여야 하고 0을 적게 포함하는 경우 그보다 적은 대입 시도를 통해서 원하는 결과를 도출할 수 있다. 이 과정에서 난이도를 조절하는 것이 난이도 조절 값이다.
난이도 조절 값은 약 10분에 하나의 블록이 생성될 수 있도록 하며 이는 블록체인 네트워크에 참여하는 모든 컴퓨팅의 계산력을 기준으로 한다. 만약 일부 악의적인 사용자가 거래 내역을 위〮변조할 경우 이를 기반으로 Nonce값을 계산하여 조작된 블록을 만들어야 하는데, 확률적으로 공격자의 컴퓨팅 능력이 블록체인 네트워크의 모든 컴퓨팅 능력보다 우수해야 성공할 수 있다. 따라서, 블록체인은 사용자가 많을수록 블록체인의 안전성은 강해진다(This is 多多益善).
이렇게 생성된 덩어리 암호 값들은 이전 덩어리 값을 통해 서로 연결되어 있다. 하나의 거래를 위〮변조할 경우에 해당 덩어리의 암호 값과 연결된 덩어리들의 암호값도 변경된다. 변조된 트랜잭션을 기반으로 하나의 블록을 생성하였다고 하더라도 전체 사용자의 절반 이상을 점유하지 않는 이상 해당 거래는 승인되지 않는다.
그림과 같이 생성된 덩어리들은 블록체인 네트워크의 모든 참여자에게 전송되고 검증을 통해 과반수 이상의 승인을 받아야 인정된다. 네트워크분산저장기술을 통한 이 일련의 과정들은 다수의 익명 사용자들이 서로를 신뢰할 수 있게 해준다. 이러한 블록체인 기술을 통해 기존의 중앙집중형 Server – Client 구조의 금융시스템을 Peer To Peer 구조로 저렴하고 기존의 시스템 이상으로 안전하게 구축한 것이 가상화폐인 것이다.
“치킨 값을 벌어보자”라는 목표로 시작하였으나 글이 진행됨에 따라 Self 고통받고 있는 나를 발견할 수 있었다. 다행히 이런 상황을 대비해 책상에 Tiger Balm을 준비해두었다. 눈이 침침하한 것이 “호랑이 연고”를 눈에 바르고….눈이 보이지 않아 이만 글을 마치기로 한다….The end
[1] 코인판에서 치킨 값을 탕진하여 결국 치킨들을 해방시키는 집단 = 치킨 사먹을 돈까지 잃은 사람.
[2] ㄱ~ㅎ은 쌍자음을 포함하여 총 19개이고 ㅅ은 그 중 반인 10번째 모음이다.
[3] Biological Hazard를 나타내고 생물재해를 일으킬 수 있는 물질이나 구역에 취급자의 경각심을 높이기 위하여 사용된다.
[4] 리그 오브 레전드의 챔피언으로 아무리 두들겨 맞아도 “문도 가고 싶은 대로 간다”라고 말하는 튼튼한 뇌의 소유자이다.