비트코인 백서로 보는 비트코인


■ 비트코인이란?


최근 비트코인이란 암호화 화폐에 대한 관심이 매우 뜨겁습니다. 앞 서 글에서도 언급했지만, 비트 코인이란 암호화 화폐는 블록 체인에서 쓰이는 화폐 입니다. 언론에서는 가상화폐라는 단어를 많이 쓰지만, 정확하게는 암호화 화폐라는 단어가 정확한 개념입니다. 비트코인을 암호화 '화폐'가 아니라고 주장하는 분들도 많습니다. 이 부분은 향후 기술이 어떻게 수용 될 것인가에 달린 문제라고 생각합니다. 그렇다면 비트코인이 어떻게 탄생했는지 살펴보겠습니다. 


비트코인은 먼저 기존의 신용을 보증하는 금융 기관들에 대한 반감으로부터 출발하게 됩니다. 간략하게 요약하자면 비트코인 백서에서는 우리가 현재 이용하고 있는 대부분 금융 상품들은 제 3자 신용기관들에 의해 제공되는 불합리한 서비스라고 설명합니다. 금융기관을 은행으로 예를 들겠습니다. 기본적으로 은행들은 고객들의 돈을 받아서 이자를 지급하고, 이 돈은 또 다른 고객에게 대출해주고 이자를 받습니다. 그런데 이 중개 과정에서 은행은 예금 고객에게 지급하는 이자보다 대출로 얻는 이자가 훨씬 많습니다. 어떻게 보면 당연하지만, 대출로 사용되는 돈도 고객의 돈입니다. 자신들의 돈이 아닌 것으로 더 많은 수익을 얻고 있고, 이 과정에서 고객들은 지출하지 않아도 되는 돈을 지출하고 있다고 볼 수 있습니다. 그래서 이러한 불합리한 중개 과정을 없애고자 블록체인 기술을 개발하게 된 것입니다. 제 3자 중개기관이 보증하던 신용을 네트워크 기술과 암호화 기술을 활용한 전자지불 시스템을 개발하여 거래 당사자들이 신용기관의 중개 없이 직접 거래를 가능하게 하는 것이 비트코인 백서의 핵심입니다. 



■ 비트코인에서의 거래


 비트코인 백서에서는 비트코인으로 발생되는 거래에 대한 설명을 하고 있습니다. 여기서 비트코인을 전자적 화폐라고 정의합니다. 그리고 거래되는 과정을 디지털 서명의 연속이라고 정의합니다. 네트워크에서는 한 명의 참여자들이 하나의 노드를 구성한다고 생각하면 됩니다. 노드는 그냥 비트코인을 이용하는 사용자 한명, 한명이라고 생각하시면 됩니다. 여기서 공개키와 암호키 방식이 쓰입니다. 공인인증서와 유사하다고 생각하시면 이해하기 수월합니다. 각 참여자들은 각자의 암호키를 소유하게 됩니다. 거래가 발생하면 거래 당사자들끼리 공개키와 암호키를 이용해서 거래 내역을 남기게 됩니다. 다음 거래자의 공개키를 찾아서 암호키를 이용해 디저털 서명을 하는 것입니다. 그러나 이 과정에서는 이중지불에 대한 문제가 발생합니다. 어떤 시점에서 디지털 서명을 했는지에 대한 내역을 확인할 수 있어야됩니다. 이 문제 때문에 금융기관들이 중개 기관으로써 지휘를 확보할 수 있는 것이였습니다. 그러나 비트코인 블록체인에서는 모든 거래를 공개하고, 모든 참여자들이 시간 순서에 따라 단일 거래내역을 남기는 것으로 신뢰 문제를 해결합니다. 이 때 거래가 발생하는 시점마다 과반수 이상의 노드들이 최초의 거래라고 인정해주는 시간 증명이 필요다고 합니다. 이 부분에서 비트코인 블록체인의 문제점이라고 지적하는 컴퓨팅 파워 문제가 발생합니다. 컴퓨팅 파워 문제는 채굴 과정에서만 발생하다고 생각하지만, 검증 과정에서도 매우 중요한 문제입니다.


 비트코인 백서에서는 이중 지불 문제를 해결하기 위한 구체적인 방법을 제시합니다. 타임스탬프 서버를 제시합니다. 타임스탬프 서버는 거래가 발생한 시간을 기록한 항복들을 블록화 하여 블록 해시로 취합니다. 그리고 그 해시를 모두가 볼 수 있게 공유하는 역할을 합니다. 타임스탬프 내역은 암호화 할 때 그 시간에 데이터가 있었다는 것을 입증합니다. 타임스탬프에 기록되는 내역들은 타임스탬프로부터 해시 내역을 포함함으로써 이중지불에 대한 문제를 해겨한 체인을 구성하게 됩니다. 개인 대 개인인 P2P를 기반으로 하는 분산 네트워크 타임스탬프 서버를 위해서는 특별한 해쉬값을 지정하는 작업증명 방식이 필요합니다. 비트코인 블록체인에서는 Adam Back’s Hashcash가 이용됩니다. 작업증명에서는 암호화 해시값을 찾는 과정이라고 보면 됩니다. 해시 값을 찾는 과정을 이해할 필요는 없습니다. 여기서 CPU가 노력한 결과가 작업 증명 조건을 도달하면, 해당 블록은 똑같은 과정을 번복하지 않는한 고정됩니다. 그 다음 블록이 체인을 형성하면, 하나의 블록을 변경하기 위해서는 해당 블록을 포함한 그 다음 모든 블록들의 작업 증명 작업을 다시 수행해야 합니다. 이 과정에서 블록 체인에 대한 신뢰 문제를 확보할 수 있게 됩니다. 



댓글

Designed by JB FACTORY