Bitcoin as a neutral database
아래 설명하는 블록체인, 중립 데이터베이스, 비트코인이란 단어들은 비트코인 SV를 지칭하는 것임을 알립니다.
블록체인은 중립 데이터베이스다. 주로 블록체인을 중립성보단 분산성에 더 의미를 두는 경우가 많은데, 분산성에는 그다지 실제적 가치가 없다. 현실에서 분산성은 시스템이나 네트워크의 견고성(robustness)이나 탄력성(resilience)을 기준으로 평가하는데, 아나키즘적 이념이 가득한 블록체인 업계에서 분산성은 곧 탈중앙화, 검열저항성으로 받아드려지기 때문에 이념적 가치만 존재한다. 또한 기업들이 블록체인을 적용한답시고 프라이빗 형태로 서버를 나누는 건 그저 비효율적인 분산 시스템을 구축한 거나 다름없다. 블록체인은 중립적일 때 그 가치가 빛난다.
분산 DB와 중립 DB의 극명한 차이는 데이터베이스의 "권한"에서 나타난다. 분산 DB는 하나의 데이터베이스 관리 시스템이 다수의 CPU에 연결된 장치를 제어하는 형태다. 즉 관리자가 존재하는 중앙집중적 방식이며, 관리자가 데이터의 수정과 삭제 권한을 가진다. 공개형 블록체인으로 네트워크를 구현하고 많은 수의 노드를 전세계에 분산시켜 놓았다고 한들, 네트워크의 참여가 자유롭지 않으면 분산DB와 다를바가 없어진다.
반면에 중립 DB는 권한/관리자가 없는 클라우드 형태의 데이터베이스로서, 어느 누구나(=채굴자) 자본과 기술력이 있다면 데이터베이스로서의 역할을 할 수 있다. 이렇게 모인 DB들은 서로 연결되어 네트워크를 구성하고, 경쟁적으로 데이터를 받아 입력하고, 합의를 통해 데이터의 이중기록을 방지한다.
비트코인은 최초의 중립 DB다. 거래수수료와 비트코인 발행 수익을 얻기 위한 채굴자들이 막대한 컴퓨팅 자원을 이용해 경쟁적으로 트랜잭션을 처리한다. 채굴자들은 네트워크를 이뤄 서로 소통하고, 네트워크 합의 (=작업증명, PoW)를 통해 비트코인이 두 번 사용 (=이중 지불)되거나 위변조 되는 것을 막는다.
반면에 프라이빗 블록체인은 관리자가 존재한다. 만약 관리자가 없는 방법으로 프라이빗 블록체인을 운영하려면, 컨소시엄 형태의 시스템을 구성해야 하는데, 문제는 기업들이 서로 내부 시스템을 공개하거나 연결하려고 하지 않는다 (블록체인을 적용하는 건 단순한 API 연결이 아니다). 이러한 적용의 어려움이 아직까지 허가형 블록체인의 상용 사례가 없는 이유기도 하다.
만약 비트코인의 중립 데이터베이스가 단순히 작은 데이터의 숫자만 기록하는 수준이었다면 중립장부라고 표현했을 것이다. 필자가 데이터베이스라고 피력하는 이유는 큰 데이터까지도 기록될 수 있기 때문이다. 그동안 탈중앙화란 명분으로 블록사이즈와 스크립트 사이즈를 확장되지 않았던 비트코인 (BTC) 때문에 중립 데이터베이스의 가능성을 보지 못한 것뿐이다. 재밌게도 큰 사이즈의 데이터를 블록체인에 기록하는 기능은 비트코인의 시작부터 존재했다.
사토시 나카모토는 비트코인 스크립트로 구현할 수 있는 다양한 명령어 (OP_CODES)를 구현해놨고, 그중 하나는 4.29GB까지 한 트랜잭션에 기록하는 OP_PUSHDATA4 다. 물론 사토시가 사라진 후, 비트코인 개발자들은 위험하다는 이유로 오리지널 OP_CODE들을 삭제했다. BTC가 오리지널 비트코인이라고 주장하는 사람들은 비트코인의 초기 코드가 블록도 아닌 한 개의 트랜잭션에 큰 데이터를 넣을 수 있는 기능이 있었다는 사실을 알아야 한다. (비트코인 SV는 최초 사토시가 작성한 명령어를 되돌리는 작업 중이다.)
다시 중립 데이터베이스로 돌아와서, 비트코인은 기존 DB형태와 비교했을 때 독특한 구조를 가진다. 비트코인을 통하면 누구나 블록체인에 데이터를 기록 (write)할 수 있고, 한번 기록된 데이터는 불변 (immutable)하며, 모든 데이터는 열람 (read) 가능하다. 즉 WORM (Write Once, Read Many) 형태의 데이터베이스다. 좀 더 자세히 알아보자.
중립성 (Neutrality)
데이터베이스의 중립성이란 데이터베이스를 사용할 때 어떠한 이해관계가 없음을 의미한다. 경쟁관계인 A, B, C기업이 산업단의 공통적 문제를 가지고 있다고 가정해보자. 현재는 이 문제를 중계업자가 비즈니스로서 해결한다. A, B, C기업의 얽혀있는 이해관계 때문에 중계자가 필수다. 예를 들어 삼성카드가 온/오프라인 결제 (VAN/PG) 사업에 뛰어들면, 다른 카드사들이 써주지 않을 것이다. 같은 업종의 경쟁사가 중계 플랫폼 역할까지 확장하는 것을 원하지않기 때문이다. 결국 중립적으로 경쟁사들의 정보를 취득하고 처리할 수 있는 제3의 주체 (=데이터베이스)가 필요하고, 이러한 중계형 사업은 산업 전반에 만연해있다.
중립 데이터베이스로서의 비트코인은 정확히 이 문제를 해결한다. 개인 간의 송금을 은행이 대신해주고, 은행 간의 송금을 청산기관과 중앙은행이 대신하던 기존의 금융거래 방식을 비트코인이 중립원장 (=중립 데이터베이스) 개념을 도입하여 중계자 없이 가능하게 한다. 이제 단순히 금융과 숫자를 넘어, 다양한 정보를 중립 데이터베이스에 기록하게 되면 기존엔 불가능했던 가능성이 열린다.
비가역성 (Immutability)
블록체인에 기록된 데이터는 불변하다. 즉 한번 기록되면 수정될 수 없다. 이러한 기록의 비가역성은 데이터를 사용하는 주체로부터 데이터를 신뢰할 수 있게 한다. 현재는 제3의 중계자가 데이터베이스를 대신 관리하고, 그 데이터베이스의 불변성을 "법적"으로 보장한다. 중계자의 서비스를 사용하는 고객들은 데이터가 누군가에 의해 임의로 변하지 않을 것이라는 법적인 확신을 가지고 중계 서비스를 사용한다.
이러한 법적 강제성은 현실에서 100% 작동하지 않는다. 복잡한 산업의 이해관계 속에서 누군가가 이득을 취하기 위해 몰래 정보를 수정하는 사건들은 꾸준히 일어난다. 단순히 데이터 관리직원의 부패함 말고도, 시스템의 실패나 누군가의 실수로 인해 데이터의 정합성이 어긋나는 가능성은 항상 존재한다. 반면 블록체인은 암호학적으로 데이터의 불변성을 보장하기 때문에, 인간의 영역 (부패, 실수, 등)이 존재하지 않는다.
투명성 (Transparency)
블록체인에 기록된 정보는 모두 공개되어있다. 이러한 데이터베이스의 투명성이 데이터를 어느 누구나 검증할 수 있게 하고, 이 역시 신뢰로 이어진다. 정보를 공개하는 것 자체는 블록체인이 필요 없지만, 위에서 언급한 비가역성을 보장한 상태에서 투명하게 공개하는 방법은 블록체인 없이는 불가능하다.
만약 기업 간 정보를 공유한다고 가정해보자. 서로 다양한 채널 (이메일, 메시지, API 등)을 통해 정보를 공유할 순 있지만, 그 정보를 공개했다는 사실만으로 정보의 정합성을 신뢰할 수 없다. 기존 방식에서 이러한 정보의 정합성은 법적계약과 권위성으로 해결한다. *권의성의 예로는 공공정보가 있다. 국가가 제공하는 정보 (예. 여권번호, 주민등록번호 등)는 그 자체로 권위를 가지기 때문에 정보제공자를 의심하지 않는다.
즉 블록체인은 비가역적으로 기록된 정보를 투명하게 공개함으로써 법적계약 (=이해관계의 해결)과 정보제공자의 권위성을 불필요하게 만든다.
호환성 (Interoperability)
투명성과 비슷한 맥락이지만, 중립 데이터베이스에 기록된 정보는 자유롭게 호환이 가능하다. 기존의 폐쇄적인 독립 데이터베이스 간 API 통신이 아니라, 중립 데이터베이스에 기록하고, 기록된 정보를 알아서 가져다 쓰는 방식이다.
기존의 방식은 기업들이 각자의 독립된 데이터베이스를 운영하고, 사용자의 정보는 각 기업에 귀속된다. 즉 동일한 사용자일지라도, 정보를 기록하는 공간이 분리되어있기 때문에 사실상 다른 정보가 돼버린다. 예를 들어 필자가 페이스북과 트위터에 동일한 글을 올린다고 했을 때, 사실상 동일인물이 같은 콘텐츠를 생산한 것이지만, 시스템 상으로는 다른 주체가 다른 플랫폼에 정보를 입력한 것이다. 따라서 페이스북의 글을 자동으로 트위터에 올리려면 양 사가 통신할 수 있는 API가 존재해야 한다.
중립 데이터베이스는 데이터 자체가 주체성을 가지고 그 데이터를 기록한 자가 암호키로 소유하는 구조이기 때문에 데이터의 소유자와 데이터를 가져다 쓰는 주체가 분리되어있다. 즉 페이스북과 트위터가 데이터와 데이터 제공자를 소유/관리하는 구조가 아닌, 양사가 중립 데이터베이스에 기록된 데이터를 가져다 보여주는 뷰어(viewer)의 역할만 하게 되는 것이다.
자율성 (Autonomy)
자율성이란 중립 데이터베이스가 그 자체로서 자율적인 주체로 다양한 기능을 할 수 있음을 의미한다. 이제 기록의 영역을 넘어서 특정 로직을 처리할 수 있는 서버로의 역할로 범위가 넓어진다. 사토시가 블록체인을 통해 여러 기능을 구현할 수 있도록 명령어 (OP_CODES)를 만들어놓았고, 이 명령어들로 다양한 프로그램을 만들 수 있다.
무허가성 (Permissionlessness)
무허가성이란 중립 데이터베이스의 사용에 있어서 어느 누구의 허가도 필요 없음을 의미한다. 데이터베이스에 정보를 기록(write)하고, 열람(read)을 누구나 자유롭게 할 수 있다. 위에서 언급한 호환성과 같은 맥락에서, 타인이 기록한 공개된 정보를 내가 허가 없이 가져올 수도 있다.
예를 들어 WeatherSV는 날씨정보를 비트코인 SV에 기록하는 서비스다. 이들이 중립 데이터베이스에 올리는 정보들은 모두 공개되어있기 때문에 어느 누구나 허가 없이 사용이 가능하다. 이들의 온체인 (on-chain) 정보는 City on Chain이라는 지도기반 광고 서비스가 사용하고 있다. 또한 이 날씨정보로 중앙 서버가 없는 예측시장을 만들수도 있다. 즉 블록체인의 무허가성은 서비스들 간의 자유로운 통신과 호환을 가능하게 함으로써, 단순히 비즈니스 단의 협업이 아닌 프로토콜 단의 산업적 협력을 가능하게 한다.
보안성 (Security)
비트코인 블록체인은 보안과 사용을 분리한다. 비트코인 네트워크의 보안을 책임지는 주체는 채굴 자이고, 이 채굴자들은 비트코인이 자금 송금으로 쓰이던, 데이터 사용으로 쓰이던 전혀 상관하지 않는다. 그들은 채굴 보상과 수수료를 통한 수익창출이 목적이다.
비트코인을 데이터베이스로 사용하는 것에 대해 AWS의 가격과 비교하여 비판하는 자들은 이러한 사용과 보안의 분리성을 이해하지 못해서다. 당연히 데이터를 기록할 때 바이트당 지불해야 하는 비용은 클라우드 서비스가 비트코인 보다 비교할 수 없을 만큼 저렴하다. 다만 기업이 데이터를 기록하고 저장하는 인프라를 구축하는 데 있어서 드는 보안, 인력 등의 비용을 감안하고 위에서 언급한 중립성, 비가역성, 호환성, 투명성, 무신뢰성 등 과 같은 가치들을 포함한다면 비트코인은 아주 매력적인 데이터베이스가 된다.
Legallychained는 비트코인 SV에 법률 계약문서를 암호화하고 기록하여 계약 당사자 간 블록체인을 통해 P2P로 계약을 관리할 수 있게 해 주는 서비스다. 이들이 경쟁하고자 하는 서비스는 도큐사인 (Docusign)인데, 도큐사인은 매년 수십만 건 거래되는 계약서의 유출이나 해킹을 방지하기 위해 천문학적인 금액을 내부 보안시스템과 인력에 쓴다. 이러한 비용은 그대로 사용자 서비스 비용으로 귀결된다. Legallychained가 데이터 입력할 때 쓰는 비용 (네트워크 수수료)은 도큐사인이 쓰는 비용보다 비싸지만, 데이터 자체의 보안은 비트코인 네트워크가 대신해주기 때문에 가격경쟁이 가능한 것이다.
중립 데이터베이스의 예제
비트코인은 금융의 영역에서 그 자체로 중립 데이터베이스의 킬러앱이다. 숫자라는 데이터를 중립 데이터베이스에 기록함으로써 중계자 없는 금융거래를 가능하게 만들었다. 이러한 혁신을 이해하려면 삼식부기의 개념을 이해해야 한다.
복식부기 (double-entry accounting)는 두 거래상대방이 각자의 장부에 차변 (credit)과 대변 (debit)을 기록하여 계산하는 부기 방식이다. 거래상대방 각자의 원장에 동시에 기록함으로써 각자의 대차변의 합계가 일치한지를 확인함으로써 검증한다.
반면에 삼식부기 (triple-entry accounting)는 거래상대방의 장부 이외에 제3의 장부를 두고, 이 장부가 두 거래상대방의 대차변을 모두 기록함으로써 정합성을 유지하는 부기 방식이다. 두 거래상대방 원장 간의 오차가 있는 가능성을 없애는 이론상에만 존재하던 부기 방식이다.
삼식부기가 현실화하기 어려운 이유는, 제3의 장부를 누가 기록하고 어디에 보관할지의 문제가 해결되지 않아서다. 만약 특정 주체가 제3의 장부를 보관한다면 그건 복식부기를 대신해주는 것과 다를 바 없다. 우리나라 신한은행 고객이 독일의 도이치은행으로 국제송금을 한다고 가정해보자.
송금을 할 때 신한은행은 도이치은행으로 돈을 직접 보내지 않는다. 신한은행은 SWIFT를 통해 도이치은행에게 얼마의 돈을 보낸다는 메시지를 전달하고, 신한은행과 도이치은행이 각각 고객으로 있는 미국의 시티은행이 이 두 거래은행의 계좌에서 이체 (환거래 금융)한다. 즉 시티은행이 신한과 도이치의 장부를 들고 있을 뿐, 삼식부기라고는 볼 수 없다.
삼식부기의 개념은 1989년 일본의 한 회계학자가 개념화했고, 금융 암호학자인 이안 그릭 (Ian Grigg)이 2005년 암호기술을 이용한 삼식부기의 가능성을 처음 언급했다. 이안은 전자서명을 이용해 증명 가능한 영수증 형태로 기록을 남기는 방식을 제안하였지만, 이 역시 현실화되진 않았다. 전자 서명된 영수증 자체를 누가 가지고 보증해주는가의 문제를 해결하지 못했기 때문이다.
사토시가 이안의 논문을 읽었는지는 모르지만, 비트코인의 중립 데이터베이스는 결국 이안이 논문에서 제안한 전자 서명된 영수증이 기록되는 공간이나 마찬가지다. 사토시는 그 중립 데이터베이스가 자생할 수 있는 경제적 방법을 고안한 것이다. 기존에 존재하지 않았던 신뢰할 수 있는 비트코인의 중립 데이터베이스가 삼식부기의 제3 장부 역할을 할 수 있게 되면서, 비트코인을 통한 P2P 금융거래가 가능해진 것이다.
이제 비트코인은 단순히 숫자만 기록하는 중립원장의 개념에서 무한한 가능성을 가진 중립 데이터베이스로서의 역할을 해나가고 있다. 이번 포스팅은 중립 데이터베이스의 개념을 설명하였으니, 다음 글은 중립 데이터베이스를 사용하는 다양한 방법을 논해보고자 한다.