정보/IT정보 / / 2024. 11. 12. 18:37

비트코인 이해하기 - 블록체인, 반감기, 채굴

"비트코인이 사상 처음으로 8만 1,000달러(약 1억 1,300만 원)를 넘겼다"

 

트럼프 당선이후 가상화폐 대장주 비트코인이 폭주하고 있다. 그럼에도 여전히 비트코인 투자를 못하는, 아니 안 하는 이유는 뭔지 모르겠어서다. 슈카 님도 '주식은 잘 알지만 비트코인은 몰라서 안 한다'라고 했고 워런버핏도 '비트코인은 도박토큰, 본질적인 가치가 없다'라고  부정했다. 네임드 분들도 이런데 문과생이자 경제 문외한인 나는 오죽하랴.

하지만 모르면 평생 뒤쳐질 것 같아 문과적 입장에서 최대한 공부하고 이해한 대로 정리해 보련다. 

 

알기쉬운 내용부터 담아보려 한다.

 

 

| 비트코인은 무한정 찍어내지 않는다.

비트코인이 암호화폐 대장주로 계속 주목받는 이유는 가장 오래되고 널리 알려진 탓도 있지만 발행갯수가 2,100만개로 정해져 있기 때문이다.  종이화폐는 조폐국에서 (필요하면) 화폐를 더 찍을 수 있지만 비트코인은 그렇지 않다. 그만큼 희소 가치가 높다.

 

지금까지 1,900만개, 전체량의 90%가 발행됐다. 이론적으로 비트코인은 2,140년이면 모두 발행된다고 한다. 앞으로 100년이나 더 남았다.

 

하지만 의문이 들 것이다. 비트코인 최초 발행시점은 2009년이고 지금까지 약 15년간 1900만개가 발행됐는데, 왜 100년간 200만 개 밖에 발행이 안되느냐 말이다. 

 

이는 바로 반감기 탓이다.  

반감기는 4년마다 채굴할 수 있는 비트코인 수가 절반으로 줄어드는 현상이다. 채굴이 비트코인을 받는 보상행위인데, 이는 추후에 설명하겠다. 

 

최초에는 채굴 한번에 50개의 비트코인(BTC)을 줬다.

그러다 2012년에는 25 BTC, 2016년에는 12.5 BTC, 2020년에는 6.25 BTC, 2024년에는 3.15 BTC이 되었다.

반감기 탓에 시간이 흐를수록 비트코인 채굴량이 확 줄어 최종 발행까지 100년 넘게 걸리는 거다. 

 

참고로 비트코인은 0.00000001까지 쪼개서 거래될 수 있다. 이를 비트코인 최소단위 1사토시라고 한다. 1억 사토시가 1비트코인이다.  그럼 나중에는 채굴해 봤자 사토시보다 더 작게 채굴된다는 소리다. 얼마나 미약한가.  

 

채굴양을 떠나 반감기가 중요한 이유는 반감기 이전과 이후에 비트코인의 가격이 상승하기 때문이다. 공급감소와 수요증가 탓인데, 주식으로 생각하면 쉽다.

 

한기업의 주식수는 정해져 있다. 하지만 유상증자 (주식을 추가 발행해서 주주에게 돈을 빌리는 행위)를 하면 주식수가 늘어나 주가가 하락하고, 반대로 자사주를 소각하면 주식수가 줄어 주가가 상승한다. 

 

반감기도 비슷하다. 수요는 있는데 채굴량이 현저히 줄어들기에 가격이 치솟는다. 반감기가 지나면 공급이 늘기에 다시 또 안정화된다. 그래서 비트코인 하면 '반감기'가 중요한거다. 

 

비트코인 반감기, 총량갯수 모두 비트코인 최초 창시자 '사토시 나카모토'가 설계한 내용이다. 왜 그럴까? 의문을 품는다면 그가 그렇게 했구나 하면 된다. 참고로 사토시는 개인인지, 단체인지, 일본인인지 다 알려지지 않았다. 다만 약 110만 개 비트코인을 갖고 있다는데 무조건 확실한 건 그냥 부자다. 

 

