Exploring Uncollateralized DeFi Lending Protocol #2

Sujine
Decipher Media |디사이퍼 미디어
29 min readAug 27, 2022

서울대학교 블록체인 학회 디사이퍼(Decipher)에서 DeFi 신용 대출 프로토콜에 대한 아티클을 연재합니다. 본 아티클에서는 TrueFi를 중심으로 DeFi 신용 대출 프로토콜의 구조와 작동 방식을 자세히 설명하고, Maple Finance와 Goldfinch의 구조와 특징을 다룹니다. 글을 작성하기 앞서, 본 아티클은 정보 제공을 목적으로 작성된 글이며 필자는 신용 대출 프로토콜과 아무런 연관이 없음을 밝힙니다.

Author
황수진, 하헌
Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)
Reviewed By 정재환

Series
1. Exploring Uncollateralized DeFi Lending Protocol #1
2. Exploring Uncollateralized DeFi Lending Protocol #2

목차

  1. TrueFi 상환 프로세스: 코드 분석
  2. TrueFi 청산 프로세스
  3. Maple Finance 대출 프로세스
  4. Goldfinch 대출 프로세스
  5. DeFi 신용 대출의 한계와 방향

이전 글에서는 TrueFi 가 무엇인지, 그리고 어떤 프로세스로 신용 대출 서비스를 제공하고 있는지 알아 보았습니다. TrueFi 는 최초의 DeFi 신용 대출 프로토콜로서 기존 전통 금융과 DeFi 를 혼합 시킨 방식으로 신용 대출 서비스를 제공하고 있었습니다. 차입자의 상환 능력을 평가하고 신용 점수를 도입하여 대출 서비스와 이자율 등에 영향을 주도록 하는 것은 기존 전통 금융과 유사한 점이었으며, 대출 신청 시 거버넌스의 투표를 받도록 하거나 신용 점수에 따른 대출 이자율을 On-Chain 상에서 투명하게 계산할 수 있도록 하는 것은 DeFi 의 투명한 금융 서비스 제공의 특성을 닮아 있었습니다.

이번 글에서는 TrueFi 의 상환과 청산 프로세스의 동작 방식에 대하여 구체적인 내용을 정리하도록 하겠습니다. 이를 위해 각 로직에 대한 TrueFi 의 컨트랙트 코드를 분석합니다.

1. TrueFi 상환 프로세스: 코드분석

TrueFi의 상환 로직 (Truefi github 코드 참고)

이번 글에서 분석한 소스 코드는 2022. 07.08 contracts-pre22 레포지토리 기준으로 작성되었습니다.

먼저 TrueFi 에서 사용자에게 기대하는 상환 로직을 알아보겠습니다. 상환에 관여하는 주요 컨트랙트는 크게 3가지로 볼 수 있습니다.

  • FixedTermLoan (FTL) : Loan Token(대출 토큰) 컨트랙트로 대출이 발생할 풀, 이자, 원금 등 대출 관련 정보를 담고 있는 ERC-20 컨트랙트입니다.
  • FixedTermLoanAgency (FTLA): 사용자와 직접적으로 상호 작용하는 컨트랙트입니다. 대출과 상환을 실행합니다.
  • TrueFiPoolV2 : TrueFi 대출 풀입니다.

요약

차입자는 FTL(대출 토큰)에 이자와 대출금을 상환한 후, FTLA의 자본 회수를 통해 TrueFi 의 대출 풀로 들어가 최종적으로 상환을 완료됩니다.

차용인 상환 : borrower → FixedTermLoan

먼저 차입자가 FTL에 상환하는 부분입니다. 차입자는 대출 기간이 끝나기 전이라면 언제든지 부분 상환(reapy) 혹은 전체 상환(repayInFull)을 할 수 있습니다.

1) 상환 amount 검사

FixedTermLoan.sol

상환을 위해 입력한 금액이 남은 대출금보다 작거나 같아야 합니다.

2)차입자로부터 상환금 수신

FixedTermLoan.sol

차입자의 상환금이 safeTransferFrom을 통해 컨트랙트로 전송된 후 상환되지 못한 금액이 0원이면 (모두 상환한 상태라면) 3) 대출 상태를 settled 로 변환합니다. 이때 차입자로부터 컨트랙트로 전송된 상환금은 FTL 컨트랙트에 묶입니다.

여기까지가 차입자가 관여하는 상환 로직입니다. 이후 묶인 상환금의 이동이 이루어지며 이는 누구나 수행할 수 있습니다.

자본 회수 : FixedTermLoan → FiexdTermLoanAgency → Pool

대출 상태가 settled 가 되면 자본 회수를 진행할 수 있습니다. 차입자의 상환을 통해 대출 토큰 컨트랙트에 묶인 자본을 풀로 넣습니다.

3) 자본 회수를 위해 reclaim 함수 실행

