메뉴

문서정보

생소할 수 있겠으나 "Programmable Money"은 2020년 블록체인 분야의 주요 키워드들 중 하나였다. 여기에서는 프로그래밍 가능한 돈과 프로그래밍 가능한 지불에 대해서 살펴보려 한다.

목차

스테이블코인과 암호화폐

Programmable Money에 대해서 기술하기 전에 스테이블코인과 암호화폐에 대해서 정리를 해야 겠다. 스테이블코인과 암호화폐는 모두 디지털화된 자산이기 때문에 "Programmable Money" 범주에 들어가지만 이 문서는 스테이블코인을 기준으로 할 것이다.

Programmable Money 란

블록체인에 대한 여러 사용 사례가 예측되고 있지만(가능성이 있으나 아직은 이거다 싶은 사례가 없기 때문에 예측이라고 했다.) 암호화폐에 대한 가장 가치 있는 사례는 "Programmable Money" 일 것이다.

화폐는 원자와 같은 거라서 그 자체로 어떠한 목적성을 가지게 할 수 없다. 때문에 목적성은 금융회사에서 만들어낸다. 저축, 투자, 보험 상품등이 그것이다. 하지만 스테이블코인은 디지털이므로 프로그래밍을 할 수 있다. 예를 들어 "특정 조건이 충족되면 실행되는 지불 시스템을 설계할 수 있다. 이러한 지불 시스템은 미리 설정한 논리에 따라서 자동으로 지급/결제 될 것이다.

이런 지불은 정기 주문, 자동 이체등의 형태로 은행이 제공하고 있다. 하지만 이러한 지불에는 복잡한 논리를 구현하기 어렵기 때문에 유연성이 제한된다. 반면 분산원장기술에 기반한 스마트 컨트랙트는 높은 자유도를 제공한다. 스마트 계약을 이용해서 화폐 그자체에 복잡한 비즈니스 프로세스를 적용할 수 있다.

예를 들어, IoT 산업에서 자율 주행 전기차의 경우 다음 충전소로 이동해서 가격을 협상하고 충전 프로세스를 수행 한 다음 결제를 할 수 있다. 지불은 미리 정의된 논리에 따라서 이해 관계자에게 자동으로 이체된다(예: 전기 업테 70%, 충전소 제조업체, 주유소 운영자 및 자동차 제조업체). 환경에너지 보조금을 지원하거나 마케팅 비용을 태우고 싶을 경우에도 자동으로 집행되도록 설정 할 수 있다.

Programmable Money의 가능성

나는 (아마도)클라우드 엔지니어다. 클라우드 관점에서 Programmable Money의 가능성을 살펴보려 한다. 클라우드란 무엇일까라고 물어보면 난 이렇게 답한다. 컴퓨팅 파워가 API로 만들어지면서 지금과 같은 클라우드 산업이 만들어졌다. 난 StableCoin에서도 비슷한 가능성을 찾는다. 돈이 디지털화 된다는 것은 모바일 소프트웨어로 물건 값을 지불 하는 그 이상이라고 본다.

스마트컨트렉트의 주요 기능

스테이블코인에서 "Prgrammable"한 기능은 스마트컨트렉트로 구현한다. 이를 위해서 우선 스마트컨트랙트에 대한 이해를 해야 한다. 스마트컨트렉트는 세 가지 주요 기능을 가지고 있다.

프로그래밍 기능

스마트컨트랙트는 임의의 논리에 의해서 트리거되는 프로그래밍 가능한 지불을 가능하게 한다. 이 기능은 Programmable의 핵심이다. 이는 스마트컨트랙트가 모든 비즈니스를 표현하는 동시에 돈을 전송할 수 있음을 의미한다. 예를 들어, 이자 지급은 자동으로 수취인에게 계산되고 라우팅될 수 있다. 에스크로 로직을 포함하는 스마트컨트랙트는 계약에 따라서 자산(물건)이 배달되기를 기다리고 있다가, 배달이 완료되면 수취인에게 돈을 전송 할 수 있다. 물건이 판매되기 까지 여러 단계가 걸리는 경우 각각의 단계에 대한 정산을 자동으로 수행 할 수 있다. 예를 들어서 인플루언서 기반의 온라인 마케팅 시장을 만들려고 하면, 물건을 홍보하고 판매에 이르게한 인플루언서에게 자동으로 정산하도록 할 수 있다.

돈의 속성 정의

