블록체인 전문 리서치 스타트업 ‘피넥터’ 팀이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.
*이번 포스팅은 R3CEV의 CTO인 Richard Brown의 글(A simple explanation of how money moves around the banking system)을 번역 및 재구성 한 글입니다.
뉴욕의 R3CEV라는 스타트업 주도 아래 현재 30개의 대형 은행들이 컨소시엄을 이루어 블록체인 기준을 만들고 있다. 아주 흥미로운 시도다. 먼저 금융 소프트웨어를 개발한 후 은행에 납품하면, 당연히 은행들은 기술 적용에 부담을 느낄 것이니, 아예 은행들을 한 곳에 모아 얘기를 들어주고 각 니즈에 맞게 같이 설계하자는 거다. “책임”을 싫어하는 보수적인 금융기관을 잘 이해하는 듯하다.
궁극적으로 R3CEV는 여러 금융기관이 한 개의 장부 체계를 사용하는 컨소시엄 블록체인을 구축하려 한다. 각 은행 자체 장부 시스템에 “중복”되어 기록되는 금융정보를 공용 블록체인에 한번 기록해 “매칭” 비용을 절감하고, 기관들은 이 공동 블록체인을 복사, 분산 보관하여 데이터가 서로 일치하는지만 확인함으로써 “보안”을 강화하고 비용을 절감한다.
조금 더 깊이 알기 위해 기존 금융 시스템에 대한 간단한 이해가 필요하다. 먼저 알아야 할 중요한 사실은 은행에 예금(deposit)한 돈은 부채(liability)라는 것이다. 예를 들어 10만 원을 내 은행 계좌로 보내면, 그 10만 원이 그대로 은행 어딘가 쌓여있는 게 아니라 내가 은행에 10만 원을 빌려준 게 되는 것이다. 은행에게 내 계좌 속 10만 원은 갚아야 할 빚이다.
1. 같은 은행 계좌로 송금
자 이제 송금을 해보자. 국민은행을 이용하는 고객 김씨는 친구인 박씨에게 100만 원을 보내려고 한다. 박씨 역시 국민은행 고객이다. 김씨가 100만 원을 송금하면, 국민은행은 김씨의 계좌에서 100만 원을 차감하고 박씨의 계좌에 100만 원을 입금한다. 돈이 은행 밖으로 나가지 않았으니 은행 잔고의 계좌 위치만 간단히 업데이트하면 된다. 모든 은행 내부의 거래는 자동으로 정산된다.
2. 다른 은행 계좌로 송금
하지만 만약 국민은행 고객인 김씨가 우리은행 고객인 이씨에게 돈을 보내면 어떻게 될까? 이번에도 100만원을 보내보자.
국민은행이 김씨의 계좌에서 100만 원을 차감하는 건 쉽다. 하지만 우리은행이 100만 원을 이씨의 계좌에 입금해야 할 이유는 없다. 국민은행이 직접 현금을 가져와주지 않는 이상, 우리은행에게 이씨의 계좌에 입금할 100만 원은 빚(liability)이기 때문이다. 즉 우리은행은 국민은행에게 빚을 진 것이다. 이 신뢰의 문제를 어떻게 해결할까?
국민은행과 우리은행이 서로 고객으로서 계좌를 보유하면 된다. 이를 환거래 또는 코레스 뱅킹(Correspondent banking)이라고 부른다. 두 은행이 환거래 약정을 맺고 자본을 이동하거나 통화를 교환한다. 예치금 계정을 설치하여 환자금을 예치하는 거래를 예치 환거래라고 하고 계정 설치 없이 거래계약만 체결하는 것을 무예치 환거래라고 부른다.
아마도 이런 과정을 거칠 것이다.
1. 국민은행은 김씨의 계좌에서 100만 원을 차감
2. 국민은행은 “우리은행의 국민은행 계좌”에 100만 원을 입금
3. 우리은행은 “우리은행의 국민은행 계좌”에서 100만 원을 차감
4. 우리은행은 이씨의 계좌에 100만 원을 입금
하지만 또 다른 문제가 있다. 환거래 약정은 직접적인 금융관계를 가지는 두개의 은행끼리의 약정이기 때문에, 제 3 또는 제 4의 은행들과 거래를 하려면 더 복잡하고 많은 비용이 들게 된다. 환거래 약정을 맺지 않은 은행에 송금을 하려면 여러 다리를 거쳐야 하기 때문이다.
뿐만 아니라 우리은행은 이 거래를 통해 큰 리스크를 부담한다. 만약 송금액이 100만원이 아닌 100억이었고 환거래의 대상이 국민은행이 아닌 소자본의 은행이었다면 어땠을까? 소규모 은행이 파산이라도 하게 되면, 우리은행은 큰 타격을 입게 된다.
3. SWIFT (Society of Worldwide Interbank Financial Telecommunication)
스위프트는 국제은행들이 서로 메시지를 주고받는 통신 네트워크다. 사실 스위프트로 “돈”을 보낸다는 말은 틀린 말이다. 스위프트로 “지시”를 보내는 것이다. 국민은행은 스위프트를 통해 “환거래 예치 계좌에서 100만원을 인출하고, 이씨의 계좌에 100만원을 입금해라!”라고 메시지를 보낼 수 있다. 즉 상호적으로 관리하는(또는 중개은행을 통해) 환거래 계좌의 잔고를 인출 및 입금하면서 돈의 흐름이 발생하는 것이다.
문제는 비용과 유동성이다. 스위프트는 비싼 네트워크이기 때문에 소액이든 고액이든 송금을 할 때마다 사용할 수는 없다. 또 은행들은 환거래를 위해 많은 예치금이 필요한데, 수십, 수백 개의 은행 간 원활한 송금을 하려면 많은 자본이 묶여 있어야 하기 때문에 유동성 문제가 따른다.
4. 청산기관 (Clearing house)
위 문제를 해결하기 위해 등장한 것이 이연 차감결제시스템(DNS: Deferred Net Settlement system)이라 불리는 청산기관(금융결제원)이다. 스위프트 메시지를 매번 서로 보낼 필요 없이, 이 기관이 모든 결제를 기록하고 밸런스를 청산하기 때문에 은행들은 훨씬 더 적은 자본을 환거래 은행에 예치할 수 있다.
은행들은 스위프트 대신 스케줄에 맞게 결제를 기록하고 계산하는 청산기관(BACS, ACH, EURO1, VISA, Paypal 등)에 메세지를 보낸다.
하지만 이 방법 역시 큰 문제를 지닌다. 결제의 완결(settlement finality)이 불가능하기 때문이다. 결제완결성이란 지급결제시스템을 통해 이루어지는 결제가 기관의 파산과 같은 상황에서도 취소되지 않고 해당 지급결제시스템의 운영규칙에 따라 무조건 청산되는 것을 뜻한다.
청산기관을 이용해 다시 한 번 시나리오를 짜보자.
국민은행 고객인 김씨는 우리은행 고객인 이씨에게 100만 원을 보내려 한다. 국민은행은 송금을 위해 청산기관에 메시지를 보내지만 국민은행이 송금 과정에서 파산할 가능성에 대비해 우리은행은 즉각 이씨에게 100만원을 지급하지 않는다(물론 한도별로 실시간 계좌이체가 가능하다). 실제로 이씨에게 입금이 되었다고 하더라도, 금융사기나 실수였다면 상환(reverse transaction)되어야 하기 때문에 이 거래는 절대로 완결(final)된다고 볼 수 없다.
5. 중앙은행(Central bank)
그래서 이제 중앙은행(한국은행)이 등장한다. 만약 은행들이 모두 중앙은행에 계좌를 열고, 중앙은행에게 그 은행 계좌들의 잔고를 입출금 하라고 메시지를 보내면 은행 간의 거래는 훨씬 간단해진다. 이를 즉시 총액결제시스템(RTGS: Real-time Gross Settlement system)이라고 부른다. FedWire(달러), CHAPS(파운드), Target 2(유로화) 같은 기관이 이를 담당한다. 즉시 총액결제시스템(RTGS)을 이용하면 빠르고 상환이 없는 완결된 결제가 가능하다. 단점이 있다면 비싸고 고액의 결제(high value-transaction)에만 사용된다.
위에 간략하게 설명된 시스템들 모두 현재 용도, 비용, 속도, 위험부담에 맞게 사용되고 있다. 이연 차감결제시스템(DNS)과 즉시 총액결제시스템(RTGS)은 고액 결제에 사용되고 자동청산기관(ACH)은 소액결제에 사용된다. DNS와 ACH는 거래를 누적한 후 정해진 스케줄에 따라 결제를 하기 때문에 느린 반면, RTGS는 누적 없이 실시간으로 결제를 해 빠르다.
이 복잡한 은행 시스템은 연간 20~30조 원 가량을 순전히 금융기관 간 결제를 청산하는 데 사용한다. 은행들이 R3CEV를 비롯한 여러 블록체인 스타트업에 기웃거리는 이유도 이것 때문이다. 중복되는 금융정보의 매칭 비용을 없애고 고비용의 느린 은행 메세지 네트워크를 대체하기 위해 공유 장부 시스템(블록체인)을 분산 보관하여 수조원의 비용을 절감하는 것이다.
은행이 어떻게 돈을 옮기는지 간단하게 알아봤다. (실제로 구동되는 시스템은 위의 설명보다 훨씬 더 복잡하고 어렵다)
[fbcomments url=”http://ec2-13-125-22-250.ap-northeast-2.compute.amazonaws.com/2017/05/22/blockchain-bank-mover/” width=”100%” count=”off” num=”5″ www=”wonderful comments!”]