FixedTermLoanAgency.sol

대출 토큰 상태가 settled(혹은 defaulted) 인지 확인합니다. 즉, 차입자가 전부 갚은 상태이거나 채무 불이행인 상태만 자본을 회수할 수 있습니다.

FixedTermLoanAgency.sol
FixedTermLoan.sol

TUSD 대출 토큰을 예로 들어봅시다. TUSD 대출 토큰에는 TrueFi 가 제공하는 TUSD 대출 풀 정보가 담겨 있습니다. 대출 토큰을 발행할 때, 각 대출 풀은 자신의 풀에서 발생한 대출 토큰 정보들을 가지고 있는데 (poolLoans) TUSD 대출 토큰 자본 회수 시 TUSD 풀에서 해당 대출 토큰을 제거합니다.

이후 _redeemAndRepay 함수를 호출합니다. 이 때, _redeemAndRepay 함수에서 대출 토큰으로부터 해당 컨트랙트(FiexdTermLoanAgency) 상환금을 가져오는 redeem() 함수를 호출합니다.

4) 대출 토큰 FixedTermLoan 으로부터 FiexdTermLoanAgency 로 자본 회수

FixedTermLoanAgency.sol

함수 호출자가 FTLA 이고 대출 상태가 settled (정상 상환)인 경우, 대출 시 lock 했던 차입자의 주소를 unlock 합니다. 이후 대출 토큰을 태우고 사용자가 넣었던 자금을 FTLA 로 전송합니다.

5) 가져온 상환금을 대출 풀에 전송

FixedTermLoan.sol

차입자가 원금과 이자를 대출 토큰 FTL에 상환하면, FTLA 는 가져온 상환금(fundsReclaimed)에서 수수료를 제외하고 Pool 에 전송합니다. 이때 발생한 수수료는 staker 들에게 모두 할당됩니다.

여기까지가 트루파이가 기대하는 이상적인 상환 로직입니다. TrueFi에서 발행된 대출 토큰의 상태들은 다음과 같이 Truefi 홈페이지에서 확인 할 수 있습니다.

트루파이의 대출 토큰 목록 (source: TrueFi )

2. TrueFi 청산 프로세스

지금까지는 TrueFi 에서 기대하는 정상적인 상환 로직을 설명 드렸습니다. 지금부터는 차입자가 대출금을 갚지 못하는 채무 불이행이 발생하였을 때, TrueFi가 어떤 방식으로 청산을 진행하는지 설명드리겠습니다.

대출 서비스를 제공하는 입장에서는 항상 채무 불이행이 발생할 수 있는 위험을 고려해야 합니다. 특히 대출 기관의 입장에서 담보를 가지고 상환을 유도하는 담보 대출과는 달리 신용을 활용하는 대출의 경우 채무 불이행의 위험이 더 클 수 밖에 없습니다. 전통 금융 시장에서는 사유 재산을 압류하거나 여신 금융 거래를 제한하는 등 법적, 경제적 조치를 통해 특정 개인이 악의적인 행동을 할 수 없는 시스템을 구축해 놓고 있습니다.

그렇다면 TrueFi 는채무 불이행이 발생하였을 경우 어떤 청산 프로세스를 거치게 될까요? TrueFi 의 청산 프로세스는 아래와 그림과 같은 구조로 이루어져 있습니다.

TrueFi 의 청산 과정 (source: TrueFi blog)

TrueFi의 청산 프로세스는 Secure Asset Fund for Users (SAFU) 에서 처리합니다. SAFU는 TrustToken 의 자금 지원을 받아 설립된 조직으로서 TrueFi에서 발생하는 채무 불이행을 전반적으로 관리합니다. SAFU는 TrueFi의 보험 기관, 혹은 청산자로서 역할을 합니다.

SAFU의 청산 프로세스는 크게 두 개로 나뉩니다. 첫 번째는 SAFU에서 미리 준비된 자금이 채무 불이행 금액을 충당할 수 있는 경우, 두 번째는 채무 불이행 금액을 충당할 수 없는 경우입니다.

1차적 조치

우선 차입자의 채무 불이행이 발생하게 되면 SAFU는 스테이킹 된 TRU 토큰을 Slashing 할 수 있는 권한을 가지게 됩니다. DAO 대출 풀은 SAFU의 권한에 따라 TRU 스테이킹 풀로부터 대출 금액의 최대 10% 금액에 해당하는 TRU 토큰을 받음으로써 손실을 일정 부분 메우게 됩니다. 이는 올바른 대출 결정을 하지 못한 stkTRU 홀더들의 책임을 묻는 과정으로 경제적 불이익을 주는 것입니다.