스마트컨트랙트를 이용해서 돈에 속성을 부여할 수 있다. 속성에는 "화이트리스트/블랙리스트, 지역, 산업분야, 전송 가능한 돈의 크기에 대한 제한"등이 포함될 수 있다. 이러한 기능은 자동화된 AML/KYC 요구사항을 체크하는 스마트컨트랙트의 개발이 가능하게 한다. 예를들어 일정 비용 이하는 AML/KYC의 대상이 되지 않지만, 일정 비용을 초과하면 AML/KYC 체크를 하는 등의 로직이 자동으로 실행되게 할 수 있다.

토큰화

스마트컨트랙트는 토큰을 생성 할 수 있다. 디지털 유로의 경우 담보가 입금되면 스마트컨트랙트를 통해 토큰이 만들어진다(기술적으로 채굴이라고 하는 과정을 거쳐서). 기술적인 관점에서는 사소하게 들릴 수 있지만 경제적으로는 복잡하다. 유로의 여러 변형이 토큰으로 생성 될 수 있다. 미국 달러의 경우 USCCoin, Tether, Paxos, Gemini USD와 같은 스테이블코인 프로젝트에서 볼 수 있는 형태다.

계약의 실행

아래 그림은 지불 가치 사슬을 스마트컨트랙트의 기능을 이용해서 통합하는 것을 묘사하고 있다. 이 시스템에는 계약 실행 시스템, 디지털 지불 인프라, 화폐 단위의 세가지 카테고리로 분해한다. 이러한 구분은 올해 말에 발표 될 Agata Ferreira 와 Geoffrey Goodell과의 공통 연구 프로젝트를 기반으로 한다.

 digital payment

계약 실행 시스템과 디지털 결제 인프라 및 화폐

프로그래밍 가능한 지불 가치 사실의 첫 번째 단계는 지불을 자동으로 트리거하는 계약이다. 계약은 DLT 위의 스마트컨트랙트로 구현된다. 우리는 계약이 체결되고 실행되는 환경을 "계약 실행 시스템(contract execution system)"이라고 부른다. 모든 비즈니스 로직과 비즈니스 프로세스는 이러한 계약을 실행 할 수 있다. 가격협상, 청구 프로세스 및 지불등의 프로세스가 스마트 컨트랙트를 통해 구현된다. 이들 단계에서 스마트컨트랙트의 첫번째 기능인 프로그래밍 기능이 작동한다.

후속지불(subsequent payment)는 두 개의 주요 지불 레일을 통해 전달될 수 있다. DLT를 사용하거나 브리지 또는 트리거 솔류션을 사용하여 SEPA, TARGET2 또는 TIPS와 같은 기존 인프라를 사용하여 처리 할 수 있다. 이러한 지불 레일을 "디지털 지불 인프라"라고 한다. 인프라는 스마트컨트랙트의 두번째 기능인 돈의 프로그램 가능성에 중요한 역할을 한다. 이 기능은 아래에 자세히 설명 할 것이다. 디지털 결제 인프라는 결제 자산이 계정기반인지 토큰 기반인지 여부도 결정한다(스마트컨트랙트의 세번째 기능). 계정을 기반으로 하는 결제에서는 계정 소유자의 신원이 필요하다. 토큰 기반의 결제에서는 토큰의 유효성을 확인 할 수 있는 기능이 필요하다. 토큰은 토큰화된 자산 또는 서비스와 같은 다른 토큰으로의 교환이 가능할 때 잠재력을 실현할 수 있다. 이를 통해 DVP(delivery vs payment)라고 하는 즉각적인 거래 완결성을 이용한 원할한 교환이 가능해진다.

