이자율 매커니즘
Last updated
Last updated
2021년 9월 8일, 돈키의 대출/청산 기능이 출시되며 이자율이 산출되는 방식에 대해 문의가 많아졌습니다. 이에 따라 여기에서는 현재 돈키 서비스 내에서 표시되고 있는 이자율의 계산 방식과 돈키 프로토콜 내에서 이자율이 구성되는 원리에 대해 자세하게 설명합니다.
돈키의 예치/대출 페이지를 보면 위와 같은 화면이 나타납니다. 먼저 왼쪽 예치 이자율은 아래와 같은 공식으로 구성됩니다.
예치 이자율 = 해당 자산을 1년간 예치했을 때 받을 것으로 예상되는 예치 이자(매 블록마다 원금+받은 예치이자가 다시 원금이 되는 복리 구조. 변동금리) + 해당 자산 1개를 1년간 예치했을 때 수령할 것으로 예상되는 DON 보상(단리)
돈키는 모든 예치/대출 이자가 복리로 계산되는 프로토콜입니다. 다만 자산 예치 및 대출에 대한 보상으로 지급되는 자체 거버넌스 토큰인 DON은 아직 자동 복리(Auto compounding) 기능이나 Staking 기능이 없어 복리가 아닙니다.
하지만 오는 10/1 DON 코인 청구가 시작되는 시점에 맞춰 저희가 DON 예치 풀을 만들거나 DON Staking 기능을 출시하게 되면, DON 코인 역시 복리 투자가 가능해져 예상 이자율은 현재 표시되는 것보다 더 높아질 수 있습니다.
(10/1 이후 그런 기능이 나오면 DON의 예상 이자율도 복리로 표시하는 안을 검토할 계획이나, 현재 예치 이자율 내 DON 보상에 대한 산식은 단리가 맞습니다.)
대출 이자율 = 해당 자산을 1년간 대출 받았을 때 지출할 것으로 예상되는 대출 이자(매 블록마다 원금+대출 이자가 다시 원금이 되는 복리 구조. 변동금리) + 해당 자산 1개를 1년간 대출 받았을 때 수령할 것으로 예상되는 DON 보상(단리)
이 페이지에서는 아직 사용자가 각 자산을 몇개나 예치할지 알 수 없기 때문에, 우선 각 1개를 1년간 예치하거나 대출 받는다고 가정하고 연간 기준 DON 보상이 편의상 단리로 표현되어 있습니다.
하지만 실제로는 예치 또는 대출 원금에 이자가 붙어 매 블록마다 미세하게 원금이 느는 복리 구조이기 때문에, DON 보상도 원금이 늘어남에 따라 미세하게 늘어 실제 수령하게 되는 DON 보상은 화면에 표시되는 것보다 많을 수 밖에 없는 구조입니다. 따라서 실질 보상은 완전한 단리는 아닙니다.
뿐만 아니라 이 화면에서의 DON 보상은 해당 자산 1개를 예치 또는 대출했을 때 기준의 보상이기 때문에 실제로 예치하거나 대출 받는 자산의 수량이 1개보다 많을 경우, 수령할 DON 보상은 해당 풀에서 자기가 기여하는 비중에 따라 사이트에서 표시되는 예상 이자율보다 더 커질 수 있습니다. (마찬가지로 예치 수량이 1개보다 더 작을 경우, 보상은 더 적을 수 있습니다.) DON 보상이 배분되는 원리는 다음과 같습니다.
하루에 신규 발행되는 DON 코인은 돈키 예치 풀과 대출 풀에 5:5로 공평하게 배분됨.
5:5로 나뉜 DON 코인은 다시 각 풀의 수에 정확하게 1/N 됨. (ex. 예치 풀에 20개 자산이 있으면 1/20)
각 풀로 배분된 DON 코인은 매 블록마다 내 예치(대출) 수량 / 해당 예치(대출) 풀 총량으로 배분됨
위 모든 기준은 매 이더리움 블록마다 실시간 계산해 배분됨. (주기적인 업데이트가 아님)
사이트 상단 우측의 '받은 DON 보상'은 이더리움 네트워크의 높은 가스비 특성상 실시간으로 업데이트되어 보이지는 않지만, 실제로는 매 블록마다 실시간 적립되고 있으니 전혀 걱정하지 않으셔도 됩니다.
아래 그림은 ETH를 예치하는 화면입니다. 2021년 9월 10일 금요일 오후 1시 50분 기준으로 ETH 0.1개를 예치할 때의 예상 총 수입은 연 33.81%이고, 원화 환산 가격 기준으로는 142,011원입니다. 420,111원을 넣어 1년 뒤에는 142,011원을 기대해 볼 수 있다면 꽤 쏠쏠한 투자이겠지요. 그렇게 계산되는 이유와 공식은 다음과 같습니다.
ETH 예치로 얻게 될 총 수입 = ETH 예치로 얻게 될 ETH 이자 수입(원금+매 블록마다 붙는 이자가 다시 원금이 되는 복리 기준. 변동금리) + 전체 ETH 예치 풀에서 내가 0.1 ETH만큼의 지분을 가질 때 받게될 것으로 예상되는 DON 보상 수입(원금이 바뀌지 않는 단리 기준)
이 화면에서는 편의상 DON 보상 수입을 단리로 표시하지만 실제로는 내가 0.1 ETH를 예치하면 매 블록마다 이자가 붙으므로 원금이 0.1 ETH가 아니라 0.1+이자 ETH가 됩니다. 그러면 계속 추가되는 원금을 기준으로 해당 예치 풀에서의 내 DON 보상율(지분)이 결정되기 때문에 실제 수령하는 보상은 앞서 우리가 살펴본 바와 같이 완전한 단리는 아닙니다.
참고로 DON 코인 보상 수입의 원화 환산 예상치는 Uniswap에서의 현재 DON/ETH 비율을 돈키 오라클 기준 ETH/KRW 현재가로 환산해 표시하고 있습니다. 돈키 오라클은 2021년 9월 10일 현재 업비트/빗썸/코인원 등 3개 가상자산 거래소의 ETH/KRW 가격을 24시간 거래대금 기준으로 가중평균하여 사용하고 있습니다.
자, 그럼 이번에는 대출받기 화면을 살펴볼까요? 아래는 2021년 9월 10일 금요일 오후 3시 24분에 LINK 1,000개를 대출받는 모습입니다. LINK 대출로 내게 될 총 지출이 연 -973.6%이죠. 원화 기준으로 표시하면 -340,197,275원입니다. 아니 대출을 받는데 왜 마이너스(-)가 나올 수 있는거죠? 몹시 의아해하시는 분들이 계실거 같습니다. 이 이자율이 도출된 공식은 다음과 같습니다.
LINK 대출로 내게 될 총 지출 = LINK 대출로 내게 될 이자 지출(원금+매 블록마다 붙는 이자가 다시 원금이 되는 복리 기준. 변동금리) - 대출된 전체 LINK 중 내가 1,000 LINK만큼의 대출 지분을 가질 때 받을 것으로 예상되는 DON 보상 수입(단리 기준)
이것도 편의상 단리 기준으로 DON 보상 수입을 표시하였지만 LINK 대출의 원금이 최초 원금 + 이자가 매 블록마다 더해져 복리로 산출되고 있기 때문에, 실제로는 DON 보상도 꾸준히 증가하는 효과가 있습니다. DON 보상 배분은 앞서 살펴본대로 내가 해당 대출 풀에서 갖는 수량 대 해당 대출 풀 전체 수량의 실시간 비율로 정해지기 때문입니다.
돈키의 예치이자율[i(D)]은 대출이자율[(i(B)] - Operation Reserve(OR)로 정해집니다. 수식으로 표현하면 다음과 같습니다.
Operation Reserve는 24시간 365일 오라클 업데이트를 위한 이더리움 가스비, 제3자 보안감사 및 법률검토 비용, 서버 운영 비용, 팀 운영 비용(임대료 및 인건비, 판관비), 마케팅 비용 등의 마련을 위해 대출자가 낸 이자와 예치자에게 나가는 이자 사이의 차액으로 조성됩니다.
Operation Reserve는 예치금액이 원화 환산 기준으로 100억원이 넘는 자산의 경우 대출이자의 25%(대출이자가 연 2%일 경우 연 0.5%)를, 100억원 미만의 자산의 경우 대출이자의 50%를(대출이자가 연 2%일 경우 연 1%)를 컨트랙트가 매 블록마다 자동으로 떼어 적립합니다.
이 Operation Reserve에 각 자산마다 얼마가 적립되었는지는 스마트 컨트랙트를 통해 누구나 확인할 수 있도록 할 방침입니다. 더불어 위 사용 목적으로 해당 Reserve에 적립된 자산을 인출할 경우에는 사용 내역도 반기마다 외부 회계법인을 통한 제3자 회계감사를 받아 투명하게 공개할 계획입니다.
왜 예치 규모가 적은 자산의 Operation Reserve 비율이 많은 자산보다 더 높은가요?
식당이 여러 메뉴를 내는 것과 비슷합니다. 하루에 한두 그릇 팔리는 메뉴도 식자재는 계속 사두어야 하듯이, 돈키도 대출이 일어나지 않는 자산에 대해서도 대출이 많이 일어나는 자산과 동일하게 오라클을 업데이트하기 위해 계속 가스비를 쓰고 있습니다.
대출이 많이 일어나야만 대출이자가 발생하고, 그래야 Operation Reserve가 쌓여 오라클 운영비, 서버 운영비, 팀 운영비 등으로 사용할 수 있기 때문에 대출이 많이 일어나지 않는 자산은 계속 이더리움 가스비를 소진하면서 손해를 보고 있습니다.
돈키는 사용자가 예치한 자산을 재원으로 대출을 실행하는 P2P 서비스이기 때문에 당연히 예치된 자산의 규모가 작으면 그만큼 대출의 규모도 작을 수 밖에 없습니다. 대출 규모가 작으면 해당 자산을 통해 들어오는 Operation Reserve도 그만큼 작기 때문에, 오라클을 유지하는 비용 조차 충당되지 않을 가능성이 높습니다.
따라서 돈키는 이용이 적은 자산을 이용하는 사용자가 해당 자산의 지원을 위한 기초 비용(오라클 업데이트 가스비, 상장을 위한 가스비 등)을 함께 부담하는 수익자 부담의 원칙 차원에서 상대적으로 이용이 많은 자산에 비해 높은 Operation Reserve를 적용하고 있습니다.
이는 저희가 임의로 정하는 것이 아니라 원화 환산 가지 기준 예치 규모 100억원을 달성하면 언제든 Operation Reserve가 25%로 할인되기 때문에 객관적인 운영 기준이 있습니다.
위에서 돈키의 예치이자율은 대출이자율에서 Operation Reserve를 뺀 값이라고 설명드렸습니다. Operation Reserve는 자산의 예치 규모에 따라 각각 25%와 50%로 고정되어 있기 때문에 우리는 대출이자율이 어떻게 결정되는지 알면 예치이자율도 산출해 낼 수 있습니다.
그럼 대출이자율 계산을 알아볼 차례입니다. 대출이자율은 이용률에 따라 24시간 매 블록마다 실시간으로 변동합니다. 이용률은 다음과 같이 계산됩니다.
즉, 현재 해당 자산의 예치 총액 대비 대출 총액이 바로 위 산식에서 U, 이용률(Utilization Ratio)입니다. 이용률이 낮은 자산은 예치자들이 이자를 못법니다. 대출자들이 내는 이자가 있어야 Operation Reserve를 일부 떼고 예치자들이 받는 이자가 되는 것인데 예치자만 잔뜩 있고 대출자가 별로 없으면 예치이자율이 크게 떨어집니다. 이용률 알고리즘은 돈키에서 어떻게 작동하며 예치 유동성을 보호하고 대출을 활발하게 하는 역할을 수행할까요?
예치 규모는 그대로인데 대출 규모가 떨어지면 위 산식에 따라 이용률도 떨어집니다. 이용률이 떨어지면 대출자가 내는 이자가 줄어들기 때문에 알고리즘은 예치이자도 크게 떨어뜨립니다.
예치이자가 크게 떨어진 자산을 맡긴 사람들은 다른 곳이 더 많은 이자를 주거나 내가 직접 가지고 있는게 더 이득이라고 판단해 예치한 자산을 거둡니다. 그러면 위 산식에서 분모가 줄어들기 때문에 대출규모가 변하지 않았음에도 불구하고 이용률은 다시 높아집니다.
이용률이 높아지면 프로토콜은 예치 풀이 지나치게 줄어들 위험을 막기 위해 자동으로 기존 대출자가 내는 대출이자율을 높입니다. 그럼 예치이자율도 자동으로 높아지기 때문에 자금을 거두었던 사람들이 다시 예치를 시작합니다. 이런 원리로 돈키의 이용률 알고리즘은 계속 예치 규모와 대출 규모의 균형을 조절하며 함께 성장시켜 갑니다.
예치 규모는 그대로인데 만약 대출 규모가 축소되면 어떻게 될까요? 알고리즘은 보다 많은 사용자가 놀고 있는 자산을 빌려가도록 장려하기 위해 대출 이자를 현저히 떨어뜨립니다. 대출에 따른 DON 보상도 지급되고 있으므로 이 둘이 시너지를 내 최종 이자율은 드라마틱하게 떨어집니다. 그러면 대출을 받는게 무조건 이득이 될 수 있어 새로운 대출자들이 생깁니다.
하다 못해 돈키에서 매우 저렴한 대출 이자로 코인을 빌려 다른 보다 높은 예치 이자를 주는 서비스에 코인을 맡기면 아주 안정적으로 이자 차익만을 거둘 수도 있으므로 대출 수요가 커집니다.
대출자들이 기존보다 많아지면 이용률이 다시 올라갑니다. 이용률이 향상되면 알고리즘은 대출자들이 내는 이자율도 점진적으로 높이기 때문에 예치자들이 받는 이자도 그만큼 많아집니다.
이것이 돈키가 이자율을 매 블록마다 자동으로 조절하며 계속 예치할 이유를 만들고, 대출자를 늘리며 프로토콜의 유동성을 풍부하게 하는 매커니즘입니다.
돈키는 예치 풀의 유동성을 보호하기 위해 가산이자 알고리즘이 내장되어 있습니다. 가산이자는 각 자산의 이용률이 특정 비율을 초과하는 순간부터 적용돼 대출이자율을 급격히 높입니다. 현재는 가산이자의 발동 조건이 모든 자산에 공통적으로 80%로 설정(예치 풀의 안정성을 보다 높이기 위해 2021년 9월 15일 정오부터 가산이자 발동 조건이 종전 90%에서 80%로 변경되었습니다. 아래 예시는 가산이자 발동 조건이 90%일 때를 기준으로 설명합니다.)되어 있으나, 향후 거버넌스 도구가 출시되면 투표를 통해 변경 가능하도록 할 계획입니다.
대출이자율의 급등은 대출자들의 상환을 유도하고, 높아진 대출이자율에 따른 예치이자율의 동반 상승으로 예치 풀의 유동성을 확보하기 위해 설계된 안전장치입니다.
사례를 볼까요? 2021년 9월 10일 오후 4시 30분 현재 돈키에서 약 3,000만원 어치 HUNT를 빌릴 때의 이자는 연 0.62%입니다. 원화로 따지면 193,078원 정도입니다.
같은 시각 아래 그림에서 HUNT 이용률을 보면 9.87% 정도입니다. 그 얘기는 90.13%의 자산이 놀고 있다는 의미입니다. 그러니 더 많은 사람이 HUNT를 빌려가도록 장려하기 위해 이자율이 이미 크게 낮아져 있습니다.
그럼 이번에는 ELF를 볼까요?
같은 약 3,000만원 어치의 ELF를 빌리는 데에는 대출이자율이 연간 5.8%나 됩니다. 원화로 치면 연간 약 1,787,024원의 이자를 내야만 합니다. HUNT보다 훨씬 높지요?
다시 이번에는 ELF의 이용률을 한번 보겠습니다. 무려 89.06%나 됩니다. 이날 ELF의 이용률은 90%를 넘나들며 실제로 가산이자가 발생했습니다.
가산이자는 해당 자산을 빌려간 모든 대출자의 대출이자율을 일시적으로 높임으로써 빠른 상환을 압박하고, 높아진 예치이자율로 인해 더 많은 사람이 추가 예치해 예치 풀의 크기를 키움으로써 이용률이 가산이자 발동 기준 밑으로 떨어지도록 유도합니다.
이는 예치 풀의 이용률이 과도하게 높아져 예치자들이 예치한 자산의 인출을 원할 때 인출하지 못하는 상황을 최대한 방지합니다. 만약 이용률이 너무 높아져 특정 자산을 예치한 사람이 일시적으로 인출 불가능한 상황이 될 경우, 알고리즘은 이용률이 가산이자 발동 기준을 초과해 100%에 가까워질수록 해당 자산을 빌린 대출자 전체가 매 블록마다 내야하는 대출이자율을 기하급수적으로 높여(= 마찬가지로 예치이자율도 이용률이 100%에 가까워질수록 기하급수적으로 증가) 이용률을 떨어뜨립니다.
이런 방식으로 이용률이 떨어지면 다시 예치자는 예치한 자산을 정상적으로 인출할 수 있게 됩니다. 이같은 매커니즘으로 가산이자는 프로토콜 전체의 안정성을 높이는데 기여합니다.