그 이후, 채무 불이행과 관련된 모든 자금을 관리하기 위해 대출 풀에서 발행된 대출 토큰들은 SAFU로 이전합니다. 이와 동시에 SAFU는 차입자에 대한 법적 조치를 취하게 됩니다. 대출이 승인되기 전 각 차입자는 대출과 관련된 모든 분쟁의 해결이 캘리포니아 주 법률이 적용되는 구속력 있는 중재를 통해 해결된다는 데 동의하게 됩니다. 이에 따라 채무 불이행이 발생할 시, 법정 절차를 통해 차입자로부터 해당 금액을 최대한 회수할 수 있습니다.

SAFU 는 기존에 가지고 있는 자금을 활용하여 채무 불이행 된 나머지 금액을 갚게 됩니다. 만약 SAFU의 자금이 채무 불이행 된 금액을 모두 갚을 수 있다면 청산 프로세스는 종료됩니다. 그러나 채무 불이행 된 금액이 SAFU가 마련한 자금보다 더 크다면 2차적 조치를 취하게 됩니다.

2차적 조치

1차적 조치에서 채무 불이행이 해결되지 못한 경우 SAFU 가 갚지 못한 금액에 대한 Deficiency 토큰이 발행됩니다. Deficiency 토큰이란 법정 절차에 의해 회수된 자금의 우선권을 뜻하는 ERC-20 토큰입니다. 해당 토큰은 채무 불이행 된 금액과 SAFU 기금의 차액 만큼 발행됩니다.

법적 조치로 회수된 자금은 스테이블 코인을 구매하는데 사용되며, 해당 스테이블 코인을 SAFU에 상환하여 남아있던 대출 토큰을 태우게 됩니다. SAFU는 받은 스테이블 코인을 다시 대출 풀로부터 Deficiency 토큰을 환매하는데 사용합니다.

3. Maple Finance 대출 프로세스

이번엔 Maple Finance와 Goldfinch의 대출 프로세스를 알아보도록 하겠습니다. Maple Finance와 Goldfinch는 TrueFi와 유사한 신용 대출 서비스를 제공하는 프로토콜입니다. 신용 대출 프로토콜 간 상환과 청산 프로세스는 유사하지만, 대출 프로세스에서 차이점이 존재합니다.

Maple Finance 대출 프로세스 요약

먼저 Maple Finance 입니다. Maple Finance 는 신용 대출 프로세스를 지원하는 또 하나의 프로토콜로 TrueFi와 함께 가장 대표적인 신용 대출 프로토콜 중 하나로 꼽힙니다. Maple Finance은 전통 금융에서 자주 접하는 투자 신탁 상품인 펀드와 유사한 프로세스로 신용 대출 서비스를 제공합니다.

Maple Finance 의 이해 관계자는 대출자(Lender), 차입자(Borrower), Pool Delegate, Cover Provider 로 이루어져 있습니다.

Maple finance 의 구조 (sorce: maple gitbook)

1) 대출자 (Lender)

대출자는 Pool Delegate가 관리하는 대출 풀에 자금을 예치합니다. 대출자가 예치할 수 있는 토큰의 종류는 Pool Delegate 가 정하게 되는데, 현재는 USDC 스테이블 코인 혹은 wETH 두 종류만 예치가 가능합니다. 스테이블 코인이 아닌 wETH 토큰도 예치가 가능하다는 점이 독특합니다.

대출자가 받는 이자 수익 또한 예치한 토큰에 따라 달라집니다. USDC 를 예치한 대출자는 USDC 를 이자로 받고 wETH 를 예치한 대출자는 wETH 를 이자로 받게 됩니다.

2) 차입자 (Borrower)

차입자의 경우에는 TrueFi와 유사한 프로세스를 거치게 됩니다. 다만, 대출 신청은 대출 풀 관리자인 Pool Delegate에게 요청합니다.

  1. 차입자는 가장 먼저 Maple Finance에 KYC를 하여 화이트리스트에 등록합니다.
  2. 화이트리스트 된 차입자는 Pool Delegate에게 대출을 요청할 수 있습니다. Pool Delegate는 해당 대출 요청에 대해서 실사 과정을 거쳐 면밀히 검토한 후, 대출 여부를 결정하게 됩니다.

3) Pool Delegate

Maple Finance 신용대출 프로세스의 핵심은 Pool Delegate 입니다. Pool Delegate 란 온체인 대출 풀을 생성하고 차입자에 대한 실사를 수행하며 대출 조건을 협상하는 일종의 펀드 관리자입니다. Pool Delegate는 차입자와 마찬가지로 Maple Finance 에 의해 화이트리스트 된 기관으로서 실제 산업에서 펀드 운영을 비롯한 금융 업계의 전문가로 이루어져 있습니다. 현재 등록된 Pool Delegate 로는 Maven11, Orthogonal Trading, Alameda Research, Celsius 가 있습니다.

Pool Delegate 특징

