[Aave Series] AAVE의 Key Value — 플래시 론(Flash Loan)

Clink Owen
Decipher Media |디사이퍼 미디어
12 min readSep 9, 2021

디사이퍼(Decipher)에서 Aave 프로토콜에 대한 글을 시리즈로 연재합니다.

Aave: Next Money Market Protocol Providing New Concept of Loan

[Aave Series]

  1. Aave 로직 분석 (예금, 인출)
  2. Aave 로직 분석 (대출, 상환)
  3. Aave의 Key Value, 플래시 론

Authors

Owen Yoonjae Hwang of Decipher Junior Researcher.
Kookmin Univ. Business Management — Big Data & Statistics
Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media)

지금까지 우리는 AAVE(이하 아베)의 프로토콜 로직을 분석해 보았습니다.

탈중앙 금융(DeFi)의 전반적인 목표는 허가의 필요가 없으며, 탈중앙적이고, 투명한 금융생태계 구현하는 것입니다. Lending Protocol(Compound, Aave 등)의 등장으로 이제 3자의 개입없이 계약의 완결성을 보장할 수 있는 스마트 컨트랙트에 기반하여, 우리는 블록체인 상에서 완전히 탈중앙화된 암호화폐 대출 서비스를 이용할 수 있게 되었습니다.

담보없는 대출은 실현될 수 없을까

법정화폐 기반의 대출 서비스와 암호화폐 기반의 대출 서비스 간에는 몇 가지로 요약될 차이점들이 있습니다. 그 중 대표적인 것으로 ‘익명성’을 이야기할 수 있겠는데요, 일반적으로 DeFi의 대출 시장에서는 과담보 설정과 청산 로직을 통해 시장의 변동성을 극복합니다. 하지만 이런 과담보 설정은 대출의 활용성에 많은 제약을 가하게 되는데요, 이는 크게 신용대출과 담보대출 두 가지로 분류할 수 있는 레거시 금융의 대출과 달리 DeFi의 대출은 아직 신용의 개념을 블록체인 상으로 가져오지 못한 점과 관련이 있습니다.

암호화폐를 기축으로 동작하는 탈중앙 금융시장에서는 오프체인(블록체인 외부의) 데이터인 ‘신용’의 개념을 온체인(블록체인 상)으로 불러오는데 어려움을 겪고 있어 아직 레거시 금융의 무담보 대출 형태에 대한 명확한 해답을 찾지 못한 상황입니다. 그러한 도중 새로운 대출의 형태가 AAVE에 의해 제안 되었습니다.

플래시 론(Flash Loan)이란?

플래시 론이란 담보물이 없어도 자금을 빌릴 수 있는 구조로 Aave Protocol에 의해 최초로 개발된, 블록체인 기반의 DeFi에서만 가능한 대출의 유형입니다. 플래시론은 대출된 암호화폐가 블록체인 상에서 한 개의 트랜잭션 내에서 곧바로 상환되는 방식으로 작동합니다. 발생된 대출의 수수료와 함께 원금이 상환되면 플래시론이 정상적으로 수행되며, 그렇지 않은 경우에는 대출 트랜잭션이 취소되게 됩니다.

일반적으로 무담보대출을 진행하기 위해서는 자산적인 성격의 담보물을 대체할 무언가를 필요로 합니다. 위에서도 언급한, 시중 은행이 제공하는 신용대출이 대표적인 예시라고 할 수 있습니다. 신용대출에서는 과거의 기록을 기반으로 개인의 신용과 상환 능력을 측정하여 담보물을 대체하게 됩니다. 또 이에 대한 대가로 통상적으로 담보대출보다 더 높은 이자율에도 동의해야 합니다. 신용카드를 자주 사용하신다면, 무담보대출과 밀접한 삶을 살고 계신 것이죠.

Flash Loan, What for?

그렇다면 플래시론은 어떻게 무담보 대출을 실행시킬 수 있는 것 일까요? 플래시론은 반드시 단일 트랜잭션 내에서 대출과 상환이 모두 이루어져야 합니다.

플래시론은 아래 3가지 단계를 거쳐 수행되고 있습니다.

1. 가장 먼저 사용자는 Aave의 대출 풀에서 특정 암호화폐를 빌립니다.

2. 대출의 주요 내용들은 이더리움 블록체인 상에 기록돼, 실행됩니다.

3. 사용자는 반드시 아베의 서비스 수수료(0.09%)를 포함한 대출금을 상환해야만 합니다.

만약 마지막 조건이 만족된다면, 모든 트랜잭션은 실행돼 즉시 이더리움 블록체인에 기록됩니다. 만약 마지막 상태가 만족되지 않는다면, 마치 아무 일도 일어나지 않았다는 듯이 트랜잭션 전체는 거부되고, 모든 명령이 무효화됩니다.

