SettleLab
전체 코스
DeFi · LESSON 04

Utilization Curve와 금리 모델 구현

DeFiCore primitives심화55분근거 3
AreaDeFi
TopicCore primitives
Evidence layerBACKEND / OPS
Connected areasStablecoin / Agent / AI

학습 결과

  • utilization이 borrow APR과 supply APR을 움직이는 이유를 설명한다.
  • kink model, reserve factor, adaptive model의 차이를 구분한다.
  • live APR 숫자보다 parameter snapshot과 curve shape를 먼저 검토한다.

선행 조건

  • lending-health-factor

완료 기준

  • utilization, kink, slope를 받아 borrow rate를 계산했다.
  • live APR을 강의 본문 사실로 고정하지 않고 parameter snapshot으로 다루는 규칙을 작성했다.

Utilization Curve와 금리 모델 구현

도입

Lending protocol의 금리는 은행 예금 금리처럼 고정된 상품 설명이 아니다. 대부분의 money market은 utilization을 보고 borrow rate를 조정한다. 빌려간 자산이 많아 liquidity가 부족해질수록 borrow rate가 올라가고, supplier에게 돌아가는 수익도 바뀐다.

중요한 것은 현재 APR 숫자가 아니라 곡선의 모양이다. kink 아래에서는 완만하게 오르다가, optimal utilization을 넘으면 rate가 급격히 올라 liquidity를 되돌리려 한다. Morpho 같은 설계에서는 IRM을 market별로 선택하거나 adaptive하게 조정할 수 있다. 그러므로 강의에서는 "현재 USDC APR"보다 parameter와 curve를 읽는 법을 가르친다.

학습 목표

  • utilization이 borrow APR과 supply APR을 움직이는 이유를 설명한다.
  • kink model, reserve factor, adaptive model의 차이를 구분한다.
  • live APR 숫자보다 parameter snapshot과 curve shape를 먼저 검토한다.

개념 설명

판단 트리가로 스크롤 · 크게 보기 지원
금리 모델 리뷰 결정 트리APR 숫자를 그대로 믿지 않고 utilization, kink, reserve factor, cap이 어떤 행동을 유도하는지 검토한다.
시작 질문

이 market의 rate curve를 출시해도 되는가?

진행

utilization shock에서도 withdrawal liquidity가 남는다

parameter snapshot과 governance link를 저장한다.
조정

kink 이후 slope가 너무 완만하다

liquidity stress에서 borrow demand가 줄어드는지 재시뮬레이션한다.
보류

oracle 또는 cap과 rate model이 함께 검토되지 않았다

risk committee review로 되돌린다.
크게 보기
시작 질문

이 market의 rate curve를 출시해도 되는가?

진행

utilization shock에서도 withdrawal liquidity가 남는다

parameter snapshot과 governance link를 저장한다.
조정

kink 이후 slope가 너무 완만하다

liquidity stress에서 borrow demand가 줄어드는지 재시뮬레이션한다.
보류

oracle 또는 cap과 rate model이 함께 검토되지 않았다

risk committee review로 되돌린다.
표 자료가로 스크롤 · 크게 보기 지원
파라미터의미위험
Utilizationborrowed / supplied높으면 출금 liquidity가 부족해진다
Kinkslope가 바뀌는 지점너무 높으면 뒤늦게 rate가 오른다
Slope1kink 전 증가 속도낮으면 borrow가 과도하게 늘 수 있다
Slope2kink 후 증가 속도낮으면 liquidity shortage를 못 막는다
Reserve factor이자 중 reserve 몫supplier APR과 protocol buffer가 갈린다
크게 보기
파라미터의미위험
Utilizationborrowed / supplied높으면 출금 liquidity가 부족해진다
Kinkslope가 바뀌는 지점너무 높으면 뒤늦게 rate가 오른다
Slope1kink 전 증가 속도낮으면 borrow가 과도하게 늘 수 있다
Slope2kink 후 증가 속도낮으면 liquidity shortage를 못 막는다
Reserve factor이자 중 reserve 몫supplier APR과 protocol buffer가 갈린다

코드로 확인하기

CODE SURFACEtypescript
export function kinkBorrowApr({  utilization,  kink,  baseRate,  slope1,  slope2}: {  utilization: number;  kink: number;  baseRate: number;  slope1: number;  slope2: number;}) {  if (utilization <= kink) {    return baseRate + (utilization / kink) * slope1;  }  const excess = (utilization - kink) / (1 - kink);  return baseRate + slope1 + excess * slope2;}
CODE SURFACEtypescript
export function supplyApr(borrowApr: number, utilization: number, reserveFactor: number) {  return borrowApr * utilization * (1 - reserveFactor);}export function rateSnapshotPolicy(lastCheckedAt: string) {  return {    lastCheckedAt,    warning: "APR is live market data; teach the curve and cite dated parameters."  };}