Maple Finance는 TrueFi와는 달리 프로토콜에서 자체적으로 관리하는 DAO 대출 풀이 없습니다. 대신 Pool Delegate가 자체적으로 생성하고 관리하는 대출 풀이 존재합니다. Pool Delegate는 대출 풀의 운영 방식을 Maple Finance에 공개해야 하기 때문에 대출자는 Pool Delegate에 대한 정보와 대출 풀 전략을 분석한 뒤 USDC나 wETH 을 전략적으로 예치할 수 있습니다. 차입자의 경우에도 마찬가지로 Maple Finance에 대출 신청서를 작성하는 것이 아니라 Pool Delegate에게 직접 대출을 신청하게 됩니다.

Pool Delegate 역할

Pool Delegate의 역할 (source: maple gitbook)

대출을 신청한 차입자에 대한 정보 및 자금 전략을 분석하여 신용을 평가합니다. Pool Delegate는 해당 평가를 바탕으로 대출 이자율과 대출 금액을 비롯한 대출 조건을 차입자와 협상할 수 있습니다. 이 때 Pool Delegate의 입장에서 신용 만으로는 대출이 이루어지기 힘들다고 판단되면 차입자에게 일정 금액의 담보를 요청할 수 있습니다. 만약 차입자가 담보 대출 조건에 동의하게 된다면 해당 담보물을 대출 금고에 예치하여야 하고 이는 추후 최종 대출금 상환이 끝난 후 돌려받을 수 있습니다.

Pool Delegate는 대출 풀을 관리하는 펀드 관리자로서 대출 프로세스 전반을 책임집니다. Maple Finance는 Pool Delegate가 자신의 이익을 위해 대출 풀의 자금을 유용할 가능성을 낮추고 자금의 보안을 강화하기 위해 Pool Delegate로 하여금 반드시 Pool Cover에 MPL 토큰을 예치하도록 하고 있습니다. Pool Cover에 예치한 MPL 토큰은 차입자의 채무 불이행이 발생하여 대출 풀에 손실이 발생하였을 때 1차적으로 차감 되는 자본금입니다. 이는 Pool Delgate와 대출자의 이해관계를 일치시킴으로써 대출 풀에 대한 Pool Delegate의 악의적 유용을 방지하고 올바른 대출 결정을 내릴 수 있도록 합니다.

결론적으로 Maple Finance의 대출 프로세스는 전통 신용 대출 서비스를 제공하는 업체들과 다르지 않습니다. 대출자로부터 투자 신탁을 받은 뒤 신용 대출 서비스로 수익을 창출하여 분배하는 프로세스입니다. 그 과정에서 대출자는 신용 평가나 대출 이자율 결정 등 사실상 대출 프로세스에 대한 많은 권한을 Pool Delegate에게 위임하게 됩니다. 따라서 Maple Finance에서는 대출자가 전문가에 자금을 맡기는 대신 대출 프로세스 전반에 관여할 수 없는 한계가 존재합니다.

4) Cover Provider

Cover Provider는 Pool Cover에 자금을 제공하는 예치자 입니다. Pool Cover는 차입자의 채무 불이행이 발생한 경우 해당 금액의 손실을 1차적으로 충당하기 위해 마련된 준비금으로, 풀에서 발생한 대출 금액의 8~12% 정도의 준비금을 확보하는 것을 목표로 합니다. Pool Cover는 대출 풀에 대한 일종의 보험 역할을 제공함으로써 대출자의 손실 위험을 완화해주는 역할을 맡게 됩니다. 참고로 대출 풀을 생성하는 Pool Delegate는 Pool Cover에 반드시 자금을 예치하여야 합니다.

Cover Provider 특징

Cover Provider는 대출 풀의 손실을 충당한다는 점에서 TrueFi의 stkTRU 와 유사한 기능을 가지고 있습니다. 그러나 두 참여자 간에는 명확한 차이점이 있습니다.

  • TrueFi

TrueFi의 경우 차입자의 채무불이행이 발생하였을 때 손실된 자본에 대해 1차적으로 책임을 져야하는 주체는 TRU스테이커 입니다. 따라서 스테이킹 된 TRU의 10%를 Slashing하는 제도는 stkTRU 홀더들이 더 신중한 대출 결정을 이끌어 낼 수 있도록 신용 대출의 승인 여부와 프로토콜의 이익을 일치시키기 위한 목적입니다.

  • Maple Finance

Maple Finance의 경우 채무불이행이 발생하였을 때 손실된 자본에 대해 1차적으로 책임을 지는 주체는 Pool Delegate 입니다. Cover Provider는 더 큰 수익을 얻기 위하여 Pool Delegate의 위험을 일부 나눠 가지게 되는 것입니다. 따라서 Cover Provider는 Pool Delegate에 대한 평판과 획득 가능한 수익률을 비교하여 예치 결정을 하게 됩니다. 이는 결국 대출 풀 내에서 Pool Delegate에 의존하여 보험금을 제공하는 것과 유사한 투자입니다.