이는 전통 금융 시장의 개념이 익숙한 사람들에게는 굉장히 어색하게 들릴 것으로 예상됩니다. 일반적으로는 발생된 대출에 대한 회수를 보장받기 어렵기 때문에 TVM(Time Value of Money)를 고려한 상품들이 설계돼 시중에 등장하게 됩니다. 그러나 대출하자마자 상환해야 한다면 그 대출은 무슨 의미가 있는 것 일까요?

플래시 론 사례 (ETH Vault -> BAT Vault 이동)

플래시론은 이렇게 쓰입니다.

현재 보편적인 DeFi 사용자들이 플래시론을 잘 활용하는 것에는 한계가 있습니다. (*후루콤보나 *디파이세이버 등을 통해 플래시론의 효용을 간접 경험해볼 수 있습니다.) 현재는 개발자들이 직접 코드를 작성하여 시스템과 상호작용하는 경우에서 대부분의 사용 사례들이 등장하고 있습니다. 그럼에도 불구하고, 플래시론은 보다 긍정적이고 좋은 사례들을 발생시킬 수 있는 잠재력을 가졌다는 평가를 받고 있으며, 기본적으로 플래시론의 목표는 금전적인 이익을 발생시키는 데 있으며 아래 나열된 액션들은 플래시론을 통해 효율을 극대화하는 시나리오입니다.

  • 재정(차익) 거래(Arbitrage)
    플래시론을 활용한 긍정적인 사례중 가장 대표적인 케이스입니다. 재정거래란 서로 다른 두 개 이상의 시장에서의 가격 차이를 이용하여 수익을 발생시키는 거래를 이야기합니다. 대개의 경우, 탈중앙 거래소(DEX)는 중앙 거래소(CEX)의 가격 변화 흐름을 후행하는 형태이기 때문에, 거래소 간 시세 차익이 발생되는 상황을 빈번하게 포착할 수 있습니다. 이 경우, 플래시론을 이용한다면 보다 쉽게 재정 거래 기회를 접할 수 있게 됩니다. 아래의 예시를 통해 과정을 설명드려보도록 하겠습니다.

1. 플래시론을 통해 10,000 DAI 를 대출한다.

2. 대출금 10,000 DAI 를 통해 DEX A에서 1,000 DAI에 ETH 10개를 구매한다.

3. DEX B에서 1,050 DAI 에 전부 판매하여 10,500 DAI 획득한다.

4. 발생된 이자가 더해진 대출금 10,009 DAI 를 상환 (0.09% fee by Aave, 수수료 구조의 변경은 Aave 프로토콜 거버넌스에 의해 결정됩니다.)

5. 491 DAI 의 수익금 획득

이 경우, 재정거래를 성공한다면, 충분한 기초자산이 없더라도 위 과정 수행에 필요한 가스 비용만 지불할 수 있다면 금전적인 이득을 취할 수 있게 됩니다.

  • 강제 청산 방지 — Self-liquidation or Self-hedging
    시장의 변동성이 높은 경우, 맡긴 담보물의 변동성 또한 매우 높아지게 되고, 이는 자산을 잃을 위험성 또한 높아진다는 것을 의미합니다. 상승장에서는 스테이블 코인을 맡기고 암호화폐를 대출받는 경우가, 하락장에서는 암호화폐를 기반으로 스테이블 코인을 대출받는 경우가 이에 해당될 수 있습니다. 플래시론은 내가 보유한 잉여자산이 없더라도, 원활하게 CDP(Collateral Dept Position, 담보부채포지션)을 조정할 수 있도록 도와줍니다. 과담보 형태로 맡겨진 기초 자산을 부분적으로 청산하여 보다 쉽게 리스크 관리를 수행할 수 있습니다.

1. Aave Flash Loan을 통해 DAI를 대출한다.

2. 빌린 DAI를 통해 대출금을 갚는다.

3. 맡긴 ETH 일부를 인출한다.

4. DEX를 통해 ETH를 DAI로 전환하여 대출금을 상환한다.

  • 담보물 변경 — Collateral Swap
    대부분의 DeFi 대출 프로토콜은 다중 담보물 예치를 허용합니다. 변동이 심한 시장의 경우 스테이블 코인과 같은 일부 자산은 다른 자산보다 더 안정적인 역할을 수행할 수 있습니다. 포지션을 유지하고자 하는 경우 단순히 담보물의 종류를 변경하고자 하는 투자자는 플래시론을 통해 쉽게 진행할 수 있습니다. 플래시론의 등장이전에는 개설된 대출 포지션을 상환하고, 담보물을 다른 자산으로 교환하고, 대출 포지션을 다시 개설해야 했으며, 이는 잉여 자본이 많지 않은 경우, 또 가스비가 비싸진 이후, 대출 포지션를 “안정화”하기 위해 많은 거래와 비용을 소모하였습니다.
