[BokLee series] 4. 랜딩 프로토콜 개선 — Partial Liquidation

Jaeseung Lee
Decipher Media |디사이퍼 미디어
8 min readMar 4, 2022

서울대학교 블록체인 학회 디사이퍼(Decipher) BokLee팀 에서 Fixed Rate Lending 프로토콜에 대한 글을 시리즈로 연재합니다. 본 시리즈는 Yield Protocol 및 자동 청산의 작동 원리를 자세하게 설명한 글이며, 따라서 해당 주제를 처음 접하시는 분의 경우 이해가 어려울 수 있습니다. 이해가 어려울 것 같은 분들은 본 글을 읽기 전에 관련 Youtube 영상을 먼저 시청하시는 것을 추천합니다. 해당 동영상은 BokLee 팀이 2022년 DE-FERENCE 에서 진행한 본 글 시리즈에 대한 쉬운 설명입니다.

[BokLee: Road to an Ultimate Lending Protocol]

  1. 랜딩 프로토콜에 필요한 두가지 요소
  2. Yield Protocol 분석
  3. Yield Space 분석
  4. 랜딩 프로토콜 개선 — Partial Liquidation

Authors
이재승 of Decipher DeFi Research Team BokLee
Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)
Reviewed by: 이재복

Introduction

이전 글들에서 DeFi 생태계에서 고정금리 대출의 필요성에 대해 알아보고 만기가 정해진 고정금리 대출 중 Zero-Coupon Bond 구현체인 Yield Protocol과 이를 보조하는 AMM 모델인 Yield Space에 대해 자세히 분석하였습니다. 해당 서비스를 통해 이자율 변동이 심한 디파이 생태계에서 리스크를 줄이고 안정적인 고정금리 대출을 구현할 수 있지만 여전히 담보가치 변동으로 인한 청산의 위험은 남아있는 상태입니다. 대부분의 랜딩 프로토콜이 상대적으로 가격 변동이 적은 ETH와 같은 암호화폐를 담보 대상으로 삼지만 암호화폐의 특성상 그 안정성을 담보할 수 없고 만약 이더로 안정적인 담보 예치가 가능하더라도 이는 다양한 암호화폐를 담보화하지 못하는 허들이 존재하게 됩니다.

위와 같은 문제점에 착안하여 차입자가 담보로 맡기는 암호화폐에 대해 롱포지션을 가져가면서도 이 암호화페를 담보로 대출을 통해 다양한 금융활동을 할 수 있도록 돕기 위해 자동부분청산 알고리즘을 도입하였습니다. 이를 간단히 요약하면 차입자가 설정한 target level로 총 대출금액과 대출한도금액의 비율을 유지시켜 한번에 크게 청산당하는 상황을 막을 수 있게 하는 로직입니다.

지금부터 고정금리대출의 자동 부분 청산 알고리즘의 모티브가 된 Apircot Assist에 대해 간단히 분석해보고 이후 고정금리대출 프로토콜에 어떻게 적용되는지 설명하겠습니다.

Apricot Assist

Solana의 랜딩 프로토콜 중 하나인 Apricot Finance는 자산 예치를 통한 이자 지급(Apricot Lend), 이자농사 레버리지를 위한 자산 대출(Apricot X-Farm)을 지원합니다. 이 때 자산 대출 시 담보청산의 위험성을 줄이기 위해 Apricot Assist라는 시스템을 도입하였습니다 [1].

Apricot에 예치한 각 토큰에 대해 tokenDepositAmount * tokenPrice * tokenLTV를 계산하여 합산하면 차입자가 해당 프로토콜에 예치한 자산을 담보로 총 빌릴 수 있는 자산의 양(borrowLimit)이 나옵니다. 이 때 totalBorrowValue / borrowLimit을 특정 threshold로 가정하면 이 값을 조절하여 한번에 청산당하기 전에 미리 조금씩 상환하여 담보물을 지킬 수 있습니다. 따라서 해당 비율을 100%로 잡으면 일반적으로 청산처럼 동작하고 이 비율을 낮출수록 청산당하기 전에 미리 차입자가 예치한 담보물을 조금씩 팔아서 스테이블 코인을 상환하면서 해당 비율을 조정합니다.

threshold 비율에 따른 상환규모 계산은 아래와 같이 계산합니다.