Cover Provider 역할

Maple Finance에서는 Pool Delegate 를 제외하고도 일정 자본을 제공하고 수익을 얻고 싶어하는 참여자들이 Pool Cover에 자금을 예치할 수 있습니다. 이들을 Cover Provider 라고 부르는데, Cover Provider는 Balancer에서 USDC와 MPL을 예치 하고 받은 Balancer Pool Token(BPT)을 대출 풀에 제공함으로써 Pool Cover에 참여할 수 있습니다.

Pool Cover 예치자들은 풀 이자 수익의 10% 에 MPL 보상을 더한 금액을 받게 됩니다. MPL 보상은 평균 MPL 가격과 다음 달 프로토콜의 목표 준비금 규모 등에 따라 달라집니다. Pool Cover 예치자가 제공하는 준비금의 규모를 고려해 보았을 때, 해당 이자율은 일반 예치자들보다 높은 수준 입니다.

4. Goldfinch 대출 프로세스

Goldfinch 대출 프로세스 요약

Goldfinch 는 TrueFi와 Maple Finance에 이은 신용 대출 프로토콜입니다. TrueFi와 Maple Finance에 비해 규모는 작은 편이지만, 멕시코와 나이지리아를 비롯한 개발도상국과 신흥 자본 시장에도 자금을 제공한다는 점에서 독특한 프로토콜입니다. Goldfinch는 실물 세계에서 자본에 대한 접근성을 확보하고 금융 통합을 촉진하는 동시에 전 세계의 신용 활동을 On-Chain 으로 가져오고자 하는 목적을 가지고 있습니다.

Goldfinch의 이해 관계자는 크게 차입자(Borrower), Backers, Liquidity Provider, Auditor 로 구성되어 있습니다.

goldfinch 의 구조(source: teletype)

1) 차입자 (Borrower)

Goldfinch는 차입자의 입장에서 이전 두 프로토콜과 비교하여 독특한 신용 대출 프로세스를 가지고 있습니다.

  1. Goldfinch에서 KYC를 거친 차입자는 자신의 차입 풀을 만들어 자금을 조달할 수 있습니다.

이는 특정 대출 풀에 자금을 모으고 해당 풀에 대출 신청을 해야 했던 TrueFi 나 Maple Finance 와는 다른 자본 조달 구조입니다. TrueFi와 Maple Finance에서 차입자는 누군가가 운영하는 대출 풀에 대출 신청을 하는 입장이었습니다. 반면 Goldfinch에서 화이트리스트 된 차입자는 자신이 제공 받고 싶은 대출 금액과 대출 금리, 이자 지급 빈도 등을 먼저 제시함으로써 자신이 만든 차용 풀에 자금을 조달할 수 있습니다. 이는 회사가 회사채를 발행함으로써 자금을 조달 받는 것과 유사한 구조입니다.

자금 조달 방식에서의 차이는 신용 평가 주체의 변화를 가져옵니다. TrueFi의 경우 TrustToken이, Maple Finance의 경우에는 Pool Delegate 가 차입자의 신용을 평가 하였습니다. 그러나 Goldfinch의 경우에는 자금 공급자마다 차입자에 대한 다양한 평가가 가능하고 각자의 판단에 따라 차입이 이루어지는 형식입니다. 따라서 차입자를 평가할 단일화 된 신뢰 기관이 필요하지 않고, 오히려 자금 제공자가 주체적으로 차입자를 판단하여 대출 여부를 결정하게 됩니다.

2. 차입자는 차입자 풀을 설정하기 위해 감사인 비용의 두 배에 해당하는GFI(Goldfinch Token) 를 스테이킹 해야합니다.

이러한 제도는 차입자를 평가할 단일화 된 기관이 존재하지 않기 때문에 자신의 감사에 드는 비용을 자신이 지급해야 하고, 이를 GFI로 지급하기 위함입니다. 이는 전통 금융에서 일정 규모 이상의 회사가 자신의 재무 제표의 정합성을 평가 받기 위해 회계 법인에 감사인 비용을 지불하고 회계 감사를 받는 것과 유사한 프로세스입니다. 남은 GFI에 대해서는 차입자는 빌린금액을 완전히 상환했을 때 해당 금액을 지급받을 수 있습니다.

2) 대출자(Lender) : Backer, Liquidity Provider

Goldfinch의 차입자 풀에 자금을 조달하는 주체는 크게 Backer와 Liquidity Provider 두 가지로 나눠집니다.

  • Backer : Junior Tranche에 자금을 공급하는 주체입니다.
  • Liquidity Provider : Senior Tranche에 자금을 공급하는 주체입니다.

