디파이강좌

조회 수 604 추천 수 0 댓글 0

 

image.png

 

 

2020년 2월 14일 발렌타인데이에 디파이(De-Fi) 분야에서는 플래시 론 공격으로 떠들썩했습니다. 블록체인을 이용한 탈중앙 금융 서비스인 디파이는 보통 하나의 암호화폐를 담보로 다른 암호화폐를 빌리는 방식을 사용하고 있습니다. 블록체인의 특성상 신용을 기반으로 대출을 진행할 수 없기 때문에 채용한 방식입니다.

 

담보를 통해 대출을 진행하려면 담보의 가치를 평가하는 과정이 필요한데, 이번에 발생한 플래시 론 공격은 담보의 가치를 평가하는 단계를 조작함으로써 공격을 시도하였습니다.

 

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

 

플래시 론이란 무담보로 받은 대출을 의미합니다. 좀 더 정확하게는 일시적으로 담보를 설정하고 대출을 받은 후, 대출 받은 암호화폐를 이용한 공격 및 조작을 통해 이득을 취한 뒤 바로 담보를 갚아버리는 방식으로 이루어집니다.

 

플래시론 공격은 이러한 플래시 론을 가능하게 만드는 공격을 이야기합니다. 이름에서 알 수 있는 것처럼 담보를 잠깐 보여주고 대출을 받는다고 해서 붙여진 이름입니다. (제 추측입니다.)

 

실제로는 담보의 가치를 측정하는 과정이나 암호화폐를 교환하는 과정에서 가격 조작을 거쳐 공격이 이루어지게 됩니다.

 

좀 더 자세히 살펴보면, 다음의 순서로 공격이 진행됩니다.

 

  1. 암호화폐를 빌릴 때 담보를 설정하게 되는데,
  2. 일시적으로 담보의 가치를 조작해서 실제 담보의 가치보다 더 많은 대출을 받고,
  3. 대출을 바로 갚아버려서 그 차익만큼의 이익을 공격자가 가져갑니다.

 

이번 공격에서 중요한 점은 공격이 단 한번의 트랜잭션으로 일어났다는 겁니다.

 

1차 공격

 

1차 공격은 한국시간으로 2020년 2월 15일에 발생했습니다.

 

Image for post

Image for post
플래시론 1차 공격 (etherscan.io)

1차 공격 분석

 

1차 공격의 트랜잭션은 다음과 같은 순서로 이루어졌습니다. 참고로 공격 시점에서 ETH와 BTC의 정상적인 교환 비율은 약 38.5 wETH/wBTC 정도였다고 합니다. (참고로 ETH와 wETH 그리고 BTC와 wBTC는 같은 가치를 갖고 있습니다.)

 

  1. 먼저 dYdX로부터 10,000 ETH를 빌립니다.
  2. 5,500 ETH는 Compound에 보내 112 wBTC를 빌리는 담보로 사용합니다.
  3. 1,300 ETH는 bZx의 Fulcrum에 보내 5배 레버리지로 예치합니다. (이 레버리지는 공격의 이득을 극대화하기 위해 사용되었습니다.)
  4. 3번의 결과로 5,637 ETH를 빌려 51 wBTC로 교환합니다. (이때, 교환 비율이 110 ETH/BTC로 이더의 가치를 떨어뜨렸습니다. 공격의 핵심이 되는 단계입니다.)
  5. 2번의 Compound에서 빌린 112 wBTC를 6871 ETH로 교환합니다. (이 단계에서 공격자가 4번에서 조작한 교환비율을 이용하여 이득을 취하게됩니다.)
  6. 1번에서 빌린 10,000 ETH를 갚고 남은 이득을 취합니다.

 

위에서 언급했다시피 위의 단계는 단 한번의 트랜잭션으로 이루어졌습니다. 그렇다는 것은 만약 공격이 실패했다하더라도 공격자는 약간의 가스 수수료만 지불하면 된다는 뜻입니다.

 

이 공격을 통해 공격자는 1,193 ETH의 이익을 얻었다고 합니다.

 

실질적으로는 대출이 남아있긴 하지만, 담보가 설정되어 있지 않기 때문에 공격자가 (당연히도) 대출을 갚지 않는다면 이익을 취할 수 있게 됩니다. 이 공격에 대한 단계별 분석은 Peckshield의 아티클을 참고하시면 됩니다.

1차 공격에 대한 대응

 

위의 공격은 bZx의 취약점을 기반으로 발생하였습니다. bZx 팀에서는 공격을 감지한 즉시 컨트랙트의 트랜잭션을 락업하고 패치에 들어갔습니다. 1차 공격에 대한 bZx의 리포트는 여기에서 확인하실 수 있습니다.

 

2차 공격

 

1차 공격 이후 패치가 이루어졌지만, 상황이 종료된 것은 아니었습니다. 1차 공격 이후 3일 뒤인 2월 18일 2차 공격이 발생합니다. 1차 공격에 대해 bZx가 리포트를 발행한 후 몇 시간뒤에 이어진 공격이었습니다.

 

Image for post

Image for post
플래시론 2차 공격 (etherscan.io)

2차 공격 분석

 