담보물 변경 예시
  • 대출 이자율 변경 — Interest Rate Swap
    플래시론의 이용 범위는 하나의 프로토콜 내로 국한되지 않습니다. 만약 같은 대출 상품에 대해 보다 낮은 이자를 부담해도 되는 경우, 정보를 토대로 다른 프로토콜로 대출 포지션을 옮김으로써 이자 비용을 절감할 수 있습니다.

1. 플래시론을 통해 대출을 진행한다.

2. 컴파운드에 대출금을 상환한다.

3. 컴파운드에 예치된 담보물을 회수한다.

4. Dydx에 담보물을 예치한다.

5. Dydx에서 암호화폐를 대출한다.

6. Aave에 대출금을 상환한다.

플래시론의 구조 살펴보기 — 스마트 컨트랙트 분석

앞선 [AAVE Series]의 로직분석 편들에서 살펴본 것처럼, 플래시론과 관련된 컨트랙트의 동작 방법을 간단히 살펴보도록 하겠습니다. 대출을 위해서 사용자가 준비해야하는 것은 아무 것도 없습니다.

상황. Aave Flash Loan Execution

function flashloan(address _asset) public onlyOwner {
bytes memory data = "";
uint amount = 1 ether;
ILendingPool lendingPool =
ILendingPool(addressesProvider.getLendingPool());
lendingPool.flashLoan(address(this), _asset, amount, data);
}
  • LendingPool contract에 flashLoan()함수를 호출하여 reserves 자산에 대하여 특정 amounts 의 플래시론을 요청합니다.
contract MyV2FlashLoan is FlashLoanReceiverBase {/**This function is called after your contract has received the flash loaned amount*/function executeOperation(    address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata premiums,
address initiator,
bytes calldata params) external override returns (bool) {
// This contract now has the funds requested.
// Your logic goes here.

// At the end of your logic above, this contract owes
// the flashloaned amounts + premiums.
// Therefore ensure your contract has enough to repay
// these amounts.
// Approve the LendingPool contract allowance to *pull* the owed
// amount.

for (uint i = 0; i < assets.length; i++) {
uint amountOwing = amounts[i].add(premiums[i]);
IERC20(assets[i]).approve(address(LENDING_POOL),amountOwing);
}
return true;
}}
  • 온전성에 대한 몇가지 검사(sanity checks)가 끝나고 나면, LendingPool 컨트랙트는 요청된amounts of the reserves 를 전송합니다. 뒤이어 executeOperation() 함수를 실행시킵니다.
  • 이제 플래시론을 통해 대출된amounts 를 보유하고 있기 때문에, 어떠한 차익거래든 수행할 수 있습니다.
  • 통상적인 플래시론을 수행하는 경우, 코드의 실행이 끝났을 시 LendingPool컨트랙트로 대출된 amounts of reserves + fee가 반환되어야 합니다.
  • 만약 상환이 불가능한 경우라면(잔고 부족 혹은 승인 여부로부터 기인된), 트랜잭션은 반환됩니다. 이 모든 것은 1개 블록 내에서 발생됩니다.

마치며.

[Aave series] 4. Aave의 Key Value, 플래시 론은 Aave만의 특징인 플래시 론에 대하여, 개념부터 사용사례 그리고 컨트랙트 동작 방식 등을 소개하였습니다. 플래시 론은 DeFi 세계를 보다 유연하게 동작하도록 도와주는 기능을 수행합니다. 대출 이자를 절감하거나, 청산의 위기로부터 기초 자산을 보호할 수 있습니다.

AaveWatch를 통해 지금까지 누적된 Flash Loan 대출액 데이터를 살펴보았을 때, 그 규모는 9월 기준 약 50억 달러에 거의 근접했으며, 그 양은 빠르게 증가하고 있습니다. 현재 플래시론은 대부분 개발자들 위주로 사용되고 있으며, DeFi에 익숙한 개발자들은 실제로 플래시론을 통해 컨트랙트의 취약점을 공격하여 막대한 수익을 챙기기도 합니다(플래시론 공격). 이러한 불균형한 시장의 단점들을 개선하기 위해, 보다 더 많은 DeFi 투자자들이 Flash Loan을 통해 효용을 누릴 수 있도록 관련 인프라 및 도구를보급하는 것과, 플래시론의 악용 사례들을 보완하기 위한 연구를 지속하는 것이 앞으로 남겨진 과제일 것입니다.

참고 자료

--

--

Clink Owen
Decipher Media |디사이퍼 미디어

Junior Blockchain Researcher at Seoul Nat’l Univ. Blockchain Academy Decipher(@decipher-media) Also Crypto Maximalist, I believe DeFi can bring the next value.