Tranche 마다 수익률과 위험이 차이가 난다는 것은 새로운 개념이 아닙니다. 전통 금융에서는 기존 투자상품을 모아서 새로운 투자 상품을 만들고 리스크와 수익률, 만기 등에 대한 분석을 바탕으로 구조화 하는 기법을 Tranche라고 합니다. 예를 들어 MBS(주택 담보 대출 증권)이 Tranche 형식으로 판매가 되고 있습니다. Goldfinch는 이러한 특징을 DeFi 신용 대출에 적용하였습니다.

(1) Backer

Backer는 Junior Tranche 에 대한 자본 제공자로서, 차입자 풀에 직접 자본을 제공해 주는 역할을 맡고 있습니다.

Backer는 개별 차입자가 제공한 정보를 바탕으로 실사를 수행하고 높은 수익을 얻을 수 있는 대신 첫번째 손실 자본을 공급하게 됩니다. 즉, high risk high return을 얻고자 하는 대출자로 차용 풀에 채무불이행이 발생하였을 때 채무 변제 후순위 자본이 되는 대신 높은 수익률을 얻는 것을 목표로 합니다.

Backer는 주체적으로 차입자를 실사하고 평가합니다. 더하여 Backer의 자금 제공 규모에 따라 Liquidity Provider의 Senior Tranche의 자금 제공 규모가 결정되므로, Backer는 Goldfinch 대출 프로세스의 핵심이라고 할 수 있습니다.

(2) Liquidity Provider

Liquidity Provider는 차입자에 대해 직접 자본을 제공하지 않고 Senior Pool 라는 블라인드 풀에 자금을 제공하는 참여자들입니다. Senior Pool이란 차입자의 풀에 Senior Tranche라는 2차 손실 자본을 제공하고 일정 수익을 얻는 대출 풀입니다.

Senior Tranche 는 Junior Tranche 에 비해 낮은 수익률을 얻지만 채무불이행 발생 시 우선적으로 변제되는 Tranche입니다. Liquidity Provider에게 제공받은 자본을 Goldfinch 내에서 자체적으로 산정한 레버리지 비율에 따라 자동으로 차입자 풀에 할당하게 됩니다.

Senior Pool이 할당하는 레버리지 금액은 다음 공식에 의해 결정됩니다.

A= S*D*L

  • S 는 후원자가 제공한 총 자본입니다. 즉, Backer가 제공한 자본이 클수록 더 높은 레버리지가 됩니다.
  • D는 0에서 1 사이의 값으로, 후원자의 균등 분포 정도에 따라 결정됩니다. 분포가 치우칠 때 D는 0에 가깝고, 후원자가 더 균등하게 분포되어 있을 때, 1에 가깝습니다. 다음 공식을 따릅니다.
  • L 은 0부터 최대 잠재적 레버리지 비율까지의 레버리지 비율입니다.

Junior Tranche와 Senior Tranche는 각 할당된 금액의 10%를 프로토콜 준비금으로 유지합니다. Senior Tranche는 이에 더하여 풀에 할당된 명목 금액의 20%를 Junior Tranche로 재할당 합니다. 따라서 Junior Tranche와 Senior Tranche의 유효 이자 수익률은 차입자가 제공하는 명목 이자율과 차이가 발생하게 됩니다.

Backer (source: teletype)

예를 들어 차입자가 $5M 자금을 1년 간 12%의 대출 이자율의 조건으로 빌린다고 가정하겠습니다. 이 때 Senior Tranche의 레버리지 비율은 4배로 계산됩니다.

Junior Tranche는 먼저 해당 풀에 $1M 의 자금을 제공하게 됩니다. Senior Tranche에서는 레버리지 비율을 고려하여 $4M (= 4 * $1M)의 자금을 할당하게 됩니다. 총 제공한 자금은 $5M (=$1M + $4M) 입니다.

먼저 Senior Tranche의 유효 이자율을 구해보겠습니다. Senior Tranche의 유효 이자율은 프로토콜 준비금과 Junior Tranche에 할당된 금액을 뺀 값과 같습니다.

i = 12% * (1–0.1–0.2) = 8.4%

즉, Senior Tranche 는 명목 이자율 12%의 70%에 해당하는 8.4%의 유효 이자율을 얻게 됩니다. 따라서 Senior Tranche는 $4M* 0.15 * 0.7 = 336K의 이자를 받습니다.

다음으로 Junior Tranche의 유효 이자율을 구해보겠습니다. Junior Tranche의 유효 이자율은 프로토콜 준비금을 빼고 Senior Tranche 에서 재할당 받은 금액을 더한 값과 같습니다.

i = 12% * (1–0.1+4*0.2) = 20.4%