2차 공격은 다음과 같은 순서로 진행되었습니다.

 

  1. bZx로부터 7,500 ETH를 대출합니다.
  2. 1번에서 빌린 이더 중 3,518 ETH를 sUSD로 교환합니다. (sUSD는 1달러 스테이블 코인입니다.)
  3. Kyber에 900 ETH를 가지고 sUSD를 주문합니다. (이때 sUSD의 보통 가격인 1달러보다 높은 2.5달러 정도의 가치로 sUSD를 사들입니다.)
  4. Synthetix에서 6,000 ETH를 이용해서 sUSD를 사들입니다. (공격자는 3번과 4번으로 거의 1M sUSD를 확보하게 됩니다.)
  5. bZx에서 1,099,841 sUSD를 담보로 ETH를 대출합니다.
    - bZx는 sUSD와 ETH의 교환 비율을 Kyber에 의존하고 있는데, 3번의 결과로 sUSD의 가치가 높아져 있었습니다.
    - 그 결과로 원래 가치대로 였다면 4,080 ETH를 대출해야 하지만 6,796 ETH를 대출 받을 수 있었습니다.
    - 공격자는 이 단계에서 2,716 ETH 만큼의 이익을 볼 수 있었습니다.
  6. 1번에서 빌린 7,500 ETH를 갚습니다.

 

이 공격에 대한 단계별 분석은 Peckshield의 아티클에서 확인하실 수 있습니다. 이 공격의 특이한 점은 이 공격을 통해 이익을 본 사람이 공격자말고도 존재한다는 것입니다. 3번 단계에서 보통 가격보다 높은 가격으로 sUSD를 판매한 사람들도 결과적으로는 이득을 취했습니다.

 

2차 공격에 대한 업데이트는 2020년 2월 24일 현재 아직 개발 중에 있는 것으로 보입니다.

마치며

플래시론 공격은 디파이의 담보 대출 및 암호화폐 구매 과정에서 발생하는 담보 평가를 일시적으로 조작함으로써 발생하였습니다.

 

이를 방지하기 위해 많은 디파이 프로젝트들이 오라클 시스템을 개선하고 있습니다. 블록체인 오라클 문제를 해결하는 것이 디파이 프로젝트의 활성화에 큰 영향을 미치게 될 것 같습니다.

 


출처

https://medium.com/iotrustlab/%ED%94%8C%EB%9E%98%EC%8B%9C-%EB%A1%A0-%EA%B3%B5%EA%B2%A9-flash-loan-attack-%EC%9B%90%EB%A6%AC-%EB%B0%8F-%EB%B0%A9%EB%B2%95-%EB%B6%84%EC%84%9D-94e01fe1a9c8


List of Articles
제목 글쓴이 날짜 조회 수
디파이 DEX 개발 및 프로젝트 컨설팅 file 디파이판 2020.09.05 3317
(공지) [다쏜다~이벤트] 디파이판 글쓰기왕, 조회수왕 이벤트 디파이판 2020.09.24 26963
메타마스크 사용법 (1) - 암호화폐 지갑 생성하기 디파이판 2020.10.11 1284
메타마스크 사용법 (2) - 확장 프로그램 실행 및 전송 기능 디파이판 2020.10.10 894
비영구적 손실(Impermanent Loss) 디파이판 2020.10.09 3401
Uniswap 유동성 공급자 관련 내용, 동작원리 file 디파이판 2020.10.01 6182
암호화폐 담보대출 시장 현황 총정리 디파이판 2020.09.27 1290
유니스왑 (DEX 거래소별 사용법) - 스왑 Swap (거래) 하기 file 디파이판 2020.09.27 2611
유니스왑 거래 예시 file 디파이판 2020.09.27 897
AMM ((Autonomous Market Makers) 이란 file 디파이판 2020.09.27 4046
AMM DEX에 리스크는 줄이고 더 많은 자금을 유입하는 방법 file 디파이판 2020.09.27 716
덱스 - DEX(탈중앙화 거래소)란 무엇인가? file 디파이판 2020.09.27 1096
다파이(DeFi) vs 시파이(CeFi) file 디파이판 2020.09.27 1048
디파이(DeFi)에도 단계가 있다? file 디파이판 2020.09.25 957
디파이(DeFi) 종류와 프로젝트 file 디파이판 2020.09.25 1499
디파이란? (DeFi / Decentralized Finance ) file 디파이판 2020.09.25 1595
플래시 론 (Flash Loan) 공격의 원리 및 공격 방법 분석 file 디파이판 2020.09.24 604
디파이 렌딩 (DeFi : Lending & Borrowing) file 디파이판 2020.09.24 1312
컴파운드 프로토콜을 활용해 이자수익 만들기 file 디파이판 2020.09.24 677
신세틱스 사용 가이드 (4편) - 바이너리 옵션 (binary option) 디파이판 2020.09.24 587
Lending/Borrowing 플랫폼사용법-Maker file 디파이판 2020.09.24 538
Lending/Borrowing 플랫폼사용법-Aave file 디파이판 2020.09.24 753
Board Pagination Prev 1 2 Next
/ 2
CLOSE
XE Login