비트코인을 설명하려고 합니다. 몇몇 서적과 인터넷 검색을 통해 알게 된 내용을 다시 제 이해 범위 안에서 정리한 것이라고 보면 됩니다. (출처는 추후에 찾아서 넣을 수 있도록 하겠습니다.)
블록체인
초기 설정한 기준과 범위 내에서 자율적으로 처리되도록 하는 것이 블록체인 기술의 핵심입니다. 이는 탈중앙화라고 하여, 경영진이나 내부자에 의해 정보가 변경되는 것을 일체 허용하지 않는 사상에서 출발했으며, 이 신뢰성은 기성은행이나 기존 중앙집중화된 정보처리 환경에서는 매우 신선한 제안이었습니다. 이는 실제로 후원경로가 정부에 의해 막힌 단체들이 암호화폐를 통해 모금행을 가능하게 했고, 마약거래, 청부살인에 대한 거래용으로 사용되면서 주목받았습니다. 이런 기술적 특성을 인정받아 암호화폐 보다 블록체인 기술 자체가 4차산업 기술로서 주목받기도 했습니다.
송금에 대해 우리가 믿는 곳은 은행 하나입니다. 송금 과정에 있어서의 모든 것이 은행 하나에 집중되어 있는 셈인데, 이는 바꿔 말하면 은행이 바로 단일 실패 지점(Single Point of Failure)이라는 말이 됩니다. 즉, 거래 은행의 서버가 정상적으로 동작하지 않거나, 은행의 기록이 사라지게 되면 우리는 재산을 잃게 된다는 의미입니다.
컴퓨팅 분야에서 이런 단일 실패 지점 문제를 해결하는 보편적인 방법은 고가용성 처리(절대로 고장나지 않도록 하는 처리), 쉽게 말해 다중화라 합니다. 2중, 3중으로 복제나 분산처리를 해서, 만일 한 대의 서버에 장애가 나더라도 뒷받침해 줄 수 있는 서버가 대기하고 있는 그런 상태를 만들어 놓는 것입니다. 그런 면에서 실제 은행 시스템은, 앞서 예로 들은 불상사는 일어나지 않을 것입니다. 이중화 뿐만 아니라 보안 담당 장비 도입 등은 은행의 기본이기 때문입니다. 하지만 이런 조치를 위해서는 많은 비용이 필요합니다.
블록 체인은 이 문제를 완전히 다른 각도에서 바라보았습니다. 즉, 거래 정보를 감추지 않고 모두에게 공개하고, 누구나 거래 정보를 생성할 수 있으며, 거래 정보를 모두에게 복사해서 동기화시킵니다. 쉽게 말해 2중화, 3중화 정도가 아니라 수천중화, 수만중화 처리를 해서 기록이 사라지는 일을 원천적으로 막아버립니다. 그래서 블록 체인을 거대한 분산 공개 장부라고 부르기도 합니다. 이렇게 수천 수만의 분산 처리를 통해 기록의 멸실은 막을 수 있지만, 이것만으로는 멸실만큼이나 위험한 기록의 위/변조까지 막을 수는 없었습니다. 블록 체인은 이 문제를 암호학의 도움을 받아서 해결합니다.
블록체인에서 사용되는 암호화 알고리즘은 비대칭 암호화 방식(RSA) 입니다. '개인 키'로 암호화된 데이터는 오직 '공개 키'로만 해석할 수 있습니다. 그리고 이 방식은 '공개 키'를 가지고 있는 사용자라면, 그 누구라도 암호화된 데이터 내역을 복호화 할 수 있지만, 반대로 이러한 암호화 데이터는 오직 '개인 키'를 가진 사람만 할 수 있습니다.
다음은 디지털 서명이 비대칭키와 해쉬함수를 이용해서 데이터의 진위 여부를 확인 하는 절차를 보여줍니다. 블록체인에 담겨 있는 모든 거래 정보에는 이렇게 디지털 서명이 포함되어 있어서 거래 정보가 진본임을 신뢰할 수 있게 합니다.
(그림설명-Signing, 서명)
보내고자 하는 거래내역이 Data 입니다. Data를 Hash 함수를 사용하여 hash결과값을 받아 냅니다. 그리고 이 hash결과값을 '개인키'를 이용해 암호화를 시킵니다. 이것을 서명이라고 부릅니다. 이 서명정보를 인증서(인증서에는 공개키가 포함됨)와 기존 Data 와 함께 묶어서 서명된 Data로 수신자에게 발송 합니다.
(그림서명-Verification, 검증)
받는 쪽에서는 서명된 Data를 받아 Data와 서명으로 분리해 처리합니다. 우선 Data를 Hash함수로 변환합니다. 서명은 '공개키'로 변환하여 암호를 풀고, 이 두 hash결과값을 비교합니다. 이 값이 동일하다면, Data에 위변조가 발생하지 않은 것으로 보고 검증을 마치게 됩니다. 즉, Data 가 신뢰할 수 있다고 판단하는 것입니다.
거래가 발생해서 원장정보를 등록 할 때, 모든 노드(서버)에서 바로 이와 같은 유효성 검증을 실시하고 성공하면, 비로소 다른 노드로 전파되고, 해당 서버(노드)는 작업증명을 하게 됩니다. (위 그림 참조)
블록구조
블록은 블록체인을 이루는 최소 정보 단위이자, 유효한 거래 정보의 묶음입니다. 평균적으로 1,800 개의 거래정보를 포함시킬 수 있고, 물리적인 크기는 0.98Mbyte 입니다. 그리고 블록은 헤더정보와 거래정보, 기타로 구성됩니다.
- 블록 헤더는 version, previousblockhash, merklehash, time, bits, nonce 이렇게 6개의 정보로 구성됩니다.
- 거래 정보는 입출금과 관련한 여러가지 정보를 가지고 있습니다.
- 기타 정보는 블록 내에 있는 정보 중에서 블록 헤더와 거래 정보에 해당하지 않는 정보를 말하며, 블록 해쉬 계산에 사용되지 않습니다.
이 중 블록체인 메커니즘 이해의 핵심 열쇠는 블록 헤더입니다.
(1) 블록헤더
블록헤더는 다음 6가지 정보로 구성되어 있습니다.
- version : 소프트웨어/프로토콜 버전입니다.
- previousblockhash : 블록 체인에서 바로 앞에 위치한 블록의 블록 해쉬입니다.
- merklehash
: 블록의 바디 부분에 저장된 트랜잭션(거래정보)들의 해시 트리 최상위에 위치한 값을 의미합니다. 기존 거래정보에서 SHA-256 암호화하여 Hash함수를 만든 후, 이들을 모아 다시 한번 Hash를 한 결과가 머클해쉬 입니다. SHA-256
Hash 함수를 두 번 실행한 결과입니다.
- time : 블록이 생성된 시간. 해당 블록의 대략적인 생성시간을 의미합니다. 타임 스탬프는 유닉스 기준일자로 표시되며, 1970년 1월 1일 자정부터 경과한 시간을 초단위로 계산한 값입니다. 예) 1552925925
- bits : 난이도 조절용 수치입니다.
- nonce : 블록을 만드는 과정에서 hash 값을 구할 때 필요한 재료 역할을 수행합니다. 최초 0에서 시작하여 조건을 만족하는 해쉬값을 찾아낼 때까지 1씩 증가하는 계산 회수입니다.
(2) 블록 해쉬
블록의 식별자 역할을 하는 블록 해쉬는 6가지의 블록헤더 정보를 입력값으로 하고, 여기에 SHA-256 Hash 함수를 적용해서 계산되는 값으로, 32바이트의 16진수 숫자값입니다. 이름은 블록해쉬지만, 실제로는 블록 전체를 해쉬한 값이 아니라, 블록헤더만 해쉬한 값입니다.
보상체계
블록체인은 블록이 이어져서 만들어지는 블록의 집합체입니다. 사실상 링크드 리스트(Linked List)라는 자료구조인데, 새로운 블록을 만드는 방식에서 차이가 납니다.
(1) 작업증명
비트코인 '작업증명'은 일종의 문제풀이 미션입니다. 이전 블록 해쉬보다 적은 수의 해쉬 결과가 나오면, 작업증명이 "성공" 처리되는 로직입니다. 즉, 이전 블록 해쉬가 fa8cbaeed.. 이라고 했을 때, 수십, 수만번을 시도하여서라도 이보다 작은 숫자가 나와야 합니다. 가령 fa8cbaeed.. > 932d16e2e.. > 0ea33f7dd.. > 000000a83.. 이런식으로 처리된다고 보면 되겠습니다. 왼쪽에서부터 큰 수의 Hash가 배치되어 오른쪽으로 그 보다 작은 Hash가 놓여진 것을 볼 수 있습니다. 이렇게 작은 Hash가 결과로 나오게 되면, 블록 해쉬로 지정하여, 신규 블록이 생성됩니다.
블록해쉬에 쓰이는 재료로는 블록헤더의 5개 고정값(version, previousblockhash, merklehash, time, bits)과 나머지 nonce의 증가값으로 구성됩니다. 이 해쉬는 SHA-256 Hash 라는 단방향 변환을 이용해, 역변환이 안되어 유추가 불가능하고, 무조건 대입해서 처리 결과를 비교할 수 밖에 없는 특성을 갖습니다. 이런류의 대입법을 "부르트 포스"라 부릅니다. 그러니 처리하는 채굴전용 서버의 성능에 따라 좌우될 수 밖에 없습니다.
(2) 보상
이렇게 nonce 값을 통해 신규 블록해쉬를 구하는 채굴작업에는 엄청나게 많은 횟수의 계산이 필요하며 그런 계산을 수행하는 채굴기와 그 채굴기를 돌릴 수 있는 막대한 양의 전기 비용이 뒤따릅니다. 그래서 이런 비용에 대한 보상이 없다면 아무도 채굴을 하지 않을 것입니다.
흔히 채굴이라는 과정이 바로 앞서 말한 자격증명을 통해 10분동안 해답을 찾는 과정이고, 이때 해답을 찾은 참여자의 PC는 BTC를 상금으로 받습니다. 비트코인에서의 보상은 새로 발행되는 비트코인과 해당 블록에 포함되는 거래의 거래 수수료의 합입니다. 비트코인의 새로운 발행은, 채굴자가 블록을 처음 구성할 때 채굴자의 지갑으로 일정량의 비트코인이 입금되는 거래를 그 블록의 첫 거래로 추가하는 방식으로 이루어집니다.
충돌해소
(1) 블록체인 분기
블록 생성은 평균 10분이 소요될 정도로 연산량이 큰 작업이며, 따라서 A와 B 블록이 거의 동시에 생성되어 분기가 발생할 가능성은 높지 않으나, 머지않아 블록의 생성 길이가 달라질 것이므로 아래 그림처럼 긴 체인을 갖는 채택하고, 나머지는 버립니다.
고아가 되는 블록은 최근 1년간 대부분 2개 이하, 최대 3개 이내에서 충돌이 해소됐습니다. 그런다고 유실될 염려는 없습니다. 고아 블록의 거래내역은 다음 블록 생성시, 추가할 장부 목록에 포함되기 때문입니다.
(2) 이중지불 문제
서로 물리적으로 떨어진 곳에서 각각 간발의 차이로 지불이 발생할 경우, 하나는 탈락됩니다. 이 기준은 Timestemp 에 의해 결정됩니다.
비트코인
비트코인은 블록체인 방식을 처음 도입한 암호화 화폐이고 10년이 지난 지금까지 계속 암호화폐 분야에서 가장 높은 시가총액을 갖고 있습니다.
기술적으로 봤을 때에는 납득이 안돼는 부분들이 많이 있음을 보게 됩니다. 우선은 1초에 7개의 처리를 할수 밖에 없다는 점을 들 수 있습니다. 전세계가 주목하는 화폐치고는 지역화폐처럼 반응이 느립니다. BC카드가 1초에 1만6000개의 처리를 하는 것과 대조됩니다. 뿐만 아니라 한 블럭에 담을 수 있는 거래내역은 최대 1800개에 한정됩니다. 이는 1블럭을 1Mbyte로 한 정했기 때문입니다. 이번 블럭에 작업 내역이 등록되지 않으면 다음 블럭 생성할 때 들어가 지게 됩니다. 문제는 그런 게 수십 개 블럭이 밀려있을 경우, 작업 내역을 확인 할 결과가 오래 기다려 진다는 것이고, 더 많은 수수료를 지불해야 그나마 (장부에 등록하는) 기간을 단축하게 됩니다. 또한 많은 전기를 잡아먹는 작업증명은 많은 선의의 참여자를 돌아서게 만들었습니다. 이제 채굴은 거대 전용기업 형태로 운영되고 있습니다. 이처럼 구조적으로 느린 처리 때문에 화폐교환으로서의 역할은 할 수 없을 듯이 보입니다. 다만 이 암호화폐에 담겨진 많은 이해관계자의 기대가 이 화폐의 가치를 끌어올렸다고 보여집니다.
그러나 투자적 관점에서 보면, 매리트있는 부분이 있습니다. 이는 다른 암호화폐에 비해 독보적이기까지 합니다. 첫째는 희소성입니다. 2009년 초기 보상금액은 50BTC 였는데, 매 210,000 BTC를 생산할 때마다 보상이 반감되어 2016년 7월부터 12.5BTC를 제공합니다. 그러나 시세가 4배 이상 올라 금액적으로 손해가 안났습니다. 2020년 7월 즈음에 다시 반감기가 예상된다고 합니다. 현재 시세가 오르고 있는 부분도 이 기대와 전혀 무관하지 않습니다. 반감기가 오기 전에 미리 사두는 것이 향후 BTC의 가치가 올라가기 전에 구입할 수 있는 기회라는 심리가 담겨 있기때문입니다.
지금까지 그려지는 시세를 미루어짐작해 보면, 매 반감기 때마다 이런 기대가 담겨서 오르는 일들이 발생하게 될 것입니다. 그리고 그게 언제까지이겠는가라는 한계를 지정해 볼 때에는 채굴의 비용(전기세) 보다 보상이 적어 질 때에라고 보여집니다. 전세계에서 가장 싼 전기 공급지를 찾아 개선해 나가기는 하겠지만, 어쨌든 세상 그 어디에도 채굴을 위한 전기공급의 타산이 맞지 않게 되는 시점에라면, 기업형 채굴회사들은 철수를 하게 될 것입니다. 2140녀까지 4년마다 다가오는 반감기는 31번이 더 있을 예정인데, 어느 시점이 될지는 확정할 수는 없지만, 2032년까지는 보상이 1BTC 이상으로 보상이 유지되겠지만, 이후로는 계속 떨어지게 될 것입니다.
두번째는 하드포크 입니다. 하드포크하게 되는 시점에 비트코인을 소유하고 있으면, 새로 하드포크해서 만들게 되는 비트코인에서도 소유가 인정되기 때문입니다. 최근에 많은 하드포크가 일어나 이런 기대감도 주고 있는 것은 사실입니다.
이런 사실로 짐작해 볼 때, 현재 시가로 구입하게 된다면, 장기적으로는 2026년까지는 시세가 보장 받을 것으로 보입니다.
댓글