preLoad Image preLoad Image
검색 바로가기
주메뉴 바로가기
주요 기사 바로가기
다른 기사, 광고영역 바로가기
중앙일보 사이트맵 바로가기
닫기
닫기

Defi Story ①탈중앙 금융 태동, 생태계 공격 시도 있었다

[출처: 셔터스톡]

 

[Defi Story①] 2017년 메이커다오(MakerDAO)라는 무허가성 은행이 본격적으로 등장하면서 현재의 디파이(DeFi, 탈중앙금융) 테마가 형성되기 시작했다. 처음에는 높은 진입장벽과 적은 메리트로 인해 대부분의 암호화폐 사용자들이 디파이를 찾지 않았다. 그러나 2020년 들어 그 수요가 폭발적으로 증가하며 디파이에 대한 가능성이 계속해서 언급되고 있다. 2018년만 해도 2억 달러 수준의 TVL(잠겨있는 총 물량)을 기록했던 디파이 시장은 2020년 9월 TVL 143억 달러라는 놀라운 성장세를 보이고 있다.

 

실증 사례를 중심으로 디파이 산업이 어떤 식으로 폭발적인 발전을 이뤄냈는지, 또한 디파이 프로젝트에서 나타나는 특징과 경향을 통해 앞으로 어떤 개선점이 필요한지 등에 대해서 세 차례에 나눠 애기해 보겠다.

 

#디파이의 시작, 무허가성 탈중앙 은행의 출현

오늘날 디파이의 첫 기원을 열어젖힌 프로젝트는 무허가성 탈중앙 은행인 메이커 다오였다. 메이커다오는 이더리움을 담보로 다이(DAI)라는 1달러 가치의 변동성 적은 스테이블코인을 제공하는 방식으로 시스템을 운용했다. 만약 담보로 잡은 이더리움의 가치가 다이보다 낮아지면, 메이커다오가 자동으로 해당 이더리움을 경매에 부쳐 다이와 교환하여 소각을 진행하는 방식이다. 반대로 다이의 가치가 올라 1달러를 초과하는 움직임을 보이면 다이를 추가 공급하는 방식으로 변동성을 조절한다. 이 모든 과정이 특정 중개인의 개입 없이 스마트 콘트랙트로 자동 처리 됐기 때문에 업계 사람들은 메이커다오와 같은 디파이 예치·대출 프로젝트를 무허가성 탈중앙 은행이라고 불렀다.

 

초기 디파이 유저들은 단순 일회성 예치·대출 프로젝트를 이용하거나, 반복 대출 시스템을 통해 수익을 극대화하는 전략을 추구했다. 예컨대 담보로 삼은 이더리움에서 나온 다이를 이더리움 구매에 다시 쓰는 방식을 활용하면, 반복 대출을 통해 예치액보다 많은 대출금을 확보할 수 있다. 일종의 레버리지가 발생하는 셈이다. 물론 위와 같은 레버리지성 대출이 과도하게 시행될 경우, 이더리움 가치 하락에 따른 청산 가능성이 높아지게 된다. 이에 따라 디파이 시스템에 능숙한 소수의 유저들만이 해당 전략을 선택적으로 운용했다.

 

대다수의 투자자들은 이 시기 디파이를 생소한 개념으로 받아들였다. 중앙화 거래소는 비록 중개인이 있었으나 편리한 인터페이스와 함께 값싼 수수료를 제공했다. 반면 무허가성 탈중앙 은행은 중개인 없이 스마트 콘트랙트와 코드로 신뢰를 구축하고자 했지만, 그 속에서 새롭게 창출된 디파이 스테이블코인에 대한 믿음이 부족한 상황이었다. 사람들은 잡음이 많기는 해도 여전히 법정화폐 달러를 담보로 1달러 스테이블코인을 발행하는 USDT를 선호했다. 더 오랜 시간동안 변동성 없는 흐름을 시장에서 검증 받았기 때문이다.

 