+ 비트코인은 최초가격은? 

사토시가 2009년 1월 3일 처음으로 채굴했고, 이름은 '제니시스 블록'이다.  그 후 2010년 5월 22일 첫 실물거래가 발생했는데, 그때 가격은 0.0025달러로 우리나라돈으로 약 2.7원이다. 2011년에는 67센트였다가 지금 1억이 됐다..어마어마하다.

 

🚨이제부터는 어려운 개념이다. 블록체인!

 

 

| 블록체인

 

 

 

 

 

 

이름 그대로 풀면 블록을 체인으로 연결해 놓은거다. 여기서 블록은 정보를 기록하는 장부의 한 페이고, 이러한 블록을 엮어만든 분산장부가 블록체인다. 

 

보통 비트코인과 블록체인을 동일시하는데, 비트코인은  블록체인을 기반으로 한 하나의 기술상품이다. 블록은 어떤 데이터를 저장하느냐에 따라 구성이 달라지는데, 비트코인과 같은 암호화폐는 거래기록이 저장된다. 현재 계약내용을 넣는 블록도 있다. 

그래서 비트코인은  비트 거래 내력이 담긴 블록이 블록체인 네트워크에 있구나 하면 된다.   

 

왜 기존방식과 블록체인이 다른가 하면,

기존에는 거래가 발생하면 금융기관에서 관리했다. 금융기관이 모든 거래과정을 확인하고 외부로 공개하지 않는다. 만약 금융기관 서버가 해킹당하면? 재산을 잃게 된다. 이를 대비해 은행도 2중, 3중 데이터를 복사하고 보관한다. 우리가 데이터 백업하기 위해 복사해서 다른 곳에 이관하듯이 말이다.  

 

블록체인은 다르다. 중앙에서 관리하는 금융기관과 달리 블록체인은 거래정보를 누구나 생성하고, 누구에게나 공개한다. 또한 거래정보를 모두 복사해 저장하고 동기화 시킨다. 즉 하나의 거래정보에 대한 복사본을 수천, 수만 명이 가질 수 있다

 

거래정보가 담긴 블록은 추가만 가능하고, 기존 블록은 삭제 / 편집이 모두 불가능하다. 즉 블록체인 덕분에 탈중앙화가 가능하고 블록체인 참여자들이 사본을 갖고있어 조작 또한 어렵다. 그만큼 높은 수준의 보완과 투명성을 제공한다. 

 

| 그럼 블록체인을 구성하는 이 블록은 무엇이냐? 

워낙 블록이 중요한 개념이기에 더 자세히 알아보자. 비트코인 거래내역을 담는 블록을 가지고 얘기해보자. 

 

새로운 비트코인 거래 (A가 B에게 1BTC를 전송한다)가 생기면, 이 신규거래를 담기 위한 블록이 추가로 만들어진다. 

 

블록은 10분에 한개씩 생성되며, 새로 생긴 블록은 이전블록 다음에 붙는다. 그림으로 표현하면 다음과 같다. 

 

블록생성 및 체인 모습
블록생성 및 체인 모습

 

 

 

일단 많은 용어가 있지만 핵심은 새로생긴 블록에는 직전에 만들어진 블록의 해시값이 들어간다는 거다. 

해시는  '어떤 데이터를 고정된 길이의 데이터로 변환'하는 것을 의미한다. 1음절을 넣든 책을 넣든 고정된 길이의 특수한 문자열로 바뀐다. 

 

<해시 함수 예>

· INPUT (동해물과 백두산이 마르고 닳도록)      >  013SKJDFHIEUFNKS

· INPUT (동해물과 백두산이 마르고 닳도록.)     >  SKJDFHUESKJHFEIU

 

해시의 특징은 일방향 변환만 가능해 결과값인 해시값을 넣어도 원본을 찾을 수 없다. 또한 원본데이터에 작은 변화만 있으면 전혀 다른 해시값이 만들어진다. 위 예처럼 고작 점 하나만 찍어도 전혀 다른 값이 나온다. 해시값이 유출된다 한들 원본을 찾을 수가 없어 보안, 디지털 서명에 많이 쓰인다. 

 

