BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

DeFi 대출에 대한 종합적인 해석: 구성, 공식, 사용 사례

区块律动BlockBeats
特邀专栏作者
이 기사는 약 3817자로, 전체를 읽는 데 약 6분이 소요됩니다
프로토콜은 다양하고 창의적인 이름을 사용하지만 핵심 개념을 반복, 반복 및 공유하는 경향이 있습니다.
AI 요약
펼치기
프로토콜은 다양하고 창의적인 이름을 사용하지만 핵심 개념을 반복, 반복 및 공유하는 경향이 있습니다.

원래 제목: "DeFi Lending Concepts Part 1: Lending and Borrowing"

원작자: 탈

원본 편집: Kxp, Blockbeats

첫 번째 레벨 제목

대출 풀

전통적인 금융(또는 TradFi)에서 차입 및 대출은 제3자 금융 기관에 의해 조정됩니다. 이러한 금융 기관은 차용인이 대출 기관에 이자를 지급하도록 하는 것과 신뢰할 수 없는 것으로 간주되는 당사자가 이러한 활동에 참여하는 것을 평가하고 방지하는 두 가지 주요 업무를 맡습니다.

반대로 탈중앙화 금융(또는 DeFi)에서는 제3자 대출자와 대금업자를 신뢰할 수 없습니다. 이러한 신뢰 부족은 온체인 대출 프로세스를 촉진하기 위한 혁신적인 설계에 영감을 주었습니다.

대출 풀은 스마트 계약입니다. DeFi 프로토콜 사용자는 계약을 사용하여 예치된 자산을 대여할 목적으로 자산(보통 ERC 20 토큰)을 예치할 수 있습니다. 다른 사용자는 대출 풀과 상호 작용하고 즉시 대출을 즐길 수 있습니다. 즉, 대출을 위해 풀의 자산을 저당합니다.

대출 풀은 대출과 관련하여 다음과 같은 전통적인 금융 방법과 비교할 때 몇 가지 중요한 이점이 있습니다.

· DeFi에서 대출은 1:1 대출 자금 가용성 및 차용 금액에 의해 제한되지 않습니다. 대신, 프로토콜의 모든 사용자의 자금이 풀링되어 대출 요구를 즉시 충족할 수 있을 만큼 충분히 큰 토큰 인벤토리를 생성합니다.

· DeFi는 상환 계획이 필요하지 않습니다. 대출은 이전에 예치된 담보에 대해 실행되며 사용자는 언제든지 상환하도록 선택할 수 있습니다.

이 시점에서 "동일한 가치의(심지어 고평가된) 자산을 담보로 내야 하는데 왜 대출계약으로 자산을 빌리려고 할까요? 담보를 팔고 사야 하지 않을까요? 빌린 자산?"

사실, 이 DeFi 대출 프로토콜은 완전히 담보화된(또는 초과 담보된) 대출만 허용하는 것처럼 보이며 흥미로운 "거래" 방법인 레버리지에 대한 문을 엽니다.

당신이 WBTC에 대해 매우 낙관적이고 그 가치가 치솟을 것이라고 확신한다고 가정해 봅시다! 선호하는 대출 프로토콜에 WBTC($1000 상당)를 예치한 다음 이를 사용하여 스테이블 코인(예: USDC)을 빌린 다음 해당 스테이블 코인을 사용하여 일부 거래소에서 더 많은 WBTC를 구입할 수 있습니다. 시나리오의 경우 초기 예치금의 절반을 가정하고 500달러입니다). 이 경우 WBTC에 대한 노출은 $1500의 가치가 있으며 초기 예치금은 $1000에 불과합니다.

그러나 USDC를 더 빌리기 위해 500달러의 WBTC 담보를 프로토콜에 예치하면 어떻게 될까요? 이 과정을 과잉 레버리지라고 하며 차용 능력을 초과할 때까지 계속할 수 있으며 프로토콜의 정책에 따라 그렇게 할 수 없습니다.

첫 번째 레벨 제목

공유 토큰