무엇보다 결정적이었던 것은 이론과 현실의 괴리였다. 무허가성 탈중앙 은행은 스마트 콘트랙트로 자동화를 추진해 더 빠르고 편리한 탈중앙 거버넌스를 구축하고자 했으나, 사람들은 기존과 다른 예치·담보 시스템 진입 자체에 어려움을 겪었다. 인센티브 역시 레버리지를 동반한 대출을 감수하지 않으면 그렇게 큰 액수가 주어지지 않았다. 예치 금액 자체가 크면 유의미한 수익을 얻을 수는 있었지만, 대부분의 사람들은 신뢰도·리스크·편리성 등에서 중앙화 거래소의 스테이킹 서비스를 더 나은 것으로 치부했다. 여기에 지금까지 디파이 생태계를 주도하고 있는 이더리움의 특성상, 매 트랜잭션마다 수수료가 발생해 비용면에서도 중앙화 거래소의 메리트를 넘어서지 못했다. 이는 2018년 디파이 TVL이 1~2억 달러 수준에서 정체되는 결과를 낳았다.    

 

#AMM의 등장

이러한 디파이의 문제점들을 근본적으로 해결해준 것은 2018년 11월에 론칭된 유니스왑(Uniswap)V1의 AMM(Auto Market Maker) 시스템이었다. AMM의 등장으로 디파이는 중개인 없는 예치·대출 서비스 이상의 고유 확장성을 도모할 수 있게 됐다. 거래 방식 자체가 기존 금융과 다르게 됐다는 점이 가장 큰 의의라고 할 수 있다.

 

<그림 1> 암호화폐 거래소 업비트(Upbit)의 MM 모델 거래방식

 

기존 금융권에서는 마켓 스프레드(매도 호가 최저가와 매수 호가 최고가의 격차)를 줄이기 위해 MM(Market Maker)이 나서게 된다. 주식 시장에서 증권사들이 제공하는 호가창에 나와있는 가격들이 바로 MM이 제공하는 값이다. 중앙화 암호화폐 거래소에서도 똑 같은 방식으로 MM이 존재한다. 이들은 MT(Market Taker)보다 수수료를 감면 받는 등의 혜택을 부여 받아 시장에 유동성을 공급한다. 전통 금융에서 MT는 MM이 제공한 값들을 취하는 매수·매도자 역할을 수행한다. 따라서 MM 시스템이 원활하게 적용될수록 매수·매도자가 원하는 가격에 거래를 체결할 수 있게 된다. 디파이 생태계가 해결하고자 하는 슬리피지(매수·매도자가 원하는 청산가와의 괴리) 문제를 기존 금융은 MM으로 해결하고 있는 셈이다.

 

반면 디파이의 AMM(Auto Market Maker)은 MM 메커니즘이 코드와 수식에 의해 자동으로 이뤄진다. AMM에서는 MM 시스템과 달리 사람이 단순 유동성 공급자(LP) 역할만 수행한다. 그렇게 LP가 특정 거래쌍(유니스왑 기준)에 해당하는 풀(Pool)에 맞는 유동성을 불어넣으면 수수료의 0.3%를 보상으로 받게 된다. 여기까지의 보상 원리는 MM이 MT에 비해 수수료 혜택을 받는 배경과 유사하다.

 

그러나 AMM은 생태계 시스템 구축을 위해 X*Y=K라는 수식을 사용한다. 해당 수식으로 인해 AMM은 단순 ‘거래 방식의 자동화’를 넘어 ‘거래 방식 자체의 변화’를 맞이한다. 보다 쉬운 이해를 위해 예시를 들어보고자 한다. B라는 사람이 USDC(스테이블 코인)/ETH(이더리움) 거래쌍에 LP로 참여한다고 가정해보겠다. 여기서 X는 USDC가 되고, Y는 ETH가 된다. 그런데 해당 풀에는 현재 총 1000개의 USDC와 10개의 ETH가 있다. 이 경우 X와 Y를 곱해 나오는 상수 K값은 1만이 된다.

 