블록해시값은 블록의 상태정보를 담당하는 블록헤더에 담겨있는 모든 데이터를 하나의 값으로 만든 거고, 이 값이 그다음에 생성되는 블록에 다시 기록된다. 결국 체인처럼 줄줄이 사탕이 되는 것. 그래서 특정 블록을 해킹하더라도 그 블록에 연결된 모든 블록도 수정해야 하기에 데이터 위변조가 어렵다. 체인역할의 핵심이 바로 이 해시다. 

 

큰 그림을 이해했으니, 세부내용으로 가보겠다. (이 부분은 저도 100% 이해한 건 아니지만, 한번 적어봤습니다)

 

블록체인 블록 구성
블록체인 블록 구성

 

 

블록은 앞에서 설명한 블록해시(블록헤더에 담겨있는 데이터를 하나의 값으로 만든 거), 블록 헤더, 거래정보가 담긴 바디, 그리고 기타 정보로 구성된다. 

 

바디는 말 그대로 비트코인 거래내역이다. 

 

블록헤더는 블록 디스크립션으로 해당 블록은 어떤 거다라는 상태정보다. 블록헤더 구성요소를 하나하나 살펴보면 다음과 같다. 

 

① 버전 (version): 블록 헤더를 만든 비트코인 프로그램 버전

② 이전 해시(previous block hash) : 바로 앞에 위치하는 블록의 블록해시

③ 머글루트 / 해시값(merklerooth hash) : 바디에 담긴 거래내역을 모두 합쳐 만든 하나의 값, 블록의 거래내역을 짧게 표현
④ 타임 (time) : 블록이 생성된 시간
⑤ 난이도 (bits) : 채굴 난이도 조절용 수치 
⑥ 논스(nonce) : number used only once , 최초 0에서 시작해 조건을 만족하는 해시값을 찾기 위해 1씩 증가시켜  대입하는 숫자. 결괏값을 찾기 위한 시도 횟수와 동일함

 

추가로 블록 크기는 1MB이며 약 2000개 나외 거래내역을 담을 수 있다. 블록크기가 너무 크면 저장공간 및 대역폭 요구 증가로 운영비용도 증가할 수 있기에, 사토시가 이렇게 제한을 두었다!

 

기타 정보는 그 외의 정보정도다.

 

일단 개념적으로 아 그렇구나 하고 넘어가야 한다. 바디 부분도 세세하게 따지면 뭐가 많은데 내 목표는 큰 그림 그리는 것이기에 여기서 그만. 

 

일단 난이도(bits)와 논스는 바로 '채굴'과 연관되는 개념이다. 이제 그 유명한 채굴을 알아보자.

 

 

| 채굴

 

 

 

 

 

 

 

채굴에 앞서 기존 거래방식을 살펴보자. 카드결제 · 계좌이체를 하면 금융기관이 거래내역을 기록 · 관리해 준다. 그 대가로 수수료를 받는다.

 

그럼 블록체인에서는 누가 비트코인 거래내역을 관리할까? 거래기록뿐만 아니라 거래내역을 분산저장하고, 내용 검증도 해야 한다. 대가 없이 하는 사람이 있을까? 바로 이일을 하는 사람들이 채굴자다. 

 

채굴은 비트코인을 직접 발행하는 게 아니다. 10분마다 블록을 새로 생성하고 그에 대한 보상으로 비트코인을 받는 것이다.

채굴 과정을 일단 가볍게 살펴보자. 

 

  새로운 비트코인 거래내역이 생기면 멤풀(mempool)이라는 저장공간에 모인다. 

 

 

 채굴자는 본인 컴퓨터에 임시 블록을 만든다. 멤풀에서 마음에는 트랜잭션(거래내역)을 본인이 만든 임시블록에 넣는다.  이 블록은 채굴자 본인만의 블록으로 네트워크 상 다른 노드들에게 전파되지 않는다.

 

노드
 블록체인 네트워크 참여자 또는 그들이 사용하는 기계 (데이터를 저장할 수 있는 태블릭, 스마트폰 모두 될 수 있음)
