DeFi app 1부, Compound

DeFi란 무엇인지, 그리고 대표적인 DeFi service인 Compound에 대해 알아보자!

wooqii
Ceight
12 min readDec 18, 2019

--

분산금융 (Decentralized Finance. De-Fi)

처음 블록체인이라는 기술이 탄생한 후 그것의 쓰임새에 대해 최근까지 많은 이들이 고민과 연구를 지속하고 있다. 분명히 블록체인은 사용자 입장에서 장점이 있지만 이 장점은 기존의 전통적인 시스템을 파격적으로 바꿀만큼 유의미한 예시가 적은 상황이다. 즉, 아직까지 반드시 블록체인을 사용해야 한다는 영역을 찾지 못한 듯 하다. 작금의 상황에서 블록체인이 가장 필요한 영역으로 분산화된 금융 시스템에 주안을 둔 논의가 활발하다.

디파이(De-Fi)

업계에서는 디파이(DeFi, Decentralized Finance)라는 이름으로 불리는 분산화된 금융시스템이 화두가 되고 있다. 디파이는 암호자산 기반의 금융상품을 직접 분산화된 시스템이나 프로토콜위에 설계되고, 절대적인 신뢰가 필요한 금융기관의 역할을 스마트 컨트랙트(Smart contract)와 블록체인 자체의 무결성, 투명성을 활용하여 구현된다.

제 3국이나 국가적으로 재정위기에 처한 곳에서는 금융서비스를 이용하기가 다른 나라보다 상대적으로 어렵다. 하지만 분산화된 프로토콜 위에서 구현되는 DeFi를 통한다면 인터넷을 사용할 수 있는 어디에서든지 금융서비스를 이용할 수 있다. 현재 Uniswap이나 Compound, Dharma 같은 이더리움 기반 디파이 앱들이 속속들이 출현하고 있는 중이긴 하지만 아직까지 낮은 사용성등 사용자 기반의 접근성 향상이라는 주제가 발목을 잡고 있다. 이번 디파이 글에서는 사용자경험에 대한 이야기는 뒤로 미뤄두고 대표적인 디파이 앱을 알아보고 어떻게 운영되는 지 어떤 플랫폼으로 사용을 할 수 있는 지에 대해 설명하려 한다.

Compound: The Money Market Protocol

아직까지 많은 이들이 토큰을 투자 혹은 투기의 대상으로 이용을 하고 있다. 12월 18일 현재 비트코인은 한달만에 $8,000에서 $6,700까지 가격이 떨어진 상태이다. 2017년 이전에는 새로운 블록체인 시장에 대한 정보 비대칭으로 인해 좋은 의도였건 아니었건 비트코인이란 암호자산을 소유함에 따라 얻은 차익이 상당했기에 뒤늦게 정보를 접한 이들이 과하게 몰린 결과, 전통시장에서는 상상조차 할 수 없었던 상승과 하락, 그리고 은연중에 발생하는 거래소 해킹등의 위협이 블록체인 생태의 건전성에 의문을 제기하는 계기가 되었다. 그러한 연유로 암호자산을 보유한 이들이 그러한 리스크를 회피하기 위해 시도할 수 있는 옵션으로 암호자산에 대한 통제를 안전하게 예탁하면서 시간가치에 상응하는 이자율을 보상받을 수 있는 곳에 대한 수요가 생겼다.

Compound는 자산에 대한 공급과 수요에 따라 알고리즘 적으로 파생된 이자율을 가진 Asset Pool을 보유한 자동화된 Ethereum 블록체인의 프로토콜이다. 잉여현금을 보유한 자산의 공급자(=예치자)와 이를 이용해 투자와 생태계확장에 기여하는 수요자(=대출자)들은 그들 사이에 알고리즘적으로 형성된 이자율(=돈의 가격)을 Compound를 통해 만기일, 이자율 등을 협의하는 절차(계약서 작성 과 같은) 없이 프로토콜과 직접 상호작용할 수 있다. 토큰을 예치해서 토큰으로 이자를 받을 수 있게 된 것이다.

Compound는 이더나 Dai 같은 이더리움 자산으로 이루어진 머니 마켓이 고유하고 투명한 공개 원장에 모든 트랜잭션과 과거 이자율에 대한 정보를 기록하여 이용자가 확인가능하도록 설계되었다.

왜 Protocol로 설계 했는가?

사실 Compound 이전에도 암호자산을 대출해주는 서비스는 존재했다. 그렇지만 널리 사용되기에는 문제점이 있었다.

  • 중앙화된 거래소 — 증거금 대출시스템은 그대로 믿기에 신뢰도가 부족했다. 해킹과 먹튀논란이 있었던 거래소들이 그러한 예시들 이다.
  • P2P 대출 프로토콜 — 개인간 대출 프로토콜은 느리고 비동기적이며 자금 유동성이 매우 부족하고 번거로웠다.

