Introduction to Flash Loan

기존 대출 기관은 돈을 빌린 사람이 사라지거나, 유동성이 부족해 대출자가 너무 많이 빌려주거나 제때 상환 받지 못하는 리스크가 존재했다. 플래시 론은 이 두 리스크를 보완하고자 2019년 마블 프로토콜(Marble Protocol)에 의해 이더리움 블록체인에 도입되었다.

플래시 론이란?

승인, 실행 등 모두 한 번의 거래로 상환되는 무담보 대출로 한 트랜잭션 내에 이자를 포함한 상환과 대출이 이뤄지는 방식이다. 자체 실행 스마트 컨트랙트를 통해 이루어지며 스마트 컨트랙트 조건에 따라 대출금을 즉시 상환할 수 없는 경우 실행되지 않는다. 무담보이기 때문에 주로 차익 거래에 사용되고, 공격이 실패해도 수수료만 지불하고 상환하면 되기 때문에 위험이 적어 공격에 자주 이용된다.

무담보 대출이 가능한 이유는 스마트 컨트랙트의 롤백 기능 덕분이다. 트랜잭션 실행 전 상태를 기록하는 스마트 컨트랙트의 경우 트랜잭션을 롤백할 수 있다. 플래시 론은 트랜잭션 결과가 블록으로 생성되기 전에 모든 거래를 수행한다는 전제 하에 진행되기 때문에, 사용자의 담보보다 부채가 커지면 블록체인 네트워크에 트랜잭션 결과가 블록으로 기록되기 전에 롤백하는 것이다.

정리
플래시 론은 무담보 대출로 거래가 끝나기 전에 상환해야 하며 이더리움 기반 탈중앙화 금융(DeFi) 프로토콜로 제공된다.

동작 과정

  1. 채무자가 대출받는다
  2. 대출받은 암호화폐를 사용한다.
  3. 채무자가 대출을 상환한다. 만약 상환하지 못하면 거래는 없던 것이 되고, 원금은 대출자에게 돌아간다.

플래시 론 특징

  • 제로 담보
  • 스마트 컨트랙트 이용
  • 기존의 대출 시스템은 일반적으로 대출을 제공하기 전에 담보를 요청하지만, 플래시 론은 어떤 형태의 담보도 필요하지 않고 이자와 함께 상환할 수 없다면 계약이 실행되지 않는다.
  • 즉각적인 거래, 플래시 대출은 즉시 실행된다. 빠르게 움직이는 가격 변동을 이용하기 위해 몇 초 만에 완료되고 상환된다.
  • 스마트 컨트랙트가 거래를 관리하고 거래가 완료되기 전에 대출금이 상환되도록 한다. 만약 거래가 끝나기 전에 사용자가 대출을 상환하지 않는다면 거래가 취소된다.

플래시 론 사용 사례

  • 담보 교환 : 사용자가 담보 대출을 가지고 있는 경우 해당 대출을 뒷받침하는 담보를 다른 유형의 담보로 교환할 수 있다. (예를 들어 사용자에게 BAT를 담보로 한 DAI대출이 있고, 담보인 BAT을 ETH로 변환하고 싶다고 가정해보자. 플래시 론으로 DAI를 빌려 기존의 빚을 갚고 기존 담보(BAT)를 인출한다. BAT를 ETH로 변환한 후 ETH를 담보로 맡기고 DAI 대출을 진행한다. 빌린 DAI로 플래시 론을 상환하면 된다.)
  • 차익 거래 : 두 시장이 암호화폐 가격을 다르게 책정할 때 거래자는 대출 자금을 이용하여 이익을 얻을 수 있다. (예를 들어 10BAT가격이 거래소A에서 3DAI이고, 거래소B에서 4DAI이라고 가정하자. 사용자는 플래시 론을 사용하여 12DAI를 대출 받아 거래소A에서 40BAT를 구입한 후 거래소B에서 40BAT를 팔아 16DAI를 구입한다. 16DAI 중 12DAI를 플래시 론에 상환하고 남은 차액 4DAI를 이익으로 챙길 수 있다.)
  • 거래 수수로 절약 : 단일 거래 내에서 여러 거래가 한 번에 이루어지기 때문에 낮은 수수료로 사용할 수 있다.

플래시 론 공격(Flash Loan Attack)이란?

일시적으로 담보를 설정하고 대출받은 후, 대출받은 암호화폐를 이용해 공격 및 조작을 통해 이익을 취한 뒤 이 거래가 블록에 저장되기 전에 상환하는 방식으로 이루어진다. 대출받은 토큰으로 특정 탈중앙화거래소에서 가격을 조작해 예치 자산의 가치를 높인 뒤 거액의 대출을 받아 유동성을 탈취한다.

이는 해당 거래소가 단일 오라클을 사용해서 가능한 일로 중앙화된 오라클이 문제가 된다. 가격 조작을 막기 위해 다양한 출처를 통해 가격 정보를 가져와 오라클 문제를 예방해야 한다. (오라클 문제란 가격 정보 같은 외부 데이터를 블록체인으로 들여올 때 발생하는 정보의 신뢰성 문제를 말하며, 단일 오라클을 사용할 경우 하나의 출처만 사용하기 때문에 정보가 조작될 여지가 커진다.) 따라서 분산형 오라클을 사용할 경우 피해를 최소화할 수 있다.

정리
플래시 론 공격이란 대출 실행 시 담보를 설정하게 되는데 담보의 가치를 조작해서 실제 담보의 가치보다 더 많은 대출을 받고, 대출을 갚아서 차익을 공격자가 가져가는 것이다.

플래시 론 공격 순서

[그림 1] 토큰 대출 (출처 https://chain.link/education-hub/flash-loans)

1. 공격자는 플래시 론을 지원하는 프로토콜에서 대량의 토큰 A를 대출

[그림 2] 시세 조작 (출처 https://chain.link/education-hub/flash-loans)

2. 공격자는 DEX(탈중앙화거래소)에서 토큰 A를 토큰 B로 교환 (토큰 A의 현물 가격을 낮추고 토큰 B의 현물 가격을 높임)

[그림 3] 조작된 시세로 대출 (출처 https://chain.link/education-hub/flash-loans)

3. 공격자는 구매한 토큰 B를 DEX의 현물 가격을 사용하는 DeFi 프로토콜에 담보로 예치하고 조작된 현물 가격을 사용하여 평소보다 훨씬 많은 토큰 A를 대출

[그림 4] 대출 상환 (출처 https://chain.link/education-hub/flash-loans)

4. 3에서 빌린 토큰 A로 1에서 대출한 토큰 A 상환

[그림 5] 차익 발생 (출처 https://chain.link/education-hub/flash-loans)

5. 차액으로 수익 창출

DEX에서 토큰 A와 B의 현물 가격이 실제 시장 가격으로 조정이 되고, DeFi 프로토콜은 담보가 부족한 상태로 남게 된다.


플래시 론을 활용한 공격 사례는 다음 글을 참고하자.

Euler Finance Flash Loan Attack
2023년 3월 13일, Euler Finance는 스마트 컨트랙트의 취약점으로 인해 Flash Loan Attack을 당하게 되어 약 2억 달러에 해당하는 자금을 탈취당했다. 하지만 공격자는 피해 금액의 약 90%를 돌려주게 되었는데... 본 사건의 전반적인 내용과 공격 과정을 자세하게 살펴본다.

Flash Loan Attack 사례

You've successfully subscribed to PLAINBIT
Great! Next, complete checkout to get full access to all premium content.
Error! Could not sign up. invalid link.
Welcome back! You've successfully signed in.
Error! Could not sign in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.