(책 요약) 블록체인 무엇인가?

이 책은 제목처럼 블록체인이 무엇인지를 설명하는 책이다. 즉, 블록체인의 기술적인 개념들을 쉽게 이해할 수 있는 비유를 들어 하나하나 설명하고 있다. 하지만 블록체인 기술이 실제로 사용되는 분야나 앞으로의 과제 등에 대해서는 아주 간략하게만 설명하고 있다. 이 부분이 아쉬운 분들은 <블록체인혁명>등을 이어서 읽어보시길 권한다. (저도 아직 안 읽음^^)

왜 우리에게 블록체인이 필요한가?

소프트웨어의 엔진이라고 할 수 있는 시스템 아키텍처에는 분산 시스템과 중앙통제 시스템이 있다. Peer to Peer 네트워크, 즉 P2P 네트워크는 분산 시스템의 특수한 형태로 개별 컴퓨터 (노드)로 구성된 시스템은 중앙 노드의 조정 없이 모든 구성원이 서로에게 계산 자원을 제공한다. 네트워크의 각 노드는 시스템 내에서 동등한 권리와 역할을 가지며, 모두가 자원의 공급자인 동시에 소비자가 된다. P2P 시스템의 위력은 무형의 상품이나 디지털화된 상품 또는 서비스를 중개하는 역할을 주업으로 하는 산업에 영향을 미친다. 이러한 산업들은 모두 P2P로 대체될 가능성이 높다. 그 중 가장 규모가 큰 사업이 바로 금융업이다.

블록체인은 바로 이러한 분산 시스템 내에서 무결성을 확보하고 유지할 수 있는 도구이고, 또한 탈중개화를 위한 도구이다. 따라서 블록체인이 가지게 되는 핵심 과제는 ‘개수도 알려지지 않고 신뢰성과 안정성도 알 수 없는’ 피어들로 구성된 순수 분산 P2P 시스템의 무결성을 확보하고 유지하는 것이다.

블록체인이라는 용어는 문맥과 사람에 따라 조금씩 다른 의미로 쓰이지만 이 책에서는 소유권을 명확화 하는 데에 중점으로 두고 정의를 내린다. 즉, 블록체인이란 무결성을 확보하고 유지하기 위해, 순서에 따라 연결된 블록들의 정보내용을, 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는, 원장의 순수 분산 P2P 시스템을 의미한다.

그렇다면 소유권은 어떻게 증명하는가? 소유자와 물건의 매핑은 원장에 기록해 유지할 수 있다. 그러나 하나의 원장만 가지고 있는 것은 훼손이나 위조의 위험이 있다. 블록체인-데이터-구조를 사용하면 원장의 순수 분산 P2P 시스템을 구축할 수 있다. 블록체인 알고리즘은 개별 노드들이 하나의 일관된 소유권 상태에 집단적으로 도달하도록 해준다. 식별, 인증, 승인은 암호화 기법을 사용해 구현한다. 이는 소유권에 대한 신뢰할 수 있는 판단이 가능하도록 해주고 법적으로 허가된 소유자만 자산의 소유권을 타인에게 이전할 수 있도록 보장한다.

블록체인은 어떻게 작동하는가?

이 부분에서는 소유권을 어떻게 관리하는지를 통해 블록체인의 작동원리를 설명한다.
우선은 소유권을 투명하고 이해 가능한 방식으로 기록해야하고, 소유에 대한 증거까지 제공해야한다. 그러려면 소유권의 현 상태만 기술하지 않고 소유권이 이전된 이력까지 원장에 빠짐없이 기록 보관해야 한다. 즉, 소유권 이전이 일어날 때 마다 트랜잭션 데이터는 누가 누구에게 어떤 아이템의 소유권을 언제 이전했는지 기록한다. 블록체인은 모든 트랜잭션을 일어난 순서대로 블록체인-데이터-구조에 저장하여 전체 이력을 유지한다. 이 이력에 없는 트랜잭션은 어떠한 것이든 일어난 적이 없었던 것으로 간주된다.

블록체인에는 암호화 해시값 Hash value가 광범위하게 사용된다. 이것은 말하자면 지문의 디지털 버전으로 생각하면 된다. 해시 함수는 어떤 형태의 데이터든 입력 데이터의 길이와 상관없이 고정된 길이의 숫자로 변환하는 함수이다. 이것을 사용하는 이유는 엄청난 양의 트랜잭션 데이터들 중 고유한 트랜잭션을 식별해 내고 최대한 빨리 비교하기 위한 것이다.