위 두가지 시스템은 모두 자금을 특정 대출에만 집중시켰기 때문에 대출시장이 충분히 성숙해지기 전까지는 원하는 규모의 자금대출이 어렵다.

Ethereum은 Turing-complete한 가상머신으로, 이론상 스마트 컨트랙트를 통해 복잡한 시스템을 구축할 수 있지만, 실제로 금융 어플리케이션을 블록체인에 구현하는 것은 매우 어렵다. 복리계산을 위한 연산과 스마트 컨트랙트가 자체적인 쿼리를 콜하고 외부 이벤트를 받아올 수 없기 때문에 이 문제들을 어느정도 해결할 수 있도록 프로토콜 레이어를 통해 Compound를 구현하게 되었다.

  • Porotocol로 구현하면 대출에 직접 자금을 조달하는 대신, 사용자는 자산을 Asset Pool에 공급함으로써 유동성을 제공하고 락업이 걸려있지 않아 언제든지 대출계약을 철회할 수 있다.
  • 사용자와 Dapp은 프로토콜에 제공되는 사용 가능한 담보에 따라 머니 마켓에서 즉시 대출을 실행할 수 있다.
  • Protocol이 각 자산 시장의 수요와 공급에 따라 알고리즘적으로 이자율을 설정할 수 있다.
  • 임의의 만기일이 없기 때문에 프로토콜은 더 적은 작업량으로 서비스 사용료를 낮출 수 있다.

Protocol을 통해 Asset Pool을 사용하여 다양한 자산을 대출할 수 있는 서비스는 누구나 접근이 용이하다는 점에서 전통적인 금융업체들이 제시하는 이용조건에 대한 문턱을 낮추었다. 게다가 자산현황을 직접 공개함으로써 신뢰성 또한 보장한다는 점이 특징이다.

Compound는 초기에 Ether, 0x, BAT, Augur 만 지원했었지만 DAI와 MCD, USDC등이 추가되어 점차 예대마진을 확보할 수 있는 수단의 범위가 넓어져 대출서비스로서의 신뢰성이 점차 높아지고 있다. (참고로 글쓴이도 이자율이 제일 높은 USDC 예치를 해놓은 상태이다.)

그렇다면 대출상환에 대한 리스크는 어떻게 해결하고 있을까?

Risk & Liquidation

기본적으로 Compound 는 1% ~ 6% 예대 마진을 이용해 건전한 Asset Pool을 형성하고 있다. Metamask의 Eth 잔고를 반영해 차입가능 포지션을 Transaction Fee를 지불하여 열 수 있다.

아래는 담보로 제공할 USDC가 없어 Borrowing을 할 수 없는 상태. (USDC 뿐만 아니라 지원하고 있는 모든 토큰을 Collatral로 제공할 수 있다. USDC로 담보를 제공하려는 이유는 상기와 같이 예치 이자율이 가장 높기 때문이다.)

Compound를 지원하는 Argent wallet을 통해 메타마스크로 약간의 Eth와 USDC를 전송해 보았다.

약 2 USDC를 전송하여 Borrowing Power를 확보한 결과,

$1.5 만큼의 Borrowing power가 생겼다.

이 Borrowing power로 동일한 토큰을 대출을 할 수는 없고 담보로 제공한 자산 이외의 자산을 Borrowing power의 Value에서 일정 비율을 제외한 만큼 대출받을 수 있다. 이 대출비율에 대한 설명은 아래 Interest Ratio Model에서 언급하겠다.

위 스크린샷에서 Borrowing power에 일치하는 대출을 실행할 수 없는 이유는 Borrow Account의 차입 대금의 가치가 차입능력을 초과하는 경우, 현재 시장 가격에서 액면 할인을 제외하고 미결제 차입금의 일부가 유휴 사용자의 cToken(=Collatral Token)의 대가로 상환되기 때문이다. 이것은 Arbitrage 가능성을 줄여주어 프로토콜과 예치자에게 전가될 수 있는 손실리스크를 줄여 결과적으로 안전한 여신생태계를 조성하는데 도움을 준다.

대출된 자산을 소유한 Borrow Account는 Liquidation Process를 call하여 채무자의 cToken을 담보로 자산을 교환할 수 있다. Compound에서 대출자와 상환의무자의 자산과 가격이 모두 프로토콜에 포함되어 있어, 상호 이해관계의 충돌 및 외부 시스템에 의한 간섭이 없이 안전하게 대출과 상환을 진행할 수 있다.

Interest Ratio Model

이렇게 이용자가 편리하게 대출과 예치를 할 수 있게된 요인은 바로 알고리즘에 의한 이자율 산정 모델이 핵심적인 역할을 하기 때문이다. Compound의 이자율 산정은 어떻게 산정이 될까?