중요한 점은 거래가 일어나도 해당 풀에는 K값이 유지돼야 한다는 것이다. 예컨대 C라는 사람이 가지고 있는 ETH를 USDC와 스왑하기 위해 1ETH를 보낼 시, 먼저 LP에게 보상으로 돌아가는 수수료를 계산해야 한다. 계산의 편리함을 위해 액면가 그대로 0.3%의 수수료만 계산하면 1ETH*0.003(백분율 적용)=0.003ETH라는 금액이 LP 보상 수수료로 책정된다. 그러면 USDC/ETH 거래쌍에서 ETH 풀의 총량은 10(기존 ETH 풀 총량)+1(C가 USDC와의 교환을 위해 보낸 ETH)-0.003(LP 보상 수수료)=10.997이 된다. 이러면 1000(기존 USDC 풀 총량)*10(기존 ETH 풀 총량)=10000에서 X*10.997=10000으로 조건이 바뀌게 된다.

 

공식에 맞는 X값을 찾으려면 10000/10.997을 해줘야 한다. 곧, 909.339가 C의 1ETH 전송 이후 적정 USDC 풀이 된다. 이때 C가 최종적으로 받는 USDC 금액은 1000(기존 USDC 풀 총량)-909.339(스왑 이후의 USDC 풀 총량)=90.661이다. 구매자 입장에서는 보내는 ETH 수량이 많아지거나 수수료 금액 자체가 커질수록 내가 받고자 하는 USDC 수량이 줄어들 것이다. 반면 LP 입장에서는 유동성 공급을 길게 잡고 수수료가 증가할수록 보상이 커지게 되는 구조다.

 

<그림 2> 유니스왑(Uniswap)의 AMM 모델 거래 방식

 

이처럼 AMM은 기존 금융 거래 방식과는 근본적으로 큰 차이가 있다. 호가창이 존재하지 않으며, 특정 수식 메커니즘에 의한 유동성에 따라 스왑 형태로 자동 교환이 일어나게 된다. 유니스왑 백서를 보면 이 X*Y=K 수식 뒤에 금융 수학이 복잡하게 얽혀 있는 것을 확인할 수 있다. 시시각각 변하는 유동성 풀 규모와 거래쌍 간의 비율을 자동으로 계산하기 위해서는 고등수학 응용이 필수적으로 요구되기 때문이다. 생각보다 그렇게 간단히 세상에 나온 프로젝트는 아닌 셈이다. 무엇보다 수차례의 번거로운 트랜잭션 없이 스왑 한번으로 거래를 완료할 수 있어 편의성 및 수수료 경쟁 면에서도 중앙화 거래소와 다른 차별점을 갖게 됐다. 유동성 공급자에게는 수수료 보상이 따로 지급된다는 점도 중앙화 거래소와는 다른 장점이었다.

 

또한 AMM은 거래쌍을 K값에 맞춘다는 특성상, 수수료 수익이 높지 않거나 유동성 공급 시점 이후에 그 풀의 토큰 가격이 오르거나 내려가게 되면 되레 LP가 손해를 볼 수 있다. 유동성 공급 이후 토큰 가격이 올랐을 경우에는 원금 손실이 아니라, 유동성을 공급하지 않은 순수 토큰 보유자와 비교했을 때 이익이 덜 메겨지는 개념이다. 이러한 현상은 AMM 상에서 거래가 일어날 때, X*Y=K에 따라 풀이 자동 조정되는 과정에서 차익거래자가 외부시장과 가격을 맞추기 때문에 일어난다.

 

디파이 업계에서는 방금 이야기한 ‘LP와 비LP의 손익 차이’를 비영구적 손실(Impermenant Loss)이라고 부른다. 비영구적이라고 부르는 이유는 LP가 유동성 공급을 취소하기 전까지는 결과적으로 손실이 아니기 때문이다. 계속해서 유동성 공급하기로 마음 먹었다면 향후 토큰 가격·수수료 변동 추이에 따라 ‘비영구적 손실’ 상황이 종료될 수 있다.

 

#디파이 공격 사례① 제도적 취약점을 노린 공격

무허가성 탈중앙 은행과 해당 자금을 탈중앙적으로 융통하는 DEX(탈중앙 거래소)에 AMM 개념이 도입되면서 디파이 시장은 2019년 후반기부터 7억~10억 달러 수준의 TVL 도약을 이뤄냈다. 그러나 시장 규모가 커짐에 따라 공격자들의 자금 탈취 시도도 빈번해졌다. 특히 2020년 초에 일어난 ‘bZx 자금 탈취 사태’는 그동안 디파이 생태계가 얼마나 발전했는지를 보여줌과 동시에 취약성이 함께 드러난 사건이었다. 총 피해액수는 약 7억 원에 불과했으나, 디파이의 제도적 취약점을 절묘하게 공격했다는 부분에서 업계 관계자들의 향후 개선점을 명확히 해줬다.

 