해시값은 데이터를 비교하고, 데이터의 변경을 감지한다. 해시값이 다르면 데이터도 다른 것이다. 변경되어서는 안 되는 방대한 데이터를 저장하기 위해서는 체인방식과 트리방식으로 해시 참조를 사용하여 저장할 수 있다. 그 외에도 해시값은 컴퓨터들끼리 퍼즐 대결을 하는 데 사용할 수도 있다.

블록체인에서 사용하는 기반 기술 중 하나는 암호화 기법이다. 암호화기법은 사용자를 식별하고 자산을 보호하는 근간이 된다. 블록체인에서는 비대칭 암호화기법을 사용하는 데, 사용자 계정번호는 공개암호키로 사용되고, 소유권을 이전하려는 계정의 소유자는 자신의 개인 키를 사용해 암호문을 생성하게 된다.

이번에는 블록체인-데이터-구조에 대해 구체적으로 알아본다. 블록체인-데이터-구조는 블록이라 불리는, 순서대로 정렬된 단위로 구성된 특수 데이터 구조이다. 각 블록의 헤더가 이전 블록의 헤더를 참조하면 개별 블록 헤더와 순서를 각각 유지할 수 있고, 이것이 모여서 블록체인-데이터-구조를 형성한다. 각 블록 헤더는 암호화 해시값으로 식별할 수 있고, 여기에는 이전 블록 헤더를 가리키는 해시 참조와 응용과제에 특화된 데이터를 가리키는 해시참조를 가지고 있다. 따라서 데이터를 변경하려면 조작된 데이터를 직접적으로 가리키는 해시 참조에서부터 블록체인-데이터-구조의 헤드까지, 모든 해시 참조를 완전히 갱신해야 한다. 블록체인의 데이터를 변경하는 작업은 대단히 힘이 든다. 의도적으로 어렵게 설계해 놓은 프로세스이기 때문이다.

새로운 트랜잭션 데이터를 블록체인-데이터-구조에 추가하려면 다음의 세 단계를 거쳐야 한다. 새로 추가될 모든 트랜잭션 데이터를 담고 있는 새 머클 트리 생성, 이전 블록 헤더를 가리키는 해시 참조와 새로운 트랜잭션 데이터를 담고 있는 머클 트리의 루트를 포함하는 새 블록 헤더 생성, 새 블록 헤더가 가리키는 해시 참조를 생성하고 이것을 블록체인-데이터-구조의 새로운 해드로 경신.
이로써 블로체인-데이터-구조는 추가 전용 불변성 데이터 저장소가 된다.

여기에서는 순수 분산 P2P 시스템에서 트랜잭션 정보 공유를 허용하는 방법에 대해 알아본다. 블록체인에서 메시지는 소문 형식으로 전달된다. 새로운 정보를 받은 노드는 자신이 통신하는 피어에게 전달한다. 개별적인 몇몇 메시지는 손실될 수 있어도 궁극적으로 모든 노드가 뉴스를 수신할 수 있도록 보장한다. 메시지는 디지털 지문이나 암호화 해시값으로 식별 가능하기 때문에 중복 메시지는 쉽게 식별해 무시할 수 있다. 트랜잭션 데이터와 블록 헤더에는 타임 스탬프가 포함되어 있으므로 노드들은 객관적인 시간 기준에 따라 메시지를 정렬할 수 있다.

블록체인 알고리즘은 경쟁과 피어 통제를 합친 채찍과 당근을 활용하고 있다. 모든 노드가 피어들을 감시하는 역할을 하면서 유효하고 인증된 트랜잭션을 추가하고, 타인의 오류를 찾아내서 보상을 받게 하는 것이다.

하지만 시스템의 개별 노드가 유지하고 있는 트랜잭션의 이력이 서로 달라 충돌이 생기는 경우가 있다 .새 블록을 네트워크에 전송하는 데 걸린 시간의 지연으로 인해, 또는 거의 동시에 새 블록을 생성한 노드들로 인해 블록체인-데이터-구조는 선인장처럼 자랄 수 있다. 여기서 의사결정은 모든 노드가 동일한 트랜잭션 이력을 선택하는 것이다. 트랜잭션 데이터 이력 선정에는 두 가지 기준이 있다. 하나는 가장 긴 체인 기준이고 다른 하나는 가장 무거운 체인 기준이다. 하지만 시간이 지나 더 많은 블록이 추가될수록 권위 체인에 포함될 가능성이 높아진다. 이러한 현상을 ‘궁극적 일관성’이라고 부른다.

