이전 포스트에서 나타났듯이 요즘 돈은 점점 더 새로운 디지털 형식을 취하고 있습니다. 암호화폐는 명목화폐의 강력한 대안으로 등장했죠. 그러나 비트코인 같은 암호화폐의 강점과 약점을 탐색하기 전에 이러한 통화 혁신을 일으킨 핵심 기술을 이해하는 것이 중요합니다.
역사
블록체인과 유사한 기술에 대한 최초의 언급은 1982년 논문 ‘상호 신뢰할 수 없는 집단간 신뢰할 수 있는 컴퓨터 시스템 구축 및 유지’로 거슬러 올라갑니다. 개념에 대한 추가 업데이트 및 개선 사항은 1991년과 1992년에 여러 사람에 의해 설명되었습니다. 그러나 블록체인의 현대적 정의는 나카모토 사토시의 가명의 그룹 또는 인물에 의해 개념화 되었습니다. 블록체인, 암호화폐, 그리고 비트코인의 아버지로 널리 알려진 나카모토가 백서 ‘비트코인: P2P 전자화폐 시스템’ 을 발행하면서 모든 것이 시작되었죠. 궁극적으로 비트코인 및 여러 블록체인 기반 프로젝트를 강화시킨 기본 구조와 시스템을 여기서 설명되는데요 2009년 1월, 나카모토는 비트코인 소프트웨어의 첫 번째 버전을 출시하고 최초 블록을 채굴하고 공식적으로 블록체인 기술을 탄생시켰습니다. 그는 2010 년 중반까지 스스로 소스 코드를 개선하고 업데이트했죠. 그 이후 사라지기 전에 프로젝트 모든 측면에 대한 제어권과 소유권을 비트코인 커뮤니티에서 활동적이고 잘 알려진 개발자에게 이전했습니다. 그의 마지막 행적은 비트코인은 “든든한 적임자에게 맡겨졌다” 라고 언급한 2011년도 이메일이었죠.
기능
가장 기본적으로 블록체인은 디지털 원장 역할을 합니다. 원장은 단순히 거래 기록이지요. 디지털 결제 및 통화에서 우리는 은행이 고객의 자금 소유권을 증명하는데 사용하는 기본 방법 또는 메커니즘에 대해 논의했습니다. 은행에 돈을 입금하면 더 이상 자금을 물리적으로 소유할 수 없고 해당 자금이 내 것이란 유일한 증거는 은행이 유지하는 기록입니다. 계좌로 돈을 출입금 할 때마다 그에 다른 기록이 자동으로 적용됩니다. 그러나 기본 기능은 (주로 데이터 또는 거래를 시간 순으로 기록하는) 모든 표준 원장과 동일하지만 여러 핵심 요소가 기존의 블록체인과 차별화됩니다.
구조
은행의 디지털 원장이나 작은 기업의 물리적 원장은 사업장 또는 사업주의 통제하에 중앙화된 곳에 저장될 수 있지만 블록체인은 탈중앙화되고 분산됩니다. 즉, 여러 위치에 여러 복사본이 있고 한 독립체가 블록체인에 대한 완전한 컨트롤 또는 소유권을 갖고 있지 않다는 것이죠. 이 디지털 원장은 전 세계 개개인의 합작으로 유지되고 거래는 블록이란 배치로 기록됩니다. 블록에는 사용된 날짜 및 금액과 같은 정보가 포함되고 거래에 관련된 당사자를 기록합니다. 그러나 블록체인은 은행처럼 실명을 사용하는 대신 기본적으로 사용자명으로 기능하는 디지털 서명을 사용합니다. 이런 데이터 블록은 서로 연결되어 계속 증가하는 검증된 거래 체인을 형성하므로 블록체인이라고 부르는 것입니다.
보안
여기서 의문이 드실 수 있겠죠. 이체 내역이 가득 찬 가짜 블록을 생성하는 것이 쉽지 않을까? 라고요. 이런 일을 예방할 수 있는 은행이나 중앙기관이 없으니깐요. 이는 매우 타당한 우려이지만 시스템 설계에 의해 완벽하게 해결되는 부분입니다. 실제로 누구나 가짜 블록을 만들 수는 있지만 확인 및 컨펌된 거래 체인에 추가되기 전에 특정 요구 사항을 충족해야 하는데요 여기서 잠시 블록체인의 보안 조치를 처음부터 설명해드리도록 하겠습니다. 위조된 블록을 체인에 추가하기 위해서는 먼저 단일 거래를 위조해야 합니다. 위에서 소개한 개념인 공개키 인프라 시스템은 이러한 일을 예방하죠. 각 사용자에게는 개인키와 공개키가 있습니다. 개인이 시작하는 모든 거래는 본인만 접근 할 수 있는 고유 개인키로 서명 됩니다. 네트워크의 다른 사용자는 일치하는 공개 (공개적으로 사용 가능한) 키로 서명이 인증되었는지 확인할 수 있습니다. 즉, 악의적 이용자는 해당 거래에 서명 할 수 있는 개인키가 없기 때문에 거래 인증이 불가능합니다. 무효이거나 반복되는 거래는 단순히 시스템에서 거부되죠. 블록이나 거래를 위조하는 것으로 시스템을 공격하는 것이 불가능하니 다른 유일한 대안은 이미 블록체인의 일부인 블록을 수정하는 것일 겁니다. 다행히도 시스템은 이런 일을 예방하는 방법도 갖추고 있습니다. 블록은 앞서 언급한 거래 데이터를 포함할 뿐만 아니라 다른 블록과 구별하기 위한 고유 코드도 포함합니다. 이 코드는 암호화 해시 함수로 생성되는데요 기본적으로 블록의 모든 데이터를 해시 값으로 알려진 문자열로 변환하는 수학적 과정입니다. 하지만 블록의 데이터만이 해당 블록의 최종 해시 값을 생성하는데 사용되는 것은 아닙니다. 최종 해시 값은 해당 블록의 데이터와 체인에서 이전에 확인된 블록의 해시 값의 조합으로 생성됩니다. 본질적으로 각 블록이 전후 블록과 완벽하게 연결되는 방식이죠. 블록의 단일 값을 수정하면 해시 값이 정확하지 않으므로 전체 체인의 로직이 즉시 중단됩니다. 이 공격이 먹히기 위해선 전체 체인을 수정해야 할뿐만 아니라 네트워크에 존재하는 대부분의 블록체인 사본을 변경해야 합니다. 이를 위해 필요한 시간과 리소스를 고려한다면 공격은 사실상 불가능합니다.
용도
아마 블록체인 기술의 가장 잘 알려진 용도는 암호화폐일 것입니다. 비트코인은 블록 체인의 가치와 유용성을 더 자세히 설명하기 위해 다음 기사에서 다루겠습니다. 이 기술의 핵심이 공개적이고 안전하게 데이터를 안정적으로 저장하는 방법이라는 점을 감안하면 다른 많은 응용 프로그램도 있는데요 스마트 계약, 금융 서비스, 상품 거래, 비디오 게임, 도메인명 및 보험 시스템까지 모두 블록체인 기술에 의해 재정의되고 있습니다. 계속 진화하는 복잡한 아이디어이지요. 이 기본 개념을 더 깊이 이해하려면 이 시리즈의 다음 기사인 비트코인이란? 을 읽어보세요.