먼저 기존의 전통금융권에선 대출을 하기 위해 정말 복잡한 절차를 거쳐야 한다. 가령, 전세 보증금 대출계약을 맺기 위해서도 당장 은행에 제출해야하는 서류가 임대차계약서, 대출신청서, 대출기관확인서, 전입세대원열람, 주민등록등본초본, 신용보증계약서 등 너무나 많은 조건이 필요하다. 대출을 받기 위해 기본적으로 1달 이상이 걸리는 셈이다. 그러나 Compound에서는 이러한 거래 당사자 간 협상해야하는 내용들을 제거하는 대신 프로토콜 단에서 수요와 공급에 따라 각 머니 마켓에서 이자율 균형을 달성하는 이자율 산정 모델을 이용한다.

기본적으로 금리는 수요함수를 따라 변동하기 때문에 수요가 많을 때는 이자율이 높고 적을 때는 이자율이 낮아야 한다.

각 시장 a의 Utilization ratio 인 Ua는 프로토콜 거버넌스 안에서 대출수요에 따라 증가 및 감소를 위의 식을 통해 정의하고, 차입금리에 대한 함수식은 아래와 같이 산정한다.

대출 공급자(예치자)가 얻게되는 대출이자율은 Utilization ratio에 암묵적인 준비금 비율 20%에 예대마진 2.5%를 더하여 산정한다. 구체적인 수치에 대한 설명은 언급이 되어있지 않지만 Asset Pool을 유지하기위한 최소조건이라고 짐작이 된다.

Compound는 거래가 매우 활발히 진행되게끔 유동성을 아직까지는 확보하지는 못 했지만, 이들이 제시한 이자율 산정모델 자체는 예치자에게 지속적으로 Pool에 담보를 유지할 수 있게끔 유도할 수 있는 인센티브를 제공한다. 이는 Compound에 대한 수요가 급격히 늘어나게 되었을 때, 프로토콜 내에 존재하는 유휴 유동성(예치하거나 대출할 수 있는 토큰)이 적어져 뱅크런이 일어날 수 있을 경우, 이자율을 자동적으로 상승시켜 예치자에게 유리한 이자율을 제공하여 Pool에 자산을 더 예치할 수 있게끔 유도하고, 대출자에겐 대출이자율에 대한 디인센티브를 제공하여 대출수요를 낮추는 효과를 기대할 수 있다. 이는 프로토콜 내에 상주하는 보이지 않는 손의 역할을 수행한다고 볼 수 있다.

Interest Rate Mechanics

Compound의 머니 마켓은 모든 차입자에게 균일하게 적용되는 이자율로 정의 되며, 이는 시간이 지남에 따라 수요 공급의 변화와 함께 변동한다. 각 Asset의 이자율은 Interest Rate Index에 의해 산정되며 이 Index는 사용자가 청산 및 상환시, Interest Rate가 변경될 때마다 재계산된다.

Market Dynamics

트랜잭션이 발생할 때마다, Interest Rate Index는 각 블록당 계산된 이자율을 사용하는데, 이는 r*t로 표시되는 이전 블록생성에 사용된 Index 이후의 이자를 계산하여 Compound로 새롭게 계산된 Index로 업데이트 해준다.

위 수식은 a라는 자산에 대한 n번째 블록에 사용되는 Index가 (n-1)번째 블록에 사용된 인덱스에 새로운 기간이자율(r*t)을 반영해서 계산된다는 의미이다.

이를 이용하여 총 차입잔고도 이전블록의 차입잔고에 새로운 기간이자율을 반영하여 업데이트 된다.

그리고 적립된 이자의 일부는 reserveFactor(0~1사이의 값)라고 하는 유보비율에 의해 결정되어 적립금으로 사용되어 지속적인 대출환경을 조성한다.

이렇듯 Compound는 전통 금융권이 사용하는 자산과는 근본적으로 다른 자산을 이용한다는 차이점 말고는 거의 여신금융이 사용하고 있는 로직과 흡사한 구조로 생태계를 생성하고 유지 및 확장할 수 있다는 특징이 있다는 것을 알 수 있다. 물론 이것또한 아주 완벽하다고 할 수는 없지만 사용자가 점차 늘어 Asset Pool의 규모가 커지고 있다는 것은 Compound가 어느정도 DeFi Application으로서 입지를 다지고 있다고 볼 수 있다.

지금까지 DeFi 생태에서 눈여겨 볼만한 서비스 중 하나인 Compound에 대해서 Compound가 운영되는 원리와 Interest Ratio Model에 대해서 알아보았다. 프로토콜 내에서 자체적으로 수요-공급의 법칙에 따라 자동적으로 계산된 이자율을 사용하는 Compound는 그 자체로 DAO로서 기능을 수행하는 것 처럼 보인다. 외부의 개입없이 프로토콜 생태계 안에서 성공적으로 서비스를 제공하는 Compound 처럼 분산화된 금융으로 DeFi가 많은 사람들에게 사용되는 계기가 되길 기대한다.

References

--

--