사건의 발단은 2월 14일(현지시간) 정체를 알 수 없는 공격자가 bZx와는 관계없는 다른 디파이 서비스 dYdX에 1만 ETH(이더리움)을 대출하면서 시작됐다. 이어 공격자는 대출받은 1만 ETH 중 5500ETH를 또 다른 디파이 프로젝트 컴파운드(Compound)에 보냈다. 그리고 이를 wBTC라는 BTC(비트코인)과 1:1 가치를 가지는 암호화폐로 교환했다. 디파이 서비스가 BTC를 쓰지 않고 굳이 번거롭게 wBTC와 같은 암호화폐를 새로 만드는 이유는 일종의 호환성 문제 때문이다. 스마트 콘트랙트 활용과 ERC20을 이용한 프로젝트 확장으로 디파이의 본원 담보 화폐에 ETH가 사용되는데, BTC는 ETH와 체인이 달라 그대로 연결할 수 없다. 그래서 ETH 기반으로 wBTC라는 코인을 새로 만들어 이를 BTC와 1:1 가치로 묶는 방법을 고안한 것이다.

 

이후 공격자는 5500ETH를 총 112wBTC로 환전하고 동시에 1300ETH를 문제의 bZx 마진 거래소 펄크럼(Fulcrum)으로 보내 5배 레버리지로 예치했다. 이를 통해 bZx에서 5637ETH를 대출할 수 있었고, 이것을 즉시 51wBTC로 교환했다. 중요한 점은 해당 과정에서 wBTC의 가치가 3배 가량 폭등했다는 것이다. 유동성이 적은 서비스를 이용해 레버리지를 일으킨 후 대량 교환으로 화폐가치에 급격한 변동을 준 셈이다. 그런데 bZx에 보낸 1300ETH가 아닌, 컴파운드로 전송한 5500ETH(112wBTC로 교환)이 아직 남아있는 상태였다. 공격자는 마무리로 이 112wBTC를 6871 ETH로 바꿨다. 이전에 wBTC의 가격을 크게 올려놨기 때문에 유리한 교환비로 ETH를 챙긴 것이다. 일종의 자전교환을 통해 5500ETH를 6871ETH로 늘렸다. 마지막으로 공격자는 최초에 dYdX에서 빌린 1만ETH를 갚고 차익을 실현했다. 이것이 공격자의 첫 번째 작전이었다.  

     

<그림 3> bZx 사태 당시 공격자의 취약점 공략 흐름 (출처: 펙쉴드)

 

놀라운 점은 이 모든 과정이 이더리움 1개 블록이 생성되는 약 13초 동안 벌어졌다는 것이다. 디파이 서비스에선 이더리움 1개 블록이 만들어지는 찰나의 시간을 기한으로 무담보 대출을 해주는 시스템이 있다. 이를 플래시 론(Flash Loan)이라고 부른다. 언뜻 생각하면 무담보 대출이라 빌려주는 사람과 빌리는 사람 모두 이익을 보기 힘들 거라는 생각이 들 수 있다. 그러나 스마트 콘트랙트로 대출을 알고리즘에 따라 관리하기 때문에 빌려주는 사람도 빠른 시간 안에 이자를 받을 수 있다는 장점이 있다. 또 해당 사건이 일어나기 전까진 13초 안에 결함이 생길 거라고는 생각하기 어려운 점이 있어, 보안성 측면에서도 주목을 받았었다. 빌리는 사람의 경우, 잘못하면 빌린 사람에게 대출 이자만 넘겨주고 손해보는 장사를 한다고 생각할 수 있으나, 미리 알고리즘을 입력하면 재정거래 차익을 볼 수 있는 구조였다.

 

#디파이 공격 사례②: 코드 결함을 통한 공격

