본문 바로가기
IT

블록체인-가상화폐

by Kino fan 2020. 7. 11.

블록체인-가상화폐

전 세계가 암호 화폐 열풍에 휩싸 였고 한국이 그 정점에 서기도 했습니다. 비트코인 열풍은 중고등학생의 용돈부터 노년층의 퇴직금까지  쏟아붓게 만들었다. 비트코인 열풍은 잠시 지나가는 투기 열풍에 지나지 않을까? 아니면 인터넷 혁명에 비견될 만한 거대한 기술적 진보로서 4차 산업혁명을 이끌고 갈 혁신 인지 알 수가 없다. 그런데 논쟁에서 항상 혼선이 생기는 것은 비트코인, 암호화폐, 블록체인과 같은 용어 자체가 매우 낯설기 때문이다. 

먼저 비트코인부터 살펴보자 비트코인은 완전한 탈중앙식 P2P 방식으로 이루어지는 결제 시스템을 만들려는 시도에서 탄생했다. 비트코인이 이러한 시도에 성공한 것은 블록체인의 개념의 최초로 도입하여 적용했기 때문이다. 

그렇다면 왜 P2P 방식으로 결제 시스템을 만드는 것이 어려운가?라는 질문을 해볼 수 있다. 

가상화폐가 존재하는데, 이것은 물리적인 화폐가 아니고, 윈도우나 MS 오피스의 시리얼 키 같은 암호화된 일련변호로서 존재한다. 송금할 때는 이 암호화된 시리얼 키를 상대방에게 전송하는 메시지를 발송하는 것이다. 그런데 가상화폐는 다른 사람에게 건네준다고 사라지는 것이 아니다. 또한 은행의 온라인 뱅킹처럼 중앙에서 거래내역과 잔고 기록을 관리하고 증명해주는 주체도 없다는 것이다. 물론 그렇다고 해서 자신이 가지고 있지 않은 가상화폐를 마치 가지고 있는 것처럼 지불할 수 없다. 왜냐하면 모든 가상화폐는 암호화된 일련번호를 가지고 있기 때문에 유효하지 않은 가상화폐를 송금하는 것은 불가능하기 때문이다. 

그러나 한번 사용한 가상화폐를 두 번 사용하는 것을 막기가 어렵다. 이것이 이른바 '이중 지불의 문제'이다. 비유하자면, 같은 시리얼 키로 하나의 PC에서 무단으로 동시에 활성화한 것과 비슷하다.  같은 가상화폐를 두 번 송금한 경우, 먼저 거래는 놔두고 나중의 거래를 무효화해야 한다. 그래야 가상 화폐로 물건을 사고 나서 나중에 고의로 결제를 취소하는 것을 막을 수 있다. 거래의 선후 순서를 알아야 한다. 그런데 중앙 서버가 없는 P2P 시스템에서는 거래의 선후를 가려내는 것의 거의 불가능에 가깝다. 

은행의 온라인 뱅킹처럼 중앙시스템이 있다면, 중앙 서버의 자체 시계가 모든 거래에 대해 거래 시각을 기록하는 타임스탬프 기능을 수행한다. 이렇게 중앙 서버의 시간이 모든 거래시간의 기준이 되기 때문에 서로 시차가 있는 지역에 살거나 PC의 자체 시스템 시간이 정확히 설정되지 않은 사람들끼리 거래도 할 수 있다. 

 

 

그러나 P2P 시스템은 모든 사용자가 서로 다른 각각의 시계를 가지고 있으며, 각자 자신의 시계를 조작할 수 있다. 통일된 시계가 없고, 개별 사용자들이 사용하는 클라이언트 PC들의 자체 시간만 존재한다. 자신의 PC의 시계 설정을 마음대로 바꿀 수 있어서 시간에 대한 합의가 이루어지기 어렵기 때문에, 어떤 거래가 더먼저 이루어진 거래인지 알기 힘들고, 이중 지불이 발생했을 때 어떤 거래를 무효화해야 하는지 판정하기 힘이 든다.

시간을 맞추는 아주 간단한 문제도 중앙 시스템의 권위가 없으면 힘든 일이 되는 것이다. 우리가 당연하게 생각하는 인터넷의 모든 활동을 철저하게 중앙시스템의 권위에 의존해온 것이고, 중앙의 권위가 없는 상황에서는 시간조차도 서로 맞출 수 없는 것이 된다. 비트코인의 창시자 나카모토 사토시는 블록체인이란 개념을 도입해서 이러 난제를 최초로 해결하게 된다.