마지막으로 화폐단위를 지정해야 한다. 기존 결제 및 결제 시스템에서 사용 할 수 있는 유일한 화폐 단위는 법정화폐(KRW, USD, EUR)이다. DLT에서는 비트코인과 이더와 같은 다른 자산을 거래 할 수 있다. 법정 화폐로 표시된 돈은 DLT의 토큰을 통해서 직접 이체될 수 있다. 명목화폐를 토큰화 하는 방법에는 5가지가 있다.

  1. 중앙 은행 디지털 통화(CBDC) : 중앙 은행에서 법정 통화로 발행한다.
  2. 함성 중앙 은행 디지털 통화(eCBDC) : 시중 은행 또는 전자화폐 기관에서 발행한다. 법정 통화는 아니지만 중앙 은행 준비금이 100% 지원된다. 언제든지 법정 통화로 교환할 수 있는 의무를 가진다.
  3. DLT 기반 상업 은행 화폐 : 규제 금융 기관(예: 시중 은행)에서 발행한다. 중앙 은행 준비금(즉 부분 준비금 시스템)에 의해 부분적으로 지원된다. 언제든지 법정 통화로 교환할 수 있는 의무를 가진다.
  4. DLT 기반 전자 화폐 : 전자화폐 기관에서 발행한다. 계정에서 전자 화폐로 완전히 뒷받침 되며, 언제든지 법정 화폐로 교환할 의무가 있다. 유럽 연합 집행위원회에서 제안한 새로운 MiGA 규정에서 이는 E-Money(EMT)라고 한다.
  5. Fiat backed StableCoin : 규제 대상(상업은행, 결제 서비스 제공업체) 또는 규제되지 않은 금융 기관에서 발행한다. 스테이블코인은 법적지원을 받지 않는 상품이다. 기본적으로 법정 화폐의 지원을 받지만 법정 화폐로 교환할 것을 명확히 의무화 하지 않는다. 이러한 이유로 거래 상대, 환율 및 유동성에 따른 위험이 있을 수 있다. 유럽 연합 짐행위원회에서 제안한 MiGA 규정에 따르면 자산참조토큰(ART)로 분류한다.

Programmable Money

이제 스마트계약의 두번째 기능인 "프로그래밍 가능한 돈(Programmable Money)에 대해서 살펴보겠다. 돈이 DLT를 기반으로 하면 프로그래밍이 가능해진다. 즉 고유한 논리를 전달하는 토큰을 만들 수 있다. 예를 들어, 토큰이 시간이 지남에 따라 가치를 얻거나 잃도록 프로그래밍 할 수 있다. 혹은 토큰이 여행과 음식과 같은 특정 항목에만 사용되도록 할 수 있다.

여기에서 우리는 돈의 프로그래밍 가능성과 지불의 프로그래밍 가능성을 구별해야 한다. 전자는 DLT 기반 토큰에 고유한 논리를 부여 할 수 있는 능력에 관한 것이다. 후자는 DLT를 기반으로 하는 스마트컨트랙트에 의해 트리거될 경우 프로그래밍 가능한 화폐 또는 그렇지 않은 화폐를 통해 결제될 수 있는 자동 결제를 의미한다. DLT 시스템에 다른 토큰이 배포되면 원할한 토큰 교환이 가능하다. 이는 증권 거래, 디지털 상품 또는 서비스 소비 등에 적용 될 것이다.

Fiat backed stablecoin

암호화폐 담보 및 담보화 되지 않은 스테이블코인도 있기는 하지만 가장 잘 알려진 스테이블코인은 법정화폐 담보되는 스테이블코인이다. 이러한 스테이블코인은 국가 통화를 기준으로 !:1 비율로 고정된 가치를 유지한다. 법정화폐 기반 스테이블 코인은 아래와 같은 강점을 가진다. 약점은 아래와 같다. 예를 들어 USD로 담보하는 테더(Tether)의 경우 법정 준비금으로 완전히 뒷받침되는지에 대한 의심을 받고 있다.

핀테크세계의 많은 사람들이 암호화폐와 블록체인 기술의 광범위한 사용이 금융 서비스 특히 결제 산업에 근본적인 변화를 가져올 수 있다고 믿고 있다. 그러나 비트코인 또는 이더는 지불 시스템에서 사용하기에는 유용성이 떨어지거나 해당 생태계를 불안정하게 만들 수 있다. 이에 따라서 법정화폐가 담보되는 스테이블코인에 대한 수요가 증가하고 있다.

스테이블코인은 지불 시스템으로의 가능성과 블록체인과 스마트컨트랙트의 "Programmable" 기능을 가질 수 있지만, "화폐 관리의 신뢰"라는 측면에 있어서 약점을 가지고 있다. 하지만 달리말하자면 "화폐 관리로서의 신뢰"를 확보 할 수 있다면 해결 할 수 있을 것으로 보인다.

Programmable Money, Payment가 가지는 장점

중앙 은행이 발행하는 CBDC든, 시중 은행 혹은 인터넷 기업이 발행하는 스테이블코인이든 블록체인 기반의 화폐를 발행하면 많은 이점이 있다.

블록체인의 추적성은 자금세탁 및 부패와 같은 금융 범죄를 예방하는데 도움이 될 것이며, 블록체인의 효율성은 거래와 결제에 있어서의 비효율성을 제거 할 것이다. 블록체인에서의 거래/결제에 사용하는 화폐는 완전한 디지털이기 때문에 실시간에 가까운 처리가 가능하다. 지불 지시에서 청산, 결제 및 외환 거래, 정산에 이르기까지 거의 모든 단계를 실시간으로 실행되는 단일 원자 트랜잭션으로 캡슐화 할 수 있다.

