ADVERTISEMENT

[파커] 디파이를 빅파이로 만들어야 디파이가 산다?

Join:D

입력

업데이트

[출처: 셔터스톡]

[파커's Crypto Story]  지난 2월 암호화폐 시장에 작은 소동이 있었습니다. 디파이(탈중앙금융) 프로젝트 bZx가 서비스 취약점을 노린 공격자에게 두 차례에 걸쳐 피해를 봤기 때문입니다. 총 피해액수는 약 7억 원. 개별 프로젝트 단위로 봤을 땐 적지 않은 금액이지만, 확실히 암호화폐 시장 전체 규모로는 많다고 보기엔 미약한 액수입니다.

그럼에도 디파이 업계는 물론 대부분의 암호화폐 관계자들이 이번 사건을 주목했습니다. 암호화폐 시스템 근간이 훼손된 부분이 많았다는 점이 그 이유였는데요. 해당 사건을 통해 디파이를 비롯한 암호화폐 본질을 다시 생각해보게 되는 요즘. 과연 디파이 업계는 이번 일을 반면교사 삼아 한 단계 더 도약할 수 있을까요? 지금부터 bZx 사태의 과정을 살펴보고 디파이 서비스가 보여준 한계와 가능성을 간략하게 이야기할까 합니다.     

#이런 영악한 공격자를 보았나

사건의 발단은 초콜릿을 선물하는 날로 유명한 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를 갚고 차익을 실현합니다. 이것이 공격자의 첫번째 작전이었습니다.       

#플래시론, 이 모든 과정이 13초만에 이뤄졌다?

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

아이러니한 것은 공격자의 이번 공격이 이러한 플래시 론의 장점을 역이용했다는 점에 있습니다. 플래시 론과 디파이 서비스 전반의 허점을 미리 파악하고 그에 맞는 알고리즘을 미리 입력했다면 13초만에 무담보로 막대한 차익을 얻는 게 가능하다는 것입니다. 물론 정상적이지 않은 알고리즘이 입력되면 스마트 콘트랙트가 작동하지 않습니다. 그럼에도 이번 작전이 성공할 수 있었던 이유는 스마트 콘트랙트가 취소돼도 공격자가 손해보는 건 가스 수수료 정도에 불과하기 때문입니다. 반면 성공할 때 돌아오는 수익은 막대합니다. 블록체인 기술과 컴퓨터 개발에 익숙하고 디파이 서비스를 잘 아는 영악한 공격자라면 시도하지 않을 이유가 없었던 셈입니다. 결국 미리 짜놓은 설계와 약간의 운이 함께 작용해 공격자는 큰 수익을 얻게 됐습니다.

#다른 방법으로 다시 공격, 그러나 본질은 같았다

공격을 받은 이후 bZx 측은 피해 상황을 분석한 보고서를 내고 해당 콘트랙트의 트랜잭션을 락업하는 조치를 취했습니다. 그런데 공격자가 한번으론 부족하다고 생각했던 걸까요. 4일 뒤인 2월 18일(현지시간) 두번째 공격을 감행합니다. 첫번째 공격과 경로는 달랐지만 본질은 같았습니다.

이번엔 처음부터 bZx에 7500ETH를 플래시 론으로 대출받습니다. 여기서 3517ETH를 신세틱스(Synthetix)로 옮겨 이것을 sUSD로 바꿉니다. sUSD는 달러와 1:1 가치를 지닌 스테이블 코인입니다. 동시에 공격자는 탈중앙화 거래소(DEX) 프로젝트 카이버 네트워크(Kyber Network)에 900ETH를 넣고 sUSD를 주문합니다. 이 과정에서 극히 낮은 플랫폼 유동성을 이용해 sUSD의 가격을 2.5달러까지 올려놓습니다. 이러한 작업을 통해 100만 달러가 넘는 sUSD를 확보하게 되죠. 문제는 bZx는 sUSD 가격 데이터를 카이버 네트워크에서 받고 있었는데 이쪽 시장의 sUSD 가격이 폭등해버렸습니다. 공격자는 이 점을 이용해 ETH/sUSD 거래쌍에서 가치가 폭등한 sUSD를 총 6796ETH로 대출해 차익을 얻었습니다. 최종 수익은 최초 플래시 론 7500ETH을 뺀 상태에서 사용하지 않은 플래시 론 3083ETH과 마지막 대출 6796ETH를 합친 2379ETH이었습니다.         

#디파이가 보여준 한계

두차례의 공격 사례는 피해 과정부터 해결방법에 이르기까지 여러 한계점을 보여줬습니다. 가장 근본적인 문제는 유동성 부족이었습니다. 애초에 유동성이 풍부했다면 단 13초만에 wBTC와 sUSD의 가격을 몇 배나 올릴 순 없었겠죠. 근원적인 문제인 만큼 해결방법도 간단하지만 추상적입니다. 지금보다 고객을 많이 유치하고 디파이의 규모를 확장해 나가면 된다는 것입니다. 말은 쉬운데 실현되기가 굉장히 어려워 보이는 해답입니다.

둘째로는 외부 데이터가 왜곡됐다는 점입니다. 블록체인에선 오라클(Oracle)이라고 불리는 기술을 이용해 외부 데이터를 끌어오는데요. bZx는 카이버 네트워크를 통해 외부 시장 가격 데이터를 불러왔습니다. 공격자는 이 카이버 네트워크의 외부 시장 가격을 왜곡한 다음 bZx에서 대출을 감행했던 것입니다. 해결책은 그래도 첫번째에 비해 명확합니다. 오라클 경로를 다양하게 설정하면 됩니다. 현재 오라클 프로젝트의 선두주자 중 한 곳인 체인링크의 세르게이 나자로브(Sergey Nazarov) CEO(최고경영자)는 이 사태를 두고 “오라클 경로를 다양화할 필요가 있다”며 직접적으로 견해를 밝히기도 했습니다.

셋째로는 탈중앙성에 대한 문제가 다시 대두됐습니다. 사건 발생 후 bZx는 콘트랙트 트랜잭션을 락업하는 등 중앙통제형 조치를 취했는데, 이를 두고 일각에선 디파이도 중앙화된 프로젝트와 다를 바 없었다는 비판을 했습니다. 다만 해당 조치는 비상 상황에서 벌어진 어쩔 수 없는 조치였다는 의견이 우세합니다.

#디파이가 보여줄 가능성

일각에선 이번 bZx 사태는 디파이 자체의 명백한 한계라며, 디파이가 수명을 다했다고 이야기하기도 합니다. 그러나 인간의 영역이 아닌 미래를 예단하는 건 옳지 않아 보입니다. 외부 데이터 왜곡의 경우는 체인링크 나자로브 CEO가 말한 것처럼 채널 다양화로 가시적 효과를 볼 수 있습니다. 탈중앙화에 대한 문제는 단기간에 해결되긴 어려우나, 중앙 통제 방식에 대한 합의를 적절히 이뤄 나가면 보다 현실적인 거버넌스가 구축되리라 믿습니다. bZx 사태와 같은 비상 상황에도 네트워크 관리자들이 탈중앙화라는 명목으로 아무 조치도 취하지 않는다면 그건 탈중앙화가 아니라 ‘무책임화’겠죠. 그런 맥락에서 수수료 수익의 10%를 보험자금으로 돌려 고객을 보호한 점은 좋은 방법이었다고 생각됩니다.

그러나 유동성 증대에 대한 방법은 확실히 험난해 보입니다. 디파이의 사활이 여기에 걸렸다고 해도 과언이 아닌데요. 앞서 이야기했던 것처럼 디파이의 유동성을 풍부하게 하려면 고객을 늘리고 자산 규모를 확대해야 합니다. 그러려면 디파이 서비스에서 사실상 기축 역할을 하고 있는 ETH의 예치 규모를 늘리거나 다른 암호화폐를 비롯한 외부 자산을 끌어와야 합니다. 이를 확보하기 위해 리스크는 있어 보일지언정, 기존 금융에선 볼 수 없었던 새로운 시도들을 이어나가는 것이죠. 다만 지금 관점에선 디파이가 메스 어답션(대중적 수용) 단계라고 보기엔 ETH의 예치 규모가 턱없이 부족한 실정입니다. 아니면 ETH의 가격 자체가 지금보다 훨씬 올라야 하는데, 아무 기반 없는 인위적 상승은 지속가능하지 않다는 점을 누구나 알고 있을 것입니다. 결국 단시간 내에 해결할 수 없는 문제입니다.

외부 자산을 디파이로 끌어오는 경우에도 마찬가지입니다. 디파이 업계에서 ETH외에 BTC와 같은 주요 코인을 끌어오려는 시도는 이미 다양한 방법으로 이뤄지고 있는데요. bZx 사태에서 등장한 wBTC가 대표적인 방법이라고 볼 수 있습니다. 이더리움 네트워크를 이용해 새로운 코인을 만들고 그것을 비트코인과 1:1 가치로 연동하는 것이죠. 또 한가지 방법은 비트코인에 스마트 콘트랙트 레이어를 직접 연결하는 방식입니다. 루트스탁(RSK)이 대표적 사례입니다. 다만 이더리움 네트워크 연동 방안은 bZx 사태로 한계가 노출됐고, RSK 방안은 본래 비트코인 체인에 비해 보안성이 취약하다는 단점이 있습니다. 이외에 암호화폐가 아닌 자산을 끌어오는 연구는 STO(증권형토큰)의 방법이 있습니다. 정착만 잘되면 비트코인 연동과는 비교도 안되게 자산 규모가 확장되겠죠. 그러나 STO는 규제 이슈가 크게 걸려있을 뿐만 아니라 실물 가치를 담보할 때 생길 수 있는 오프라인 오라클 문제가 존재합니다. 온라인상의 오라클을 끌어오는 것보다, 오프라인상의 오라클을 불러올 때 훨씬 다양하고 어려운 변수가 발생하므로 이 문제 역시 쉽지 않을 것으로 보입니다.

그럼에도 관계자들은 이번 사태를 긍정적으로 바라보고 있습니다. 공격자로 인해 디파이가 보완해야 될 사항을 명확히 할 수 있었다는 것입니다. 악재에도 불구하고 장기적인 관점으로 봤을 때 예치 규모나 고객 수는 점진적으로 늘고 있다는 점도 강조합니다. 누구도 가지 않은 길을 개척하는 것이 결코 쉬운 일은 아니겠지만, 업계의 오랜 침체에 대한 해답을 올해는 디파이가 조금은 제시할 수 있기를 기대해봅니다.   

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

ADVERTISEMENT
ADVERTISEMENT