비트코인은 이중 지불의 문제를 어떻게 해결하냐면, 약 10분 동안 발생한 모든 송금 메시지들을 모아서 하나의 블록을 구성한다. 다시 10분이 지나면 또 다른 블록을 만들어 먼저 생성된 블록에 이어 붙인다. 이렇게 해서 블록을 쭉 이어 붙여 긴 체인을 만든다. 그러면 앞 블록에 포함된 거래보다 뒤 블록의 거래가 나중의 거래라는 것을 판정할 수 있다. 중앙시스템의 권위 없이도 시간의 선후 순서에 대한 합의를 만들어낼 수 있다. 이것이 블록체인이라는 말의 어원이다. 블록처럼 엮는다는 것이다.  블록으로 체인을 만들었기 때문에 블록체인이라고 하는 것이다. 각 블록은 일정한 간격으로 생겨야 시간의 척도 역할을 할 수 있다. 사용자들이 중앙 서버의 시계 없이 어떻게 10분이 흘렀다는 것을 서로 합의할 수 있는 방법은 비트코인 사용자 전부가 달려들면 딱 10분이 걸려야 풀 수 있는 수학적인 퍼즐 문제를 내고, 그것을 푸는 사람이 나타나면 10분이 지났다고 판정하는 것이다. 수학퍼즐의 난이도는 그 네트워크의 전체 컴퓨터들이 참여해서 딱 10분 걸릴 정도로 자동적으로 조정된다.

 

 

이것을 '작업 증명'이라고  한다. 작업 증명에 성공한 사람이 나오면, 드디어 그동안 이루어진 송금 거래 중에 아직 블록에 쓰이지 않고 있는 미승인 거래 기록들을 모아서 새로운 블록을 만들고, 이전 블록에 이어 붙이는 형식이다. 이 작업 증명 작업은  대량의 연산능력을 동원해야 하기 때문에, 컴퓨터 장비를 각추는 비용뿐 아니라 고성능 프로세서를 돌리는 데 필요한 대량의 전기료가 발생된다. 이런 비용을 감수하고, 작업 증명을 하도록 할 인센티브로서, 수학 퍼즐을 맞추어 블록을 새로 생성한 사람에게 '비트코인'이라는 가상 화폐를 보상으로 지급한다. 이 연산과정은 마치 과거 광산 노동처럼 대량의 반복 작업을 거치기 때문에, 가상 화폐를 얻기 위해 채굴 과정이라는 의미에서 '채굴'로 불리게 되었다.

비트코인은 블록체인 구조를 유지하기 위해 채굴작업에 참여한 사람에게 주어지는 보상이다. 

비트코인의 채굴작업은 어마어마한 전력이 소모가 된다. 원래 비트코인이 처음 생겨났을 때는 개인용 PC를 가지고 취미 삼아 채굴하는 정도였기 때문에 네트워크의 채굴 비용을 합쳐도 그리 크지 않았다, 그러나 비트코인 네트워크의 특성상 채굴에 참여하는 컴퓨터들의 총 연산능력이 늘어나면 늘어날수록, 거기에 비례해서 수학 퍼즐의 난이도를 높여서 약 10분 간격으로 풀 수 있도록 재조정을 한다. 더 많은 컴퓨터가 참여할 때 블록이 더 빨리 생성되는 것을 막기 위한 장치이다. 현재는 전 세계에서 비트코인 채굴에 참여하는 모든 컴퓨터들이 소모하는 전기가 아일랜드 국민 전체가 사용하는 전력량보다 더 많다고 한다. 전력 소모량이 이렇게 계속 늘어나는데도 불구하고, 비트코인 네트워크의 전체 거래가 처리 용량은 전혀 늘지 않았다.  비트코인은 처음 설계된 때부터 전 세계에서 1초에 7회 거래를 할 수 있도록 설계되었고, 이것은 채굴에 더 많은 컴퓨터가 참여한다고 해서 더 늘지는 않는다. 전 세계에서 1초에 7회보다 더 많은 거래가 발생하면 거래가 승인될 때까지 줄을 서서 기다려야 한다. 그러니 채굴에 참여하는 연산능력이 계속 늘어나는 것은 생산적인 기여는 조금도 하지 않으며, 단지 제로섬의 채굴 경쟁만 심화하는 현상이 발생한다. 

비트코인인 창설자인 나카모토 사토시는 이러한 과도한 채굴 경쟁을 제로섬 군비경쟁에 비유하면서 우려했고, 다들 신사협약을 맺어 채굴 전용으로 고성능 프로세서를 동원하지 말고 가정용 PC 프로세서 정도를 동원 헤서 적절히 채굴하자고 제안하기도 했다. 

 

 

 

댓글