전통적인 금융과 마찬가지로 대출 풀에 자산을 예치하는 사용자는 자금을 장기적으로 유지하고 예치금에 대한 이자를 받을 수 있도록 인센티브를 받습니다. 이자는 시간이 지남에 따라 발생하며 프로토콜에서 사용자 예치금의 백분율로 계산되고 해당 예치금 사용자가 청구합니다. 사용자가 대출 풀에 자산을 더 오래 보관할수록 더 많은 이자를 얻습니다.

프로토콜은 풀에서 각 사용자의 공유를 어떻게 추적합니까? 사용자가 자산을 풀에 예치하면 "공유"는 모든 사용자의 공유를 희석하고 프로토콜은 이에 따라 이를 반영합니다. 그러나 프로토콜은 각 사용자의 풀 공유를 직접 추적하고 업데이트하는 대신 다른 사용자가 출금하거나 입금할 때마다 적극적으로 업데이트하지 않고 예금자의 공유 변경만 처리합니다.

이 계약으로 케이크를 먹고 먹을 수 있다고 생각할 수도 있습니다. 그러나 실제로는 다음과 같이 보이지 않습니다.

프로토콜은 대출 풀에서 대출 기관의 지분(또는 예금 자산의 비율)을 나타내는 "공유 토큰"이라고 하는 ERC 20 토큰을 발행하고 소각하여 이자 지불을 처리합니다. 이 "주식 토큰" 설계는 다른 "주주" 주식 희석을 자동으로 조정하여 기본 자산의 예금 또는 인출에 비례하여 "주식"의 주조 및 소각을 반영합니다.

첫 번째 레벨 제목

aToken: AAVE의 "공유 토큰"

aToken은 자산을 입출금할 때 대출 풀에서 발행되고 소각되는 AAVE의 수익률 생성 토큰입니다.

aToken은 AAVE 프로토콜에 통합된 ERC 20과 유사한 토큰이므로 사용자가 액세스할 수 있는 각각의 다른 시장(예금 담보)에는 해당 aToken이 있습니다.

AAVE 대출 풀 계약을 보면 사용자가 자산을 풀에 예치할 때 발생하는 기본 작업을 볼 수 있습니다.

사용자가 예치한 시장에 해당하는 aToken이 "minting" 기능에서 호출되는 것을 볼 수 있습니다.

발행될 실제 금액은 다음과 같습니다.

위의 이미지에서 볼 수 있듯이 이 예에서 사용자는 이전 예치금에 대한 이자를 이미 얻은 시장에 참여합니다. 위의 방정식은 다양한 작업(입금, 인출 등)에 대해 업데이트되는 글로벌 인덱스를 사용하여 모든 사용자의 이자 발생을 설명하는 방법을 보여주기 때문에 이를 이해하는 데 도움이 됩니다.

사용자가 기본 자산을 인출할 때 유동성 지수는 거래에서 빚진 토큰의 양을 계산하기 위한 승수로 사용됩니다.

다음은 대출 풀 계약의 관련 코드 스니펫입니다.

여기서 aToken 컨트랙트의 balanceOf 기능은 조금 이상합니다. 결국 우리는 발행된 aToken의 양이 예치된 기본 자산의 양과 동일하지 않다는 것을 방금 확인했습니다. IAToken(aToken).balanceOf(address(user))를 호출하면 사용자가 인출하려는 기본 자산의 양이 어떻게 산출됩니까(함수 하단에 표시됨)? 이유는 다음과 같습니다.

· 사용자가 자산을 인출하면 aToken이 소멸됩니다. 이렇게 소각된 aToken은 사용자의 자산이 인출된 후 다른 사용자가 소유한 aToken의 총량을 공유 비율에 비례하여 유지합니다.

· 사용자가 자금을 인출하는 시장 요율은 인출할 때마다 업데이트됩니다.

앞에서 언급했듯이 aToken은 ERC 20과 유사한 토큰입니다. balanceOf 기능이 고유한 속성을 가지고 있기 때문에 ERC 20 토큰과 "유사"하다는 점을 강조합니다. 일반 ERC 20 토큰에서 balanceOf 함수는 주소가 소유한 토큰 수를 반환합니다.

