메타버스의 경제학 03 (1부)
비트코인(Bitcoin) 이전에 비트골드(Bitgold)가 있었다. “있었다”는 표현은 틀린 표현일 수도 있겠는데, 왜냐하면 1998년에 Nick Szabo에 의해 제안되었던 비트골드는 아이디어로서만 존재했고 실제 만들어지지는 않았기 때문이다. 비트코인과의 놀라운 유사성 때문에 비트코인의 창시자인 Satoshi Nakamoto가 Nick Szabo가 아니냐는 말들이 있었으나, Szabo가 부인하였다.
Nick Szabo의 제안 중 현재 실현되고 있는 것 중 하나가 Smart Contract이다. 그의 Smart Contract의 정의는 “계약을 실행하는 컴퓨터화된 거래 프로토콜 (a computerized transaction protocol that executes the terms of a contract)”로서 “악의적이거나 사고의 예외적인 경우를 최소화하며 중간거래자의 필요를 최소하해야한다 (satisfy common contractual conditions, minimize exceptions both malicious and accidental, and minimize the need for trusted intermediaries).” Szabo는 Smart Contract의 대상으로 금융파생상품들을 생각하고 있었다. 직접 인용하면, “이 새로운 유가증권들은 채권같은 상품이나 옵션, 선물 같은 파생상품을 결합하여 만들어진다.” (“These new securities are formed by combining securities (such as bonds) and derivatives (options and futures) in a wide variety of ways.”) 비록 블록체인상에서 거래되는 것은 아니지만, 현재의 대부분의 금융거래는 smart contract의 일종으로 볼 수 있다.
Smart contract가 필요한 이유는, 거래상품과 거래대금이 동시에 교환되어야 하는 어려움 때문에 발생했다. 거래대금을 먼저 지급한 후에 거래상품을 못 받은 경우나, 거래상품을 먼저 주고 난 이후 거래대금을 못 받은 경우 모두 거래에 사고가 일어난 것이다. 기대에 미치지 못하는 품질의 거래상품을 받는 경우도 거래상품을 못받는 경우와 유사한 거래 사고라 할 수 있다. 이러한 사고의 가능성을 알고 있는 경제주체는 거래를 꺼리게 될것이고, 이는 자원의 효율적 배분을 저해할 것이다. 여기서 사고의 가능성이란 거래(상대방)에 관한 신뢰의 문제와 동일하다. 즉, 상대방이 거래상품을 제대로 배달할 것인지, 배달된 상품은 약속했던 상품의 품질을 가지고 있는지, 상대방이 약속한 거래대금을 약속된 날짜에 지불하는지 등에 관한 신뢰의 문제이다. 이런 신뢰의 문제를 (부분적으로) 해결하기 위한 여러 방법들이 있어왔다. 예를 들어, 브로커 또는 중간거래자가 거래 상대방에 대한 신뢰를 어느 정도 보장해 줄 수 있을 것이다. 예를 들어, 부동산 거래를 할때에는 공인중개사가 거래되는 부동산이 소유권이라던지 개발제한등의 제반사항들에 대해 조사한다. 또한, 상대방이 약속된 날짜에 계약을 이행할 것인지 등과 거래상대방에 대한 인상등도 말해준다. 또한 보증보험을 통해 거래액의 일부를 보장해주기도 한다. 회사간의 장기간의 거래에서는 상대방에 재무상태나 과거거래에 대한 기록등을 열람하기도 한다. 장기간에 거래한 회사들 사이에는 서로간의 신뢰가 쌓여 있어 배달될 상품의 품질에 대한 어느정도의 확신이 있고, 반대로 대금이 약속한 날짜에 지불되리라는 어느정도의 확신도 있다. 하지만, 이 모든 것들은 사고의 가능성을 0으로 만들지는 못한다. 거래당사자들이 예상하지 못했던 일들이 일어날 가능성은 항상 존재한다.
Szabo가 생각한 Smart Contract는 이러한 사고 가능성을 0으로 만들기 위해 고안되었다. 거래상품과 거래대금이 모두 전자화되어 있으므로 거래가 동시에 일어나게 할 수 있다. 특히 블록체인상에 구현된 Smart Contract는 제 3자인 인증기관 없이 동시에 거래가 일어날 수 있게 하여, 효율성을 한층 더 증가시킬 수 있다.
그러나 전자화되지 못한 상품의 거래에서는 이런 Smart Contract가 불가능하다. 예를 들어, LNG선을 구매할 경우 배를 전자화 시킬 방법은 (현재는!) 없으므로 Smart Contract가 불가능하다. 더불어, LNG선처럼 비용이 많이 들어가는 상품의 경우, 대금을 한번에 이체시키지 않고 나누어 분할하여 판매자가 분할입금된 대금을 사용하여 상품을 제작하게 된다. 즉, 거래상품을 받기 전에 거래대금을 지불해야만 하는 상황을 피할 수 없다. 또한, 최종적으로 완성된 LNG선이 정확히 원했던 스펙으로 만들어졌는지도 확인하기 위해서는 실제 배를 운항하고서도 매우 오랜 시간이 흘러야만 할 것이다. 즉, 거래가 종결되고 나서도 실제 받은 거래상품이 원래 거래하기로 했던 상품인지에 대한 확인을 할 수 없는 것이다. 따라서, LNG선처럼 크고 많은 비용이 들어가는 상품에 대해서는 판매자의 평판이 가장 중요하다.
한발 더 나아가서, 설사 전자화되어 있더라도 상품의 질에 대한 판매자의 주장과 구매자의 평가가 다를 수 있고, 구매자 입장에서는 거래사고가 있었다고 해석할 수 있다. 예를 들어 내가 원하는 앱을 구현해줄 프리랜서 프로그래머를 온라인으로 구했다고 했을 경우, 내가 원하는 기능이라는 것들을 완벽하게 기술하는 것은 불가능할 것이다. 예를 들어, 그 앱에서의 버튼의 위치와 색깔 등 모든것을 적시하는 것은 불가능하기 때문이다. 따라서 구매자와 판매자가 거래된 물건에 대한 평가를 달리 할 가능성이 있다. 따라서 전자화되어 있다 하더라도 프로그램과 전자화되어 있는 암호화폐를 제 3자인 인증기관 없이 사고 없는 거래를 하는 것은 현재로서는 불가능한 것이다. (왜냐하면 Smart Contract안에 그 프로그램에 대한 세세한 스펙을 모두 적어 놓는다면, 결국에는 그 계약서 자체가 프로그램의 설계도가 될것이고 따라서 판매자가 필요치 않을 수 있다.) 결국 현재는 프로그래머의 평판에 대해 말해줄 사람들이나 그 프로그래머가 과거에 팔았던 프로그램들을 평가해줄 제3자의 인증기관이 필요하다.
지금 설명한 것처럼 Smart Contract는 생각만큼 거래사고의 경우를 많이 해결하지는 못한다. 하지만 이의 해결을 위해, 그리고 다른 목적들을 위해, Soulbound Token (SBT) 이라는 대한 개념이 나오게 되었다. 다음회에서는 Soulbound Token에 대해 알아보도록 하겠다.