블록체인이 제공하는 (제한적이라고 하더라도 더 투명하게 할 수 있다)투명성, 추적성과 보안은 거래 상대간의 신뢰를 촉진하그 금융 포용성을 가속화하는데 도움이 될 수 있다. 모바일 장치를 가진 사람은 누구나 디지털 지갑에 접근 할 수 있는데, 이는 은행 계좌 없이 가능하도록 할 수 있다. 은행보다는 모바일기기 사용자가 훨씬 많기 때문에 포용성을 크게 높일 수 있을 것이다. 본질적으로 약 20억명 정도의 은행 바깥에 있는 사람들이 은행 서비스를 이용 할 수 있다.

프로그래밍 가능한 돈은 규제 제어를 희생하지 않고 이메일처럼 쉽게 흐르도록 할 수 있는 엄청난 잠재력을 제공한다. 통화정책, 개인정보보호, 목적의 설정등을 넣을 수 있는 프로그래밍 가능한 화폐의 미래가 밝아지고 있다.

돈의 디자인

자동화되고 효율화된 지급/결제도 중요한 Programmable의 속성이긴 하지만 근본적인 속성이라고는 할 수 없다. 왜냐하면 자동화된 지급/결제는 지금도 은행이 수행하고 있기 때문이다. 은행은 기본적인 if/then 로직을 사용해서 고객의 지시를 자동으로 수행하고 있다. Programmable의 보다 근본적인 속성은 "디자인"이라고 생각한다. 특정 방식으로 행동하고 어느 시점에서 누가 그것을 소유하든 특정 목적으로 누군가에 의해서 생성된 돈이다.

은행에 있는 돈은 모두 다르기 때문에 은행은 이를 할 수 없다. A-은행과 B-은행의 KRW는 서로 다르다.
  1. A-은행에 있는 KRW는 A-은행이 관리하고, B-은행에 있는 KRW는 B-은행이 관리한다. 따라서 돈이 특정 방식으로 작동하게 하려면 두 은행 모두에서 작동하는 동일한 논리와 제약을 구현해야 한다. 새로운 추상화된 레이어를 얹어야 함을 의미한다.
  2. A-은행의 KRW와 B-은행의 KRW는 법적으로 그리고 실질적으로 서로 다른 수단이다. A-은행과 나, B-은행과 나의 법적계약으로 이루어지기 때문이다.
위의 결과 서로 다른 엔티티에 의해서 통제되는 돈은 모두 다르며 다른 방식으로 작동한다. 자금세탁방지와 같은 규칙을 전반적으로 구현하는게 얼마나 어려울지 생각해보자. 해외 송금이라면 더 어려워질 것이다. 모든 참가자가 동일한 논리를 적용해야 하는데, 비싼 작업이 될 것이다. (오픈뱅킹은 일부 이러한 목적을 달성할 수 있을 것이다.)

왜 이런 문제가 발생할까 ? 거래가 이루어지는 동안 참조할 수 있는 원장이 없기 때문이다.

돈의 디자인이라는 관점에서 이제 돈 자체에 제어 논리가 내장된 돈을 만들 수 있다. 이 논리는 스마트컨트랙트 수준에서 수행된다. 스마트컨트랙트는 일반적으로 블록체인 네트워크의 모든 참가자에 의해 실행되는 코드로 아래의 것들을 정의 한다.
  1. 돈의 특성 : 단위, 처음 소유한 사람
  2. 사용자와 돈의 상호작용 방법 : 잔액 요청, 결제
제약 조건은 스마트컨트랙트에 코딩되므로 누가 돈을 관리하고 있는지에 상관없이 모든 지불 요청은 이러한 제약조건을 따르게 된다.

이런 식으로 돈을 의도한 목적지로 흐르도록 할 수 있다. 이 특수 목적 돈이 목적지에 도착하면 필요한 경우 다른 형태로 "환매" 할 수 있다.

예: Alice는 Bob에게 온라인으로 자동차를 구입한다. 지불은 차량이 인도되고 배기가스 배출 테스트를 통과한 후에만 실행된다. 조건 검증에는 운송업체와 차량 검증 업체가 참여한다. 두 작업이 모두 완려되면 거래가 승인되고 차량소유의 변경, 수수료가 정산되고 차량 판매자에게 돈이 이체된다.

용어

참고