이후 2달 뒤인 4월에는 디파이 플랫폼 디포스(dForce)에서 약 300억 원 규모의 자금 손실 사태가 일어났다. 디포스 보유 비트코인·이더리움 자산의 99%에 달하는 비교적 큰 손실 액수였다.

 

디포스 자금 손실 사건은 유니스왑(Uniswap)의 Imbtc풀 코드 취약점을 이용해 발생했다. 공격자가 유니스왑의 유동성 풀 중 하나인 imBTC의 코드 취약점을 노린 것이다. imBTC는 아임토큰 측이 제공하는 일반 유동성 풀이다. 디파이 시스템은 이와 같이 누구든지 유동성 풀을 만들어낼 수 있다는 특징을 가지고 있다. imBTC풀은 디파이 유동성 풀 참여자들이 만들어 낸 수많은 풀 중 하나일 뿐이다. 문제는 디파이 플랫폼 서비스 디포스가 운영하는 탈중앙 대출 프로토콜 lendf.me도 2020년들어 imBTC풀을 오픈했다는 점이었다. 암호화폐 분석 업체 팩쉴드(Peckshield)에 따르면 유니스왑의 imBTC풀 공격 피해액은 약 2억 7000만원에 불과했다. 결국 큰 피해는 lendf.me 채널에서 온 것이다. 피해규모 300억 원 중 대부분의 손실은 lendf.me로부터 발생했다.

 

공격자가 디파이 서비스 취약점을 이용했다는 점에서 디포스 사건은 bZx와 같은 측면이 있다. 하지만, 공격방식은 달랐다. bZx 사태가 플래시 론이라는 디파이 특유의 서비스와 낮은 유동성을 노린 ‘제도 취약 공격’이었다면, 이번에는 코드 결함을 통해 리엔트런시(Reentrancy) 공격을 시도한 ‘기술 취약 공격’에 가까웠다. 리엔트런시 공격이란 하나의 거래를 요청한 후 그 거래가 끝나기도 전에 다시 새로운 거래를 시도하는 방법을 의미한다. 공격자가 해당 방법을 성공적으로 진행하면 이중 처리가 가능하게 된다. 이렇게 되면 잔고가 10만원일 때 10만원 인출이 끝나기 전에 다시 10만원 인출을 해도 그 거래가 그냥 통과되는 오류가 발생한다. 그리고 이 패턴을 무한으로 반복하면 피해액수는 그만큼 커지게 된다.

 

옛 이더리움 클래식의 하드포크를 촉발한 2016년 더 다오(THE DAO) 사태도 리엔트런시 공격을 활용한 공격자가 자금을 탈취해 발생한 사건이다. 당시 공격자는  재귀호출 버그(Recursive Call Vulnerability)를 이용한 무한환불 공격으로 약 360만 이더리움(ETH)을 탈취했다. 특정 스마트 콘트랙트의 splitDAO(이더리움 환불 명령 함수)가 재귀호출에 취약하다는 사실을 해커가 파악했기 때문이다. 이를 통해 보상이 갱신되기 전 DAO 토큰을 인출해 이 작업이 무한 반복되도록 설정했다.

 

같은 맥락에서 디포스 사태도 imBTC의 이더리움 표준 프로토콜 중 하나인 ERC-777상의 스마트 콘트랙트 코드 취약점을 노려 발생했다. 해당 ERC-777 코드 내에 있는 공급(Supply)함수가 제대로 작동되지 않아 인출(Withdraw) 잔고에 영향을 끼친다는 것을 공격자가 파악하고 리엔트런시 공격을 감행한 것이다. 결과적으로 imBTC의 토큰 결함과 lendf.me의 콘트랙트 결함 문제가 겹치면서 디포스 사태가 터진 것이라고 볼 수 있다.

 

박상혁 기자 park.sanghyuk@joongang.co.kr

 

[Defi Story]

①탈중앙 금융 태동, 생태계 공격 시도 있었다

②이자농사 거품 논란, 그 후

③디파이 대중화를 위한 5가지 쟁점

AD
온라인 구독신청 지면 구독신청

PHOTO & VIDEO

shpping&life

많이 본 기사

댓글 많은 기사