aToken은 즉각적인 가치가 아닌 풀의 몫을 나타내므로 aToken의 balanceOf 함수는 프로토콜이 사용자의 예치금을 보상하기 위해 빚진 기본 토큰의 양을 반환합니다.

여기서 balanceOf 함수는 상속된 aToken 계약의 balanceOf 함수를 재정의합니다. 결과적으로 이 예제 로직의 balanceOf 로직은 사용자 토큰 수량의 일반(상속된) 맵 조회 대신 실행됩니다.

위에서 언급한 토큰의 수는 다음 논리를 수행하는 getReserveNormalizedIncome의 결과로 곱해집니다.

여기에서 분기를 식별할 수 있습니다.

· 이 블록에서 예약된 데이터가 업데이트된 경우: 업데이트된 대로 이 시장의 liquidityIndex 값을 반환합니다.

· 그렇지 않은 경우: 다음 흐름을 파악하기 위해 calculateLinearInterest에서 어떤 일이 발생하는지 확인해야 합니다.

현재 시장의 ReserveData 개체에서 currentLiquidityRate 및 lastUpdateTimestamp가 이 함수로 전달되며 함수의 결과는 다음과 같습니다.

linearInterest 값의 요점을 더 잘 이해하기 위해 이 방정식의 구성 요소를 분석해 보겠습니다.

currentLiquidityRate: 이것을 우리 시장의 연간 이자율(APY)로 생각하십시오.

block_{timestamp} - lastUpdatedTimestamp: 마지막 업데이트 이후 경과된 시간

참고: getNormalizedIncome에서 두 번째 분기를 선택했으므로 이 시점에서 값이 양수임을 보장합니다.

따라서 이 이자 발생 메커니즘은 각 블록에 복리되는 단순한 이자 복리 메커니즘으로 생각할 수 있습니다. 이제 사용자에게 발생할 이자의 금액을 결정했으므로 해당 값에 유동성 지수를 곱한 다음 balanceOf 함수에서 사용자의 정규화된 소득 곱셈을 수행하면 됩니다.

이제 우리는 aToken의 논리를 이해했으므로 여전히 liquidityIndex가 작동하는 방식에 대한 수수께끼를 풀어야 합니다.

아래 예에서 liquidityIndex는 일정 기간 동안 준비금에 누적된 이자로 정의할 수 있습니다.

이전에 언급한 liquidityRate 변수를 상기하십시오. 이제 liquidityIndex를 계산할 때 이 변수를 사용하는 방법에 대해 설명하겠습니다. 이자는 유동성 비율이 0보다 큰 경우에만 발생합니다. 즉, 이자는 해당 시장에 APY가 있는 경우에만 발생합니다. 말된다.

동작 중인calculateLinearInterest를 빠르게 검토해 봅시다.

위의 논리는 다음 방정식으로 변환될 수 있습니다.

DefaultReserveInterestRateStrategy.sol 계약에서 볼 수 있듯이 liquidityRate는 다음과 같은 방식으로 정의됩니다.

따라서 다음과 같이 작성할 수 있습니다.

전체 차용 비율(overallBorrowRate)은 다음과 같이 정의됩니다.

우리는 이것을 다음과 같이 쓸 수 있습니다:

이용률(utilizationRate)은 다음과 같이 정의할 수 있습니다.

활용도를 정의할 때 준비금의 유동성(현재 대출된 유동성)과 시장의 총 유동성 간의 비율을 고려하는 것이 더 쉽습니다. 이는 다음과 같이 단순화할 수 있습니다.

이제 다음 두 가지 정의를 사용하여 유동성 지수에 대한 방정식을 작성할 수 있습니다.

totalBorrows는 분자와 분모 모두에 존재하므로 다음과 같이 작성할 수 있습니다.

첫 번째 레벨 제목

cToken: 컴파운드의 "공유 토큰"