이 때, 차입자가 예치한 자산을 파는 순서는 아래와 같습니다. 차입자가 설정한 threshold에 도달할 때 까지 아래 순서로 계속 빌린 자산의 일부를 상환합니다.

  1. LP 토큰을 사용해서 빌린 스테이블 코인 일부를 갚음
  2. Apricot에 예치해놓은 다른 스테이블 코인을 빌린 스테이블 코인으로 스왑 후 갚음
  3. Apricot에 예치해놓은 일반 토큰을 갚아야 되는 스테이블 코인으로 스왑 후 갚음

아래 플로우차트는 위 내용을 도식화한 것 입니다.

Assist Logic

Partial Liquidation for Fixed-rate Lending

앞 글들에서 설명한 바와 같이 Yield Protocol은 Zero-Coupon Bond 형태를 기반으로 시간변수를 고려한 안정적인 고정금리대출 알고리즘을 구현하였습니다. 하지만 담보로 많이 차용하는 wBTC나 ETH는 기존 법정화폐 대비 변동성이 심하므로 고정대출 상환 기간이 도래하기 전에 차입자의 담보물 자체가 청산당하는 상황이 발생할 수 있습니다. 즉, 해당 담보물에 대해 롱포지션을 가져감과 동시에 자본효율성을 높이기 위해 대출을 실행했는데 순간의 가격변동으로 인해 강제적으로 포지션을 유지하지 못하는 상황이 발생할 리스크가 존재합니다 [2]. 이에 더해 대부분의 프로토콜들은 청산을 대신해주는 사람들을 위해 일정 비율 할인된 가격으로 해당 담보를 매입할 수 있게 해주므로 프로토콜 사용자 입장에서는 이로 인한 추가 손실이 발생합니다.

따라서 이러한 문제를 해결하기 위해 앞의 Apricot Assist 서비스를 응용하여 고정대출 기간동안 나의 최대 대출가능액 대비 현재 빌린 대출액에 대한 비율(targetLevel)을 일정하게 유지시키는 알고리즘을 고안하였습니다. 이로 인해한번에 청산당하는 것이 아닌 시장 상황에 따른 부분 청산을 프로토콜 레벨에서 진행할 수 있게 되었습니다. 이 로직의 장점은 정말 큰 비율로 담보 자산의 가치가 하락하지 않는 이상 이것이 전부 청산 당할 확률은 0%에 가까워지게 된다는 것 입니다.

부분 청산의 순서는 다음과 같습니다.

  1. 우선 부분 청산이 발생할 지점인 triggerLevel과 부분 청산을 통해 도달할 비율인 targetLevel을 설정합니다.
  2. 현재 빌린 대출액 대비 차입자의 최대 대출가능액이 triggerLevel에 도달할 경우 Valut를 Assist Valut로 분류하여 예치 자산에 대한 소유권을 프로토콜로 이전합니다. 이후 targetLevel에 도달할 때까지 DEX Aggregator을 통해 차입자의 담보물을 팔아 차입자가 빌린 자산을 상환합니다. 이 때 담보물이 여러 개로 구성되어 있을 경우 가장 에치 금액이 많은 순서대로 부분 청산을 진행합니다.
  3. 이후 상황에 따라 차입자가 대출액을 한계치까지 활용하고 싶다면 targetLevel을 높게 설정하고 안정성을 선호할 경우 targetLevel을 낮게 설정합니다. 이 때, 블록체인 트랜잭션 특성상 네트워크가 혼잡할 때 연속된 트랜잭션 중 일부가 처리되지 못하는 케이스가 발생할 수 있으므로 triggerLevel과 targetLevel의 차이를 너무 크게 설정하지 않도록 해야합니다.

targetLevel로 도달하기 위한 상환 금액 X를 앞에서 설명한 알고리즘을 토대로 식을 세우면 위와 같습니다.

Conclusion

지금까지 고정금리대출 프로토콜에서 자동 부분 청산을 통해 안정적으로 나의 담보물을 지킬 수 있는 알고리즘을 제안하였습니다. 이를 통해 사람들은 24시간 돌아가는 디파이 생태게에서 담보청산의 위험을 줄이면서도 최대 대출가능액에 가깝게 대출을 받아 다른 투자에 활용할 수 있게 함으로써 자본효율성의 극대화를 이끌어 내었습니다.

디사이퍼 — Bok Lee팀 소개

김한 — Decipher Junior Researcher, Decipher Media Lead
이병헌 — Decipher alumni
이우진 — Decipher Senior Researcher
이재복 — Decipher Junior Researcher
이재승 — Decipher alumni
최유진
홍성수 — Decipher Junior Researcher

--

--