<h1>비트코인과 블럭체인 <p dir="auto"><span>비트코인과 더불어 대부분의 암호화폐는 블럭체인이라는 개념을 사용하고 있습니다. 간단하게 블럭과 체인, 그리고 해시와 공개키와 개인키, 나아가 거래소와 스마트컨트렉트를 알아봅시다. - by <a href="/@ludorum">@ludorum <h4>목차 <ul> <li>비트코인의 등장배경 <li>블럭체인 <ul> <li>블럭 <li>해시 <li>체인 <li>공개키/개인키 <li>거래소 <li>스마트컨트랙트 <hr /> <h2>비트코인의 등장배경 <p dir="auto"><a href="https://steemit.com/kr/@inverse/2008-a-to-z" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">금융위기와 비트코인 <pre><code>국가에서 마구마구 만들어내는 화폐는 믿을 수 없다. 어느날 갑자기 많은 달러를 만들어서 시장에 풀어버리면 내 달러는 가치가 없어질 것이다. 국가나 은행과 같은 중앙기관을 신뢰하지 않고 사용할 수 있는 화폐가 필요하다. <hr /> <h2>블럭 <pre><code>- 100만원 입금 : 잔고 100만원 - 10만원 출금 : 잔고 90만원 <p dir="auto">우리의 은행 잔고는 입금과 출금 내역을 통해서 증명됩니다.<br /> 이러한 입출금 내역을 트랜잭션이라는 용어로 부르고 있습니다. <p dir="auto">블럭은 이러한 <strong>트랜잭션을 여러개 합쳐서 하나의 블럭에 담은것을 의미합니다. <p dir="auto">일반적이라면, 이러한 입출금 내역이 위조되지 않았다는 것을 신뢰가능한 은행이 보증하는 것이죠. <hr /> <h2>해시(HASH) <p dir="auto">블럭체인은 은행을 믿는 대신에 내역이 위조되지 않았다는 것을 증명할 방법을 찾았습니다. 바로 <strong>해시라고 하는 알고리즘입니다. 비트코인에서는 SHA256이라는 해시 알고리즘을 사용합니다. <p dir="auto">A라는 글자를 넣고 규칙에 맞게 큐브를 빙글빙글 돌리면, 256자리 16진수 숫자를 얻을 수 있습니다.<br /> 여기에 B라는 글자를 추가하고 큐브를 빙글빙글 돌리면, 또 다른 256자리 16진수 숫자를 얻을 수 있지요.<br /> 책 한권을 넣어도 마찬가지로 256자리의 16진수 숫자를 얻게 됩니다.<br /> <img src="https://images.hive.blog/768x0/https://steemitimages.com/DQmQFSiBMu6shDkHQpAuQPL3ZtTTLad7wfCND77rhJL2bCt/hash.png" alt="hash.png" srcset="https://images.hive.blog/768x0/https://steemitimages.com/DQmQFSiBMu6shDkHQpAuQPL3ZtTTLad7wfCND77rhJL2bCt/hash.png 1x, https://images.hive.blog/1536x0/https://steemitimages.com/DQmQFSiBMu6shDkHQpAuQPL3ZtTTLad7wfCND77rhJL2bCt/hash.png 2x" /> <p dir="auto">단 한글자라도 바뀐다면, 전혀 다른 해시값이 나오기 때문에 해시값을 통해서 내역이 올바른지 검증할 수 있습니다. <p dir="auto">이와 같이 <code>철수가 영희에게 1BTC를 보냈다라는 내역의 해시값을 뽑아냅니다. 그리고 해시값들을 다시 합쳐서 해시값을 하나 만들면, 그것이 <strong>블럭의 해시값이 됩니다. <blockquote> <p dir="auto">내역중에서 단 하나만 바뀌어도 전혀 다른 해시값이 나오겠죠? 그렇기 때문에 올바른 데이터를 넣고 해시값과 검증하는 것은 아주 쉽지만, 검증값에 일치하는 위조된 데이터를 찾아내는것은 불가능에 가까운 매우 어려운 일입니다. <hr /> <h2>체인 <p dir="auto">이제 블럭들을 엮어서 체인을 만들어 봅시다.<br /> 블럭의 해시값은 몇가지 구성요소를 가지고 있습니다. <ul> <li>블럭의 버전 <li>이전 블록의 해시값 <li>트랜잭션들의 해시값을 합쳐서 만든 해시값 <li>블럭 생성 시간 <li>난이도 <li>무작위 숫자 <p dir="auto"><strong>이전 블록의 해시값 이 부분이 바로 체인의 핵심입니다.<br /> 이전 블럭의 값을 하나라도 바뀐다면, 그 블럭의 해시값을 참조하여 만들어진 다음 블럭의 해시값도 바뀔 것입니다. 그럼 연쇄적으로 그 다음블럭들도 전부 바뀌게 될 것입니다. <p dir="auto">여기에 중요한 개념이 한가지 더 있습니다.<br /> <strong>난이도. 256자리의 16진수 숫자이기 때문에 해시값은 특정 숫자보다 높거나 낮을 수 있습니다. 이것을 통해서 무조건 해시값이 1000보다 낮게 만들어야한다는 규칙이 있다면, 블럭 생성에 시간이 오래걸리도록 유도할 수 있습니다. <p dir="auto">만약 블럭을 만들어내는 사람이 0을 넣었는데 1000보다 높은 해시값이 나왔다면, 다시 1, 2, 3,.. 숫자를 바꿔가며 난이도에 맞는 해시값을 찾아내는겁니다. 더 빠른 컴퓨터가 있다면, 더 빨리 찾아낼 수 있겠죠? <p dir="auto">그렇다면, 왜 난이도가 존재할까요? 무조건 빠르게 블럭이 생겨난다면 좋은거 아닌가요?<br /> 이것은 소수 집단이 블럭을 위조하지 못하게 만드는 일입니다. <p dir="auto">비트코인 네트워크에 참여한 일반적인 참여자의 컴퓨터의 성능보다, 위조를 원하는 사람의 컴퓨터 성능이 더 좋지 않다면 위조할 수 없도록 만드는 일이죠. <p dir="auto">10개의 블록을 위조하려면 1개가 생기는 사이에 10배 빠르게 만들어내야 할테니까요. <p dir="auto">바로 이 과정이 <strong>채굴(마이닝)입니다. <p dir="auto">이렇게 난이도에 맞는 블럭을 생성하는 일은 비트코인 네트워크의 거래내역들을 안전하게 만드는 일입니다. <p dir="auto">그렇기 때문에 정해진 규칙대로 블록 생성자가 블록 생성 보상으로 비트코인을 얻게 됩니다. 또한, 2100만개의 모든 비트코인이 채굴되었을 경우에도 여전히 블록 생성자는 거래 수수료를 보상으로 얻게 됩니다. <p dir="auto">이를 통해서 막대한 자본을 투입해서 비트코인 네트워크를 공격하느니, 차라리 채굴 보상을 얻는게 더 이익이 되도록 유도한다고 할 수 있습니다. <blockquote> <p dir="auto">비트코인 네트워크는 블럭이 생성된 시간들을 고려하여 10분에 1개의 블럭이 생성되도록 난이도를 유도합니다. <hr /> <h2>개인키와 공개키 <p dir="auto">은행에서 <code>철수가 영희에게 1만원을 보냈다라는 내역을 생성하기 위해서 우리는 신분증과 비밀번호같은 것을 사용합니다. 그리고 은행에서 이러한 내역을 승인해주죠. <p dir="auto">그러나, 우리의 비트코인 네트워크는 그런 신뢰 기반의 시스템이 아닙니다. <strong>국가나 은행과 같은 중앙기관, 중간자를 믿지 못해서 만들어진 시스템이니까요. 개인의 거래내역은 개인이 생성합니다. <p dir="auto">이때 사용되는것이 공개키와 개인키입니다. <p dir="auto">공개키와 개인키는 한 쌍으로 이루어져 있고, <strong>공개키는 계좌번호 비슷한 존재입니다. 그리고 <strong>개인키는 비밀번호, 인감도장, 신분증과 같은 존재입니다. <p dir="auto">개인키로 서명한 거래내역의 해시값은 공개키를 통해서 검증할 수 있도록 구성되어있습니다. 이를 통해서 비밀번호를 직접 노출하지 않고, 거래내역에 대한 해시값을 공개키로 검증하게 함으로써, 내가 입출금 권한이 있음을 증명할 수 있는 것이죠. <p dir="auto">그리고 이 시스템을 우리는 흔히 '지갑'이라고 부릅니다. <hr /> <h2>거래소 <p dir="auto">암호화폐 거래소는 단순하게 암호화폐 거래소 내에 있는 비트코인을 다른 암호화폐나 달러, 원화와 거래하는 것이기 때문에 전혀 비트코인 네트워크와 관련이 없습니다. <ul> <li>[비트코인 네트워크] : 비트코인 네트워크 > 거래소 지갑 > 거래소 <li>[거래소 내부 시스템] : 거래소가 관리하는 회원의 입금/출금/거래내역 <p dir="auto">이는 당연한 것인데, 우리의 원화(KRW)는 비트코인 네트워크에 직접 입금할 수 없기 때문인데요. 그래서 거래소와 같은 중간자를 이용하고 있습니다. <p dir="auto">주로 암호화폐 해킹사태는 이러한 거래소 회원정보가 해킹되거나, 거래소 지갑의 개인키가 유출되는 경우입니다. 아직까지 블럭체인 자체가 해킹된 사례는 없는 것으로 알고 있습니다. <hr /> <h2>스마트 컨트랙트 <p dir="auto">우리는 이제 비트코인 네트워크가 은행과 같은 중간자 없이 화폐를 발행하고, 서로 돈을 주고 받을 수 있으며, 위조하기 힘들다는 것을 알았습니다. <p dir="auto">그러나 한가지 문제가 더 있습니다. 예를 들어 원화와 비트코인을 거래하려면 누군가 또 신뢰 가능한 중간자가 있어야한다는 점입니다. <p dir="auto">그래서 이것을 해결하기 위해 등장한 것이 스마트 컨트랙트입니다. <p dir="auto">이것은 KRW을 보냄과 동시에 비트코인을 건네받는 것을 블록체인 네트워크를 통해서 보장받는 것을 의미합니다. 당연히 블록체인 특성대로 올바른 주소에 올바른 금액을 보낸다면 올바른 결과를 얻게 될 것입니다. <p dir="auto">이러한 스마트 컨트랙트 개념을 시작한게 바로 이더리움입니다. 그리고 요즘은 서로 다른 블록체인 네트워크끼리 데이터를 주고받고 가치를 교환하는 방법에 대해 솔루션을 제공하기 위한 기술들이 연구 개발중입니다. <p dir="auto">향후에 원화(KRW)가 블록체인 네트워크상에 올라갈 수 있고, 이러한 체인간 교환이 가능해진다면 거래소 없이도 스마트 컨트랙으로 바로바로 비트코인을 사고팔 수 있겠죠? <hr /> <h4>끝으로, 암호화폐 투자자에게 권하는 글 <ol> <li>암호화폐는 아직 시장 규모가 충분히 크지 않으므로 변동성이 강합니다. <li>존버의 시대는 이미 갔고, 그냥 자산의 일부를 암호화폐로 보유하는 시대라고 생각합니다. <li>오를때까지 버티는게 아니라, 그냥 자산 일부가 암호화폐일 뿐. 원화는 원화대로, 암호화폐는 암호화폐대로.. <li>위의 이유로 생활에 지장을 줄 정도로 원화를 암호화폐로 바꾸시는 것은 권장하지 않습니다. <li>가격에 대해서는 10년 전 라면값을 생각해보면 괜찮다고 생각합니다. <li>수익률은 중요하지 않습니다. 우리는 전문 트레이더가 아니잖아요? 공포와 시간을 구매하세요. <li>전문 트레이더이고 싶으시다면, 그만큼 정보력, 판단력, 순발력, 자본력을 갖추셔야합니다. <li>세계 최대 부호나, 남들보다 더 벌고 싶은게 목표가 아니라면, 열심히 거래하실 필요 없습니다. <li>적금처럼 구매해서 자기 자산의 일부를 암호화폐로 바꾸어 두시는 것을 권장합니다. <li>블록체인 네트워크에 보호를 받기 위해 개인지갑을 이용하시고, 개인키를 잃어버리거나 유출하지 마세요.이 글은 요즘들어 비트코인과 암호화폐(가상화폐)에 대해서 물어보는 사람들이 많아서 전혀 이에 대해 모르는 사람들에게 간단하게 개념을 설명하기 위해 남기는 글입니다.
블록체인 트랜잭션등 요즘 뜨는 단어에 대해 물어보면 뭔가 횡설수설 하며 대답했는데 정확한 대답을 할 수 있을거 같아요! :) 감사합니다.
간략하게 깔끔하게 잘 정리해주셨네요 감사합니다 ㅎㅎ
알고싶었던 것들이 수두룩했는데 이 글을 읽고 조금이나마 해소하고 갑니다! 감사해요
또 좋은 글 부탁드릴게요 ; ) 업보트하고갑니다
알쏭달쏭한 것들이 어느정도 정리가 되는 것 같습니다. 좋은 글 감사합니다.
역시 갓도럼님.. 리스팀 하고 두고두고 이 글 보여주겠습니다.
와. 깔끔한 설명 감사합니다.
이런 글은...리스팀해야해...
정독했습니다. 집에가서 복습해야겠습니다. 감사합니다
깔끔한 정리 감사합니다
평소 공부하면서 많이 도움 받았습니다.
확실히 내공이 느껴지는 글이세요.ㅎㅎ
좋은 글 정말 감사합니다~~ 앞으로도 많이 배울게요 ^^
워우 훌륭한 자료입니다, 요즘 부쩍 질문이 많이 들어와서 처음부터 설명해주기 참 힘들었는데 이제 링크하나면 끝나겠군요 ^^
잘 정리된 글 이네여 감사합니다 잘 보고 갑니다
감사합니다. 리스팀해서 잘 읽겠습니다.
궁금했던 내용이었어요^&^
리스팀해요~
좋은 글 감사합니다