다음 대출 프로토콜 예제인 Compound로 넘어가겠습니다.

Compound는 cTokens라는 "공유 토큰"을 사용하여 대출 및 대출을 처리합니다. 이 토큰은 Compound 프로토콜에서 사용자 대출에 사용할 수 있는 모든 자산을 기록하는 데 사용됩니다.

AAVE V2에서 논의한 것과 유사하게 Compound의 "공유 토큰"은 기본 자산을 상환하는 데 사용됩니다.

Compound는 AAVE V2의 유동성 지수와 유사한 환율을 사용하여 얼마나 많은 cToken을 발행해야 하는지 결정합니다. 환율은 다음과 같은 기능입니다.

여기서 핵심 용어를 설명하겠습니다.

·totalCash: cToken 계정이 소유한 ERC 20 기본 토큰의 수.

· totalBorrows: 차용인이 빌린 시장의 ERC 20 기본 토큰 수.

· totalReserves: 거버넌스를 통해 추출하거나 전송할 수 있는 일정 수의 ERC 20 기본 토큰이 예약되어 있습니다.

· totalSupply: cToken의 총 공급량을 반환하는 ERC 20 함수.

이러한 배경을 통해 Compound의 환율 방정식을 작성할 수 있습니다.

사용자가 ERC 20 토큰을 예치하면 환율에 따라 몇 개의 cToken이 그 대가로 발행될지 결정됩니다.

첫 번째 레벨 제목

eToken: Euler의 "공유 토큰"

이러한 프로토콜 간의 유사성을 더욱 강화하기 위해 다른 대출 프로토콜인 오일러를 분석하고 대출을 처리하는 방법을 살펴보겠습니다.

아래 예에서 입금 기능을 통해 사용자는 eToken과 교환하여 ERC 20 토큰을 입금할 수 있습니다.

보다시피 internalAmount는 이 전송을 위해 발행된 eToken의 양입니다.

다시 한 번 Compound의 이름 및 함수 exchangeRate와 직접적으로 겹치는 부분이 있습니다.

환율을 계산하는 데 사용되는 주요 매개변수를 설명하겠습니다.

· poolSize: 기초 자산을 사용하는 ERC 20 컨트랙트에서 pool 컨트랙트 주소로 balanceOf(address) 함수를 호출한 결과.

· totalBorrows: 현재 풀에 없는 대출된 ERC 20 기본 토큰의 총량.

· totalBalances: 모든 eToken 보유자의 총 잔액.

요약하다

요약하다

우리는 3가지 대출 프로토콜을 다뤘습니다.

· AAVE V2 

· Compound 

· Euler

"Share Token"이 어떻게 발행되고 렌딩 풀을 통해 예금 자산으로 교환되는지 살펴보았습니다.

우리가 제안하는 세 가지 방정식은 간단한 방정식으로 줄일 수 있습니다.

프로토콜이 정의하는 어떤 방식으로든 환율을 정의할 수 있음을 기억하십시오. 이러한 임의의 환율은 발행되는 토큰의 양을 늘리고(1 미만인 경우) 1보다 큰 경우 금액을 줄일 수 있습니다.

AAVE V2 및 Compound에서 우리는 someRate 변수와 일부 유사점을 확인했습니다. 컴파운드에서 someRate는 다음과 같습니다.

AAVE V2의 경우 someRate는 다음과 같이 정의됩니다.

유동성 지수는 다음과 같이 정의됩니다.

각 프로토콜의 환율을 단일 공식으로 일반화할 수는 없지만 AAVE 2 및 Compound의 경우 환율이 시장의 총 유동성의 함수라는 것을 알고 있습니다. 등식으로 돌아가서 totalLiquidity가 시장에 있는 ERC 20 기본 토큰의 총량이라는 점을 감안하면 exchangeRate 표현식의 분자와 liquidityRate 표현식의 분모는 기능적으로 동일합니다.

원본 링크

원본 링크 

Compound
BTC
DeFi
재원
USDC
안정적인 통화
Odaily 공식 커뮤니티에 가입하세요