즉, Senior Tranche 는 명목 이자율 12%의 170%에 해당하는 20.4%의 유효 이자율을 얻게 됩니다. 따라서 Junior Tranche는 $1M*0.15*(1–0.1 + 4*0.2)= $204K 를 이자로 받게 됩니다. 즉, Backer는 Liquidity Provider에 비해 높은 위험을 감수한 대가로 높은 유효 이자 수익을 얻을 수 있습니다.

3)Auditor

현재 Goldfinch 의 감사자에 대한 내용은 백서 상에 언급된 내용으로 아직 Goldfinch 프로토콜에는 존재하지 않습니다. 그러나 지난 2022년 6월 Goldfinch 거버넌스에 해당 내용을 구현하고자 하는 프로포절이 제안 되었습니다.

감사인은 Goldfinch 에서 차입자가 차입 금액을 상환할 수 있는 사람인지 판단하는 역할을 맡습니다. 차입자가 자신의 풀을 만들고 자금을 모으기 위해서는 감사인의 합의에 의한 승인 프로세스를 통과해야 합니다. 감사인은 필요하다면 Goldfinch 내 기존 차입자를 주기적으로 재감사할 수 있습니다.

Goldfinch의 감사인이 되고자 한다면 일정 금액 이상의 GFI 를 스테이킹 한 후 Unique Entity Check를 통과해야 합니다. Goldfinch는 Unique Entity Check를 위하여 Unique Identity를 제공하는데 Unique Identity 는 ERC-1155 표준을 따르는 양도 불가능한 NFT 로서 KYC와 KYB를 통과한 Auditor 에 제공하는 토큰입니다.

Audit 과정

  1. Goldfinch 의 차입자가 투표를 요청하게 되면 감사인이 스테이킹 한 GFI의 양에 따라 가중치를 부여하여 무작위로 9명의 감사자를 선택합니다.
  2. 선택된 감사인은 차입자가 합법적인지 여부를 평가합니다. 이 때 감사인은 차입자의 신용을평가하는 것이 아니라 차입자가 자신의 풀에 명시해 놓은 조건들이 합법적이고 다른 차입자와 공모하지 않는다는 확인을 제공합니다.
  3. 만약 2명 이상의 감사인이 아니오로 투표하면 차입자가 스테이킹 한 전체 GFI가 삭감됩니다.(차입자는 감사인 비용의 두 배에 해당하는 금액을 미리 스테이킹 합니다.)
  4. 감사인으로 선택되면 48시간 내 투표를 해야 합니다. 투표 결과에 따라 Senior Tranche와 Junior Tranche 의 자금 차입 여부가 달라지게 됩니다. 다수가 승인을 눌렀지만 아니오로 투표를 하거나, 다수가 차입을 거절했는데 승인을 하는 등 다수와 다른 판단을 했을 때 스테이킹 한 GFI가 삭감됩니다.
  5. 만약 차입인에 대한 올바른 판단을 내린다면 감사인은 GFI를 보상으로 받게 됩니다.

5. DeFi 신용 대출의 한계와 방향

TrueFi, MapleFinance, Goldfinch 비교 표

지금까지 대표적인 DeFi 신용 대출 프로토콜인 TrueFi, Maple Finance, Goldfinch에 대해 알아보았습니다. 각 프로토콜 설계에는 장단점이 존재합니다.

  • TrueFi는 대출 이자율 산정 시 신용 점수와 TRU 토큰을 적절히 조합하여 금리 산출에 반영하였으며, 신용 대출 승인 프로세스의 일정 부분을 stkTRU에게 맡김으로써 신용 대출 프로세스에 스테이커의 참여를 유도했다는 점이 특징이었습니다.
  • Maple Finance는 일정 부분은 중앙적으로 이루어져 있지만, 전문적인 지식과 경험을 갖춘 Pool Delegate에 대출 프로세스의 많은 권한을 위임한 구조를 가지고 있습니다.
  • Goldfinch는 대출 풀을 생성하고 해당 자금을 여러 곳에 할당하는 다른 두 프로토콜과는 달리, 채권을 발행하는 형식으로 신용 대출을 구현하고 있습니다. 차입자는 자신의 신용을 확인 받기 위해 감사인 비용을 GFI 토큰으로 제공해야 합니다.

신용 대출 프로토콜은 지난 몇 개월 동안 빠르게 성장한 프로토콜 섹터 중 하나입니다. 그러나 신용 대출 프로토콜이 전체 DeFi에서 차지하는 TVL 비율은 여전히 작습니다. 아직 신용 대출 프로토콜이 DeFi 시장에서 인기를 얻지 못한 이유는 차입자와 대출자, 두 이해관계자의 입장에서 분석해볼 수 있습니다.