첫 함수는 two-slope curve를 보여준다. 두 번째 함수는 supply APR이 borrow APR에 utilization과 reserve factor를 곱한 결과라는 점을 단순화해 보여준다. 실제 protocol은 compounding, index, block time, reserve accounting이 더 복잡하지만, 학습자는 먼저 곡선의 방향을 알아야 한다.

강의 포인트

표 자료가로 스크롤 · 크게 보기 지원
관점확인할 질문증거로 남길 것
Curveutilization이 올라가면 rate가 충분히 반응하는가curve plot
Liquiditywithdrawal 가능한 현금이 남는가available liquidity
Reserveprotocol buffer가 있는가reserve factor
Governance누가 parameter를 바꾸는가proposal or config link
크게 보기
관점확인할 질문증거로 남길 것
Curveutilization이 올라가면 rate가 충분히 반응하는가curve plot
Liquiditywithdrawal 가능한 현금이 남는가available liquidity
Reserveprotocol buffer가 있는가reserve factor
Governance누가 parameter를 바꾸는가proposal or config link

실무 예시

백엔드[OPS] DeFi 학습 사이트가 "현재 Aave USDC APR은 X%"라고 고정 문구를 넣으면 며칠 뒤 틀릴 수 있다. 대신 "이 market은 utilization 기반 rate curve를 사용하며, live APR은 공식 앱이나 subgraph에서 확인한다"라고 쓰고, 실습에서는 주어진 parameter로 curve를 그리게 한다.

위험팀은 단일 APR보다 stress point를 본다. utilization이 80%에서 95%로 뛰었을 때 borrow rate가 얼마나 올라가는지, supplier가 출금하려 할 때 available liquidity가 얼마나 남는지, reserve factor가 protocol buffer를 충분히 만드는지를 비교한다.

흔한 오해와 실패 시나리오

표 자료가로 스크롤 · 크게 보기 지원
오해실패 시나리오교정 방식
APR은 protocol이 정한다utilization과 parameter가 함께 만든 결과다curve와 utilization을 같이 보여준다
높은 supply APR은 좋은 신호다liquidity shortage나 risk premium일 수 있다utilization과 cap을 확인한다
kink는 기술 세부사항이다시장 행동을 바꾸는 핵심 지점이다stress simulation에 포함한다
reserve factor는 treasury 수익이다supplier APR, bad debt buffer와 trade-off가 있다fee split과 risk buffer를 함께 본다
크게 보기
오해실패 시나리오교정 방식
APR은 protocol이 정한다utilization과 parameter가 함께 만든 결과다curve와 utilization을 같이 보여준다
높은 supply APR은 좋은 신호다liquidity shortage나 risk premium일 수 있다utilization과 cap을 확인한다
kink는 기술 세부사항이다시장 행동을 바꾸는 핵심 지점이다stress simulation에 포함한다
reserve factor는 treasury 수익이다supplier APR, bad debt buffer와 trade-off가 있다fee split과 risk buffer를 함께 본다

실습 과제

  1. Kink rate curve 구현하기: utilization, kink, baseRate, slope1, slope2를 입력받아 borrow APR을 계산한다.
  2. 금리 파라미터 리뷰표 만들기: reserve factor, target utilization, slope, cap이 사용자 행동과 protocol solvency에 주는 영향을 표로 정리한다.

완료 기준

  1. utilization, kink, slope를 받아 borrow rate를 계산했다.
  2. live APR을 강의 본문 사실로 고정하지 않고 parameter snapshot으로 다루는 규칙을 작성했다.

근거 자료

  • 02 Lending
  • Compound Interest Rates
  • Morpho IRM Concepts
Final checkpoint

읽기를 마쳤다면 여기서 기록한다

아래 버튼은 읽기 진도를 저장한다. 체크리스트, 과제, 랩 산출물은 위 Workbook에서 따로 관리한다.

  • utilization, kink, slope를 받아 borrow rate를 계산했다.
  • live APR을 강의 본문 사실로 고정하지 않고 parameter snapshot으로 다루는 규칙을 작성했다.

학습 자료 근거

02 Lending
utilization curve와 lending protocol 비교 설명 재구성
내부 참고 문서
Compound Interest Rates
https://docs.compound.finance/interest-rates/
Morpho IRM Concepts
https://docs.morpho.org/learn/concepts/irm/