[연재글] BlockChain - 05. Block, Chain
1편 : https://orbi.kr/00012313138
2편 : https://orbi.kr/00012318427
3편 : https://orbi.kr/00012334500
4편 : https://orbi.kr/00012341994
이 글은 암호화폐와 그 근간을 이루고 있는 블록체인에 대해 살펴보는 글이지 비트코인과 이더리움 시장을 예측해 투자 타이밍을 조언하는 글이 아님을 알려드립니다. 이걸 본다고 투자하는데 도움이 되지 않습니다. 기술은 개발자에게 투자는 주갤러에게.
안녕하세요 벌써 다섯번째 글이네요. 처음 시작할때는 글 다섯개정도면 끝날 줄 알았는데 아직도 못 쓴 내용이 너무 많네요. 10편까지는 써야 할 것 같기도 하고... 여튼 완결까지 열심히 달려보도록 하겠습니다. 이번 글은 쓰다보니 내용이 자꾸 깊어지는 것 같아서 어떻게 조절해야하나 고민하다 보니 텀이 길어졌습니다. 앞으로 계속 어려워질 것 같은게 함정...
저번 글에서는 블록체인을 만들어내는 노드에 대해 설명을 드렸는데, 이번 글에서는 그렇게 노드에서 만들어내는 블록이 어떻게 해서 체인을 이루고 있는지, 그렇게 체인을 이루고 있음으로 해서 어떤 특징들이 또 있는지 알아보도록 하겠습니다.
1. Block
일단 블록이 어떻게 생겼는지 그 구조를 알아보도록 하겠습니다. 이전 글에서 봤던 그림에 보면 블록이 가진 정보는 다음과 같습니다.
Prev. Hash / Nonce / Timestamp / Difficulty / Merkle Root // Tx. Infos
// 를 기준으로 앞에 있는 녀석들을 묶어서 Block Header 라고 하고 뒤에 있는 것을 Block Body 라고 합니다. 간단하니 Body를 먼저 설명 드릴게요. 여기에는 지난 글에서도 설명드렸듯 Tx. Pool에서 고른 거래들이 들어갑니다. 거래를 고르는 기준은 각 노드가 자기 맘대로 설정할 수 있는데, 보통은 풀에 들어와 머무른 시간과 거래에 딸린 수수료 등을 기준으로 합니다. 1편인가 2편에서 어떤 거래는 검증되기까지 한시간씩 걸리기도 한다는 말씀을 드렸었는데요, 이게 바로 그 이유에요. 수수료를 낮게 책정하면 새 블록 안에 포함될 확률이 낮아지기 때문에 오랜 시간 블록에 들어가지 못하고 계속 풀에서 기다려야 하죠. 그러다보면 검증을 받을 때까지 오래걸리는거에요. 뭐 이 안에 거래정보만 들어가는게 아니라 그걸로 만든 거래 해시값이라거나 하는 것들도 들어가기는 하는데, 그건 나중에 머클트리에 대해 설명할 때가 되면 다시 짚도록 하고, 블록 헤더가 중요하니 그걸 쭉 훑어보겠습니다.
2. Block Header
블록 헤더에 든 것들을 한개씩 살펴보죠.
1. Prev Hash : 이건 이전 블록의 해시값을 말하는거에요. 이전 블록의 해시가 다음 블록에 포함되기 때문에 블록이 체인을 이룬다고 하는거에요. 이전블록의 해시를 가지고 있기 때문에 어떤 블록 하나를 알면 그것보다 과거의 블록은 전부(그러니까 0번 블록까지) 거슬러 올라갈 수 있어요.
2. Timestamp : 이 블록이 언제 생성됐는지를 알려주는 타임스탬프입니다. 보통 시차랑 블록이 전파되는데 걸리는 시간을 고려해 두시간정도까지 오차를 허용하고 있다고 해요. 이 이상 타임스탬프가 멀리 차이나면 다른 노드에서 이 블록을 검증할 때 유효하지 않다고 판단하고 거절해버립니다.
3. Nonce : 한번 쓰인 숫자(Number + Once) 의 줄임말이라고 합니다. 블록 해시를 찾는데 쓰이는 부분이에요. 정확히 어떻게 쓰는지는 밑에서 설명드릴게요.
4. Difficulty : 문제의 난이도를 뜻합니다. 비트코인은 평균 10분에 한번씩 새 블록이 채굴되는 것을 목표로 하고 있어요. 그래서 대략 4년(21만블록정도)에 한번씩 그간 생성된 블록들의 생성시간을 살펴보고 난이도를 조절합니다. 이 난이도 조절은 모든 Full Node에서 같은 수식에 따라 독립적으로 적용돼요. 요것도 아래에서 블록을 생성하는 과정을 설명드리면서 한번 더 등장할겁니다.
5. Merkle Root : 되게 처음보는 이름이죠? 머클 루트라고 읽는데, 이건 Lightweight Node에서 거래 검증을 하는데 쓰기 위해 있는 녀석이에요. Block Body 안에 있는 Tx. 정보를 압축한 해시값이라고 보시면 됩니다.
3. Hash? HASH?
자꾸 1편부터? 여튼 해시라는 말이 자꾸 나오는데 이게 글을 쓰다 보니 당연히 알 거라고 생각하고 자연스레 넘어갔던 것 같네요. HASH 라는건 쉽게 설명하면 어떤 입력값이든 고정 길이의 결과값으로 바꿔주는 함수에요. 보통 비트코인에서는 SHA256이라는 해시함수를 쓰는데, 뭐든지 여기에 통과시키면 길이가 256인 결과값이 나옵니다. 같은 입력값을 넣으면 항상 같은 출력값이 나와요. 그런데 해시값을 안다고 원래 입력값을 알아낼 수는 없어요. 왜냐하면 가능한 입력값의 갯수보다 출력값의 갯수가 적기 때문이죠. 뭐 이런걸 두고 전문용어(?)로는 단사함수가 아니라고 한다네요. 어쩔 수 없이 같은 해시값을 가지는 둘 이상의 입력값이 존재할 수밖에 없어요. 하지만 그건 매우매우매우매우 드물게 일어나는 일이기 때문에 보통은 입력값이 다르면 출력값도 다르다고 할 수 있죠. 해시암호의 큰 이슈중 하나가 Collision인데, 아직까지 그런 면에서 SHA256은 안전하다고 평가받고 있어요. 그리고 복잡한 함수를 통과하기 때문에 입력값이 약간만 변해도 결과 해시는 크게 변해요. 그래서 해시값은 예측이 불가능하다고도 합니다. 간단하게 정리하자면 해시는 입력값에 1:1로 대응되는 함수 결과값이고, 예측가능성이나 규칙이 존재하지 않는다고 할 수 있겠네요.
4. Find Block Hash
블록을 만드는 과정은 블록 해시를 찾는 과정이라고 저번에 말씀드린 적이 있을 거에요. 위에서 말씀드렸던 해시함수를 이용해 특정 조건을 만족하는 해시값을 찾는 작업이 바로 블록 해시를 찾는 과정입니다. 그 조건이 바로 Difficulty인데, 이것보다 작은 해시값을 찾으면 블록 생성에 성공하는거에요. 물론 답은 하나가 아니겠죠? Difficulty보다 작은 해시는 많이 있을테니까요. 앞에서 말씀드렸듯 해시값은 규칙이나 예측가능성이 없기 때문에 일일이 대입해보면서 확인하는 것밖에 방법이 없어요. 그런데 이전 헤더, 타임스탬프, 머클트리같은 것들은 값을 변경할 수가 없거나 한계가 있죠? 그래서 있는게 Nonce 라는 값이에요. 이걸 바꿔가면서 조건에 맞는 해시값을 찾아가는거죠. 난이도 조절은 Difficulty 값을 변경하는 것으로 이루어지는데, 난이도를 올리려면 Difficulty 안에 담긴 값을 작게 만들고(이것보다 작은 해시를 찾아야 하니까요) 내리려면 숫자를 크게 만듭니다. 보통 어려운 수학문제를 푸는 과정이라고 블록을 만드는 과정을 설명하는데, 사실 그게 아니라 그냥 열심히 대입해가면서 무작위로 찾아보는거... Brute Force 라고 합니다 저런걸........... 뭐 되게 별거 아닙니다. 그냥 대입해봐야 될 경우의 수가 너무 많을 뿐...
그렇게 Nonce를 막 바꿔가면서 해시값을 뒤적여봅니다. 전 세계의 Full Node 또는 Miner가 이런 걸 열심히 찾겠죠? 그러다가 누군가가 조건에 맞는 해시를 찾아내면 Nonce 자리에 자신이 답을 찾는데 사용한 Nonce를 박아서 블록을 완성하고 이 블록+찾아낸 해시 정보를 주변 노드에 전파합니다. 그리고 블록을 만들어낸 보상으로 일정량의 비트코인을 받게 되구요(보상은 초기에는 블록당 50BTC에서 시작해서 2016년에는 12.5BTC가 되었습니다. 일정 주기로 절반씩 줄어들어 2140년경에 2100만BTC가 모두 채굴된다고 하네요). 주변 노드에서는 새 블록이 생겼다는 정보를 받으면 그 블록 헤더와 전달받은 해시를 가지고 답이 맞는지 검증합니다. 이 과정은 답을 찾아내는게 아니라 이미 찾은 답을 확인하는 것이기 때문에 HASH 연산을 한번만 해보면 돼요. 그렇게 검증을 통과한 블록은 블록체인에 연결되게 되고, 노드들은 다시 이 블록 해시와 Tx. Pool에서 건진 거래를 가지고 다음 블록을 생성합니다. 이렇게 블록이 영원히 체인이 되어 이어집니다.
이번 글에서는 블록의 구성과 그 블록을 어떻게 생성하고, 어떻게 체인에 연결되는지를 살펴보았습니다. 사실 이게 블록체인의 핵심이에요. 거래를 담은 블록을 만들어내서 체이닝한다. 이 글까지 읽으신 분들께서는 이 그림을 다시 보시면 한눈에 어떻게 돌아가는지 이해가 가실거라 생각합니다.
아직 이해가 잘 가지 않는 부분이 있으신가요? 그렇다면 이전 글을 다시 한번 읽어보시고, 그래도 이해가 잘 안가신다면 글을 쉽게 못쓴 제 탓을 하시며 댓글/쪽지로 질문을 주심 성심성의껏 설명해드리도록 하겠습니다.
다음 글부터는 이 기본 구조에 살을 붙여보도록 하겠습니다. 동시에 여러 곳에서 블록을 만들어내면 어떻게 되는지, 블록체인이 뭐때문에 안전하다고 하는건지, 저걸 깰 방법은 없는지, 마이닝풀이라는게 있다는데 그건 어떻게 작동하는건지 등등에 대한 것들이 되겠네요. 그럼 다음 글에서 뵙겠습니다.
작성자 아들딸 까까사주기:
BTC 14eM4cd28q77Q4AujrV6jGBDH9unX3zD3f
ETH 0xf05C7196CF4e3494023aeABB6053d053ecB3937A
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
강윤구t 4공법 1
스타터 먼저인가요? 포인트가 먼저인가요? 3따리는 뭐가 먼저죠? 6모끝나고 시작할 예정인데
-
한의협 "의사들 일벌백계 해야... 3만 한의사 진료 준비 완료" 6
그냥 인터넷 켰는데 뉴스에 이거 딱 뜨니까 왤케 웃음이 나오는지ㅋㅋㅋㅋ 일벌백계라는...
-
전공의선생님들께저는 서울대학교병원 공공진료센터 권용진교수입니다. 저는 일반의이자...
-
정부 단단히 빡쳐있네 16
전공의 파업에는 검경/행안부/법무부/복지부가, 동맹휴학에는 교육부가, 개원가에는...
-
컴공에서 물리 1
컴공 진학하려고 하는 학생입니다. 고등학교때 생지 선택해서 물리는 아예 모릅니다....
-
작년에만 해도 미국, 영국 등 많은 나라에서 의사들이 파업했지만, 그 나라...
-
이번에 인설의 가는데 17
인서울이긴 하지만 그다지 좋은 학교는 아니란 평을 종종 봐서.. 입시가 끝났더니...
-
치대의 의대 예속화는 의료일원화만큼 가능성이 매우 낮긴 하지만 가끔 상상하면...
-
내가 다니고있는 병원이 사기치고있는건지 봐줘(서울대로고) 9
의사 둘인데 의사들이 중앙대출신인데 그걸 기재안함 인터넷뒤져서암 겨우찾음 둘중한명이...
-
초음파, 뇌파, X-ray 사용보다 훨씬 더 파급력이 클 수 있는 한의사의...
-
괜히 의사편에 감정이입 돼서 내심 반대쪽인데 딱 나때 까지만 정원 늘어났으면 좋겠고...
-
전 대한의사협회장, 금번 증원에 대해 통렬한 일침 ㄷㄷㄷㄷ 4
"우리는 더 이상 필수의료에 매진하지 않는 방법으로 투쟁합시다. 머지 않은 미래에...
-
배탈, 감기와 같은 초경증질환도 죄다 전문의 진료받는건 저는 좀 문제가 있다고...
-
과거 무려 약대정원의 50%를 증원했을때 명분은 제약산업에서의 약사인력이 너무나도...
-
보건복지부는 아니라고 선 그었던데 이러면 의치한약수에 간호대 낄 수 있던거 다 물거품 아님?
-
안녕하세요! 저는 고1여학생입니다! 우선 고등학교 입학성적으로는...
-
물론 실제로 폐과하진 않을거 같지만, 정말 초강수를 뒀네요...ㄷㄷ
-
간호법과 의사면허처벌법이 국회 본회의로 직회부됨에 따라 사실상 국회통과로 법안제정이...
-
눈팅 그만하시고 수능 성적표 인증해주세요~ 아 수험생이 아니라서 못하나? ㅋㅋㅋ
-
사실 수가라는 게 정하기 나름이니 소위 정상화라는 표현이 맞는 표현은 아니겠지만...
-
안녕하세요! 의대생/의대지망생을 위한 진로 영상을 제작하는 의대생 유튜브 채널...
-
죽어가는 초응급 환자를 살리다, 흉부외과 (송석원 교수) 0
안녕하세요! 의대생/의대지망생을 위한 진로 영상을 제작하는 의대생 유튜브 채널...
-
안녕하세요! 의대생/의대지망생을 위한 진로 영상을 제작하는 의대생 유튜브 채널...
-
❕의대생 / 의대지망생 여러분을 "의대생, 스타트업을 만나다" 웹세미나에...
-
안녕하세요! 의대생/의대지망생을 위한 진로 영상을 제작하는 의대생 유튜브 채널...
-
안녕하세요! 의학 관련 진로 영상을 제작하는 의대생 연합 유튜브 채널...
-
안녕하세요! 의대생/의대지망생을 위해 진로 영상을 제작하는 유튜브 채널...
-
안녕하세요! 의대생/의대지망생을 위해 진로 영상을 제작하는 유튜브 채널...
-
안녕하세요! 의대생/의대지망생을 위해 진로 영상을 제작하는 유튜브 채널...
-
안녕하세요! 의대생/의대지망생들을 위한 인터뷰 영상을 제작하는, 의대생들이...
-
안녕하세요! '투비닥터'입니다. 지난번에 신경과, 정형외과 인터뷰를 정리해서...
-
안녕하세요! '투비닥터'입니다. 이번에는 정형외과 선생님을 만나 정형외과는 어떤...
-
안녕하세요. '투비닥터'입니다. 저희는 서로 다른 의대, 학년의 여러 의대생들이...
-
https://youtu.be/PChndZblC1w 안녕하세요! 저는 현재 모 의대...
-
의사와 한의사, 의대생과 한의대생의 대립이 갈수록 심화되고 있다. 그 와중에 한약은...
-
의사와 한의사, 의대생과 한의대생의 대립이 갈수록 심화되고 있다. 그 와중에 한약은...
-
의사와 한의사, 의대생과 한의대생의 대립이 갈수록 심화되고 있다. 그 와중에 한약은...
-
의사와 한의사, 의대생과 한의대생의 대립이 갈수록 심화되고 있다. 그 와중에 한약은...
-
의사와 한의사, 의대생과 한의대생의 대립이 심해지고 있다. 그 중에 한약음 깜장물...
-
의사와 한의사, 의대생과 한의대생 사이의 대립이 심화되고 있다. 그 중에 한약은...
-
의사와 한의사, 의대생과 한의대생의 대립이 심화되고 있다. 그 중에 한약은 깜장물이...
-
의사와 한의사, 의대생과 한의대생 간의 대립이 점차 심해지는 가운데 한약에 대한...
-
저는 설명충입니다. 35
근데 의사에요. 천직인거 같아요. 다른직업이면 말많다고 욕먹겠지만 의사가 설명충이면...
-
중딩때는 정신과의사 되고싶었는뎈ㅋㅋ 닥터프렌즈 후엠아이 1트에 진엔딩 깨는거...
-
http://news.naver.com/main/ranking/read.nhn?mid...
-
얼굴안면의 피부미용 치과분야가 치과진료의 주요한 파트중 하나가 될 것이라는 것에...
-
지난 1월에 올렸던 글을 조금 편집해서 정시 시작하기전에 오르비에 올려 여러분의...
-
의사에 대하여 11
예전에는 의사가 부정적으로 다가왔었습니다 오직 성적만으로 뽑는 직업이 특혜를...
-
의료보험 당연지정제 이 망할 것부터 없애야 합니다. 1
이거 안 없어지는 한 문읍읍이 아무리 뭐같이 해도 조용히 입닥치고 x되는 수밖에...
-
의사가 되고 싶은 꿈을 외적 요소 때문에 고민해야 한다는게... 2
지금 현 상황 보니까 의대... 참 대단한 것 같고, 주변에 의대 진학하신...
모아놓고나중에봐야지
꼭 봐주세요 ㅋㅋ 보통 모아놓고 나중에 봐야지 한건 안보던데 ㅋㅋㅋ
오.. 이 글로 전 글들에서 이해가 되지 않은 부분들이 하나로 이어지는 듯한 느낌이네요..
그런데 2140년이 되면 진짜로 비트코인은 채굴이 불가능하게 되는 건가요?
채굴 보상으로는 얻는 것이 없고, 거기 담긴 거래들의 수수료를 보상으로 가져가게 됩니다. 지금도 기본보상 + 수수료를 받아가고 있는 거구요. 수수료 수준도 적정 수준을 Node가 계산하게 됩니다. 아마 기본 보상이 줄어들면 수수료가 조금씩 상승하겠죠?
비트코인의 총량이 정해져 있는 이유는 무엇인가요? 결국 무한정 채굴이 가능한 구조라면 애초부터 총량이 정해지지 않아도 무방한 것 아닌가요?
화폐의 총량이 정해져있지 않다는 말은 시장에 화폐가 지속적으로 공급되면서 인플레이션을 유발할 수 있다는 말이 됩니다. 그리고 총량이 정해져있음으로서 스스로의 가치를 올릴 수도 있죠. 금처럼요.
페페캐시라는 종류의 알트코인이 있는데, 얘들은 일정 주기마다 시총의 일정량을 태워서(영구적으로 없애서) 인플레이션을 막는 방법을 씁니다.
결국 화폐의 가치를 유지하기 위해 총량이 정해져 있는거네요..
나중엔 진짜 금처럼 취급할수도 있을듯
요새 근데 비트코인이 뭐 하드포크를 하네 뭐가 어쩌네 하는 말이 많아서.. 뭔가 암호화폐 Gen.2 같은게 나와서 자리를 잡기 전까지의 암호화폐는 수많은 공격과 시험의 대상일거라... 이더리움도 한때 해킹 이슈로 갈라졌고 뭐 그렇습니다.
아 역시 건드리면 안될듯합니다 ㅎㅎ
국어기출에 해시함수 논스~~등등에대한 간략한 지문이 나온적이있어서 잘이해될거라생각했지만.. 컴맹으로써 계속 머리속에서 음미해야겠군요ㅋㅋ
이거랑 이 이전 글 두개만 보시면 핵심 내용은 다 보셨다고 하실 수 있을거에요
잘 읽었습니다^^