블록체인에 기록되는 데이터는 이 노드에 모두 저장되는 구조다.

 


③ 이제 임시블록을 유효한 진짜 블록으로 만들차례다 . 진짜 블록이 되면 직전에 있던 블록과 연결 되고 노드들이 저장해준다. 


④ 직전 블록과 연결하는 방법은 블록의 논스(nonce) 값을 찾는 것이다.

그전까지는 논스값이 비어있는 미완성 블록이다. 참고로 블록헤더 부분에서 논스를 제외한 다른 구성요소는 변하지 않는다. 오직 논스만 변한다.

 

논스값은 블록해시값이 타깃값보다 작도록 하는 값이다. 앞에서 언급했듯이 블록해시값은 블록헤더의 해시값이라 논스가 변하면 블록해시도 같이 변한다.

 

작업증명
작업증명

 

그리고 타깃값은 bits(난이도)에 의해 결정된다.  2016개의 블록을 생성하는 데 평균 시간이 2주보다 짧으면 난이도가 증가하고, 반대로 길면 난이도가 감소한다. 조절해서 평균 10분에 하나씩 생성될 수 있게 수준을 맞춘다. 

 

다시 돌아와 이 논스값을 구하려면 0부터 계속 대입해야 한다. 이 과정이 작업이다.  해시함수는 일방향이라 결괏값(타깃값)으로 원본을 유추할 수 없다. 결국 하나씩 넣는 수밖에 없다. 그래서 결국 넣다가 해시값이 타깃값보다 근소하게 작아지면  그 값이 논스 값이 된다. (이 부분이 조금 어려운데, 결괏값으로 원본을 유추할 수 없는 해시함수 특성상, 근사치에 가까운 값을 얻으면 인정해 주는 뭐 그런 개념이 아닐까 싶음)

 

이 탓에 채굴자들이 단순 연산을 단시간 내에 빨리 처리할 수 있는 그래픽카드를 많이 쓰고, 전기량도 많이 쓰게 되는 거다. 

 

⑤ 이렇게 논스값을 찾아내면 해당 블록을 블록체인에 올리겠다고 다른 채굴자와 노드들에게 알린다. 그럼 그들이 블록 유효성을 검증한다.  다수 노드가 해당 값이 유효한 논스값이라고 판단하면 그 블록은 체인에 추가되고 보상을 받는다. 이런 과정이 작업증명이다. 


⑥ 보상은 새로 발행되는 비트코인 및 해당 블록에 포함되는 거래 수수료다.  블록생성에 따른 일정량의 비트코인이 채굴자 지갑으로 입금되는데 이 거래가 그 블록의 첫 거래로 기록된다. 

 

 

 


 

 

대략적인 비트코인 메커니즘은 위와 같다. 하지만 아직도 어렵다. 

 

일단 비트코인은 물리적인 형태가 없고 네트워크에 존재한다. 

딥하게 들어가면 내가 보유한 비트코인은 내 디지털 지갑 (해당 코인에 접근할 수 있는 개인 키를 보관)을 이용해서 판매하고 송금한다.  블록에 기록된 거래내역으로 소유권을 입증(?) 하는 구조랄까?  지금까지 이해한 봐로는 그렇다. 

 

지갑까지 가기에는 머리가 너무 아파, 여기서 하산하련다. 

 

그런데 이상하게 도, 내가 쓸까?라는 관점에서는 잘 모르겠다.

결국 시장 참여자들 사이에서만 비트코인이 가치가 있는 게 아닌가?

현물로 지폐처럼 일상생활에 쓰이지 않는다면, 블록체인상에서만 존재하는 비코는 어떤 의미이지? 

금은 누구에게나 팔 수 있지만, 내가 비트코인을 나중에 팔려고 할 때 받아줄 사람이 없으면 이 비트코인은 어떻게 되는 건가?

가치 저장 수단이라기엔 너무 비싼 거 아닌가?

 

아. 어렵다..

알아도 모르겠다. 

부디 더더더 초보에게 도움됐기를..

 

 

 

 

 

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유