먼저 차입자의 경우 DeFi 신용 대출 프로토콜을 이용할 수 있는 유저들은 매우 제한적입니다. TrueFi 는 차입자 화이트리스트 조건에서 명시적으로 ‘$10만 달러 이상의 자기 자본을 가진 기관’이라고 언급했고, 다른 신용 대출 프로토콜의 경우에도 Alameda Research, Wintermute 등 현실 세계에서 상환 능력이 보장된 기관들만 대출 자금 풀을 운영하고 있습니다.

이는 여유 자본만 있다면 누구나 대출이 가능한 담보 대출 프로토콜과 비교하여 커다란 단점으로 다가옵니다. Aave 나 Compound 의 경우 암호화폐 지갑과 적절한 금액의 담보만 가지고 있다면 누구든지 대출이 가능합니다. 그러나 신용 대출은 일반 개인 유저들이 Cross-Boarder 적인 신용을 구축하기가 사실상 불가능하기 때문에 대출 서비스를 제공 받기 힘든 상황입니다.

다음으로 대출자의 입장에서 생각해보면, 신용 대출 프로토콜에 자금을 예치하는 행위는 담보 대출 프로토콜에 자금을 예치하는 것보다 더 큰 위험을 수반하게 됩니다. 차입자는 신용 대출 프로토콜에서 담보 없이 자금을 차입할 수 있기 때문에 차입자가 채무를 갚지 못하는 상황이 발생하게 된다면 대출자는 원금 손실의 위험까지 감수해야 합니다. 지난 5월 암호화폐 시장에 큰 충격이 발생하였을 때, TrueFi와 Goldfinch의 TVL이 90% 이상, Maple Finance의 TVL이 85% 이상 급격히 감소한 것은 이러한 위험을 대출자들도 인지하고 있었다는 것을 보여줍니다.

따라서 신용 대출 프로토콜이 이러한 한계점을 극복하고 더욱 성장하기 위해서는 다양한 방면에서 구조적인 발전이 필요합니다.

예를 들어, 온체인 신용 점수의 도입은 차입자를 확인하기 위해 KYC 절차를 오프체인에서 비공개로 진행하는 과정을 일부 줄여줄 수 있습니다. 뿐만 아니라 온체인 신용 점수는 개인으로 확대 적용이 가능하기 때문에 현재 기관들에게만 제공하고 있는 신용 대출 서비스를 개인으로 확장할 수 있을 것입니다. 최근 대안 신용 평가의 일종으로 온체인 신용 점수에 대한 관심이 높아지고 있는데, 온체인에서의 활동을 기반으로 다양한 대출 플랫폼에서 상호 운용 가능한 신용 점수를 산출하거나, 현실 세계에서 신용 점수나 등급을 가져와 적절히 조합하는 형식으로 신용 대출에 활용할 수 있습니다.

온체인 신용 도입이 차입자 확대를 위한 방안이라면 대출자 보호를 위해 암호화폐 보험 상품을 도입하는 방법도 존재할 수 있습니다. 현재 TrueFi나 Maple Finance는 자체 토큰을 활용하여 채무불이행 상황을 대비합니다. 차입자의 채무불이행이 발생했을 때 TrueFi의 경우 스테이킹 되어 있는 TRU 토큰이 Slashing 됩니다. Maple Finance의 경우에는 MPL 토큰을 Pool Cover 의 토큰 중 하나로 활용하여 손실을 보상하고 있습니다. 그러나 이러한 구조는 채무불이행이 발생했을 때 토큰 가격에 영향을 미칠 수 있으며, 토큰으로 이해관계자들의 인센티브 구조가 짜여진 프로토콜에도 좋지 않은 영향을 끼칠 수 있습니다. 따라서 신용 대출 프로토콜은 채무불이행의 상황을 대비하기 위해 Nexus Mutual이나 Fairside Network 등 암호화폐 보험 상품을 활용할 수도 있을 것입니다.

현재 신용 대출 프로토콜의 모습은 일반적인 DeFi는 아니라고 평가할 수 있습니다. 신용 대출의 특성 상 Risk Management 를 위해 차입 가능한 유저의 범위를 제한하고, 채무 상환의 의무를 부여하기 위해 익명성을 보장하지 못하는 한계가 존재합니다.

그러나 DeFi의 존재 의의는 다양한 금융 서비스를 투명하게 제공하여 금융 서비스에 대한 접근성을 향상 시키는데 있습니다. 아직은 전통 금융에서만큼 신용이 적극적으로 활용되고 있지 않지만, 신용 대출은 담보가 필요 없기 때문에 자본 효율적이고 미래 현금흐름의 가치를 기반으로 대출을 진행할 수 있다는 명확한 장점이 존재합니다. 신용 대출 프로토콜은 기존 담보 대출 서비스가 제공하지 못하는 새로운 가치를 제공함으로써 디지털 금융의 산업 지형도를 조금씩 변화시키고 있는 DeFi 시장에 신성장 동력으로 작용할 수 있습니다.

--

--