블록체인은 시스템 무결성에 기여한 피어들에게 보상으로 수수료를 지급한다. 여기에서 블록체인에 의해 소유권이 관리되는 독립적인 디지털 화폐인 암호화폐가 보상의 결제수단으로 사용된다.

블록체인의 한계는 무엇이고 어떻게 극복할 것인가?

블록체인은 두 가지 갈등상황에 직면하고 있다.
블록체인이 소유권을 검증하는 핵심은 개방성과 투명성이다. 그러나 이는 개인정보 보호와 정면으로 대치된다. 이러한 갈등은 데이터를 읽을 권한을 누구에게 줄 것인가를 정하는 문제와 동일하다. 여기에 대해서는 모든 사용자와 노드에게 트랜잭션 데이터를 읽을 수 있는 권한을 부여하는 공개 블록체인과 선택된 사용자와 노드에게만 권한을 주는 비밀 블록체인 형태를 선택할 수 있다.
두 번째 갈등상황은 보안과 속도의 문제이다. 이는 누구에게 쓸 권한을 줄 것인가를 문제와 동일하다. 여기에 대해서는 모두에게 쓰기 권한을 부여하는 무승인형 블록체인과 온-보딩 프로세스를 거쳐 신뢰성이 확인된 소수의 노드나 사용자 그룹에만 쓰기 권한을 허용하는 승인형 블록체인 형태를 선택할 수 있다.
노드별로 읽기와 쓰기 권한에 제약을 두면 블록체인의 주요측면과 상충해 블록체인의 존재이유가 흔들릴 수 있다. 그러나 비밀-승인형 블록체인에서조차 블록체인은 여전히 무결성 유지에 아주 유용하다. 그러므로 블록체인이 여전히 가치를 발휘한다는 가정 하에 제약사항들을 완화할 수 있다.

오늘, 그리고 앞으로의 블록체인

블록체인은 결국 실생활에 사용되기 위해 발명된 것이다. 블록체인은 순수 분산 데이터 저장소로서, 데이터는 불변성이고 추가전용이며 시간 스탬프가 있어 정렬되어 있고 궁극적으로 일관되어 있다는 성격을 갖는다. 이에 따라 다음과 같은 포괄적인 용도로 사용이 가능하다. 1. 존재증명, 2. 비존재 증명, 3. 시간 증명, 4, 순서 증명, 5. 신원 증명, 6.저작권 증명, 7. 소유권 증명
이미 주목 받고 있거나 가까운 시기에 주목을 끌 만한 블록체인 응용분야는 다음과 같다. 1. 결제, 2. 암호화폐, 3. 소액결제, 4. 디지털 자산, 5. 디지털 식별, 6. 공증 서비스, 7. 준법 감시와 감사, 8. 세금, 9. 투표, 10. 기록관리

기술적인 장점 외에도 장기적인 관점에서 블록체인은 다음의 분야에서 큰 역할을 할 것으로 보인다. 1. 탈중개화, 2. 자동화, 3. 표준화, 4. 프로세스 합리화, 5. 처리속도 향상, 6. 비용 절감, 7. 프로토콜 및 테크놀로지의 신뢰 이동, 8. 신뢰를 상품으로 만듦, 9. 기술 인식 향상

그 외에도 미래의 블록체인은 다음과 같은 시나리오로 진행될 것으로 예상된다.
첫째로는 완전한 개방성과 순수 분산 시스템의 속성에 매료된 블록체인 열성팬들이 공개-무승인 블록체인을 사용하여 정부나 상업적인 조직의 통제나 조건으로부터 자유로워지게 하는 대체 소프트웨어 시스템을 창조하는 데 헌신할 것이다.
두 번째는 대규모 상업적인 블록체인이 비밀-승인 블록체인을 활용할 것이다.
세 번째는 정부주도의 프로젝트로서, 수작업을 디지털화하고 기존 인프라를 대체하는 전자정부 사업의 일환으로 추진될 수 있다.