DEV Community

Juno Kim
Juno Kim

Posted on

탈중앙화의 아킬레스건: 디파이 프로토콜의 고질적인 취약점 파헤치기

탈중앙화 금융, 즉 디파이(DeFi)는 블록체인 기술 위에 구축된 개방적이고 허가 없는 투명한 금융 시스템을 약속하며, 암호화폐 생태계에 혁명적인 패러다임으로 등장했다. 마치 레고 블록처럼 다양한 프로토콜들이 서로 연동하고 그 위에 쌓여 나가는 혁신적인 '머니 레고' 구조 덕분에 디파이는 수조 달러에 달하는 총 예치 자산(TVL)을 끌어모았고, 전례 없는 금융 혁신을 이끌어냈다. 그러나 이 급성장하는 분야는 동시에 악의적인 공격자들의 주요 표적이 되었고, 매년 수십억 달러에 이르는 자금이 해킹과 익스플로잇으로 사라지고 있다. 디파이를 정의하는 바로 그 특징들, 즉 오픈소스의 특성, 구성 가능성(composability), 스마트 계약의 불변성, 그리고 종종 빠른 개발 주기는 동시에 독특하고 복잡한 보안 문제를 야기한다. 연속적으로 발생하는 대규모 보안 사고들은 디파이 생태계의 견고함과 성숙도에 대한 근본적인 질문을 던진다. 기반이 되는 블록체인 기술 자체는 대체로 안전하다고 평가되지만, 취약점은 대개 애플리케이션 계층, 즉 스마트 계약과 프로토콜의 경제 설계 자체에 존재한다. 10년 경력의 암호화폐 및 블록체인 연구자 관점에서 이 글은 디파이 프로토콜이 왜 계속해서 공격받는지에 대한 다각적인 이유들을 깊이 파고든다. 우리는 이러한 공격의 기술적 기반을 탐구하고, 실제 사례를 분석하며, 이러한 시스템을 보호하는 데 내재된 한계를 논하고, 더욱 회복력 있는 탈중앙화 금융의 미래를 위한 전문가적 견해를 제시할 것이다. 이러한 취약점을 이해하는 것은 단순히 학문적인 목적을 넘어, 이 위험천만한 영역을 탐색하는 개발자, 사용자, 투자자 모두에게 매우 중요하다고 본다. 디파이는 이더리움과 같은 퍼블릭 블록체인을 활용하여 인터넷 연결만 있다면 누구나 접근할 수 있는 금융 서비스를 만들어냄으로써, 전통 금융과는 근본적으로 다른 전환점을 제시한다. 디파이의 핵심은 스마트 계약에 있다. 이는 합의 조건이 코드에 직접 작성되어 스스로 실행되는 계약으로, 중개인 없이 대출, 차입, 거래, 자산 관리와 같은 프로세스를 자동화한다. 이러한 계약의 투명성은 오픈소스이며 공개 원장에서 검증 가능하다는 점에서 신뢰를 구축하려는 의도를 담고 있다. 디파이의 급속한 성장은 여러 요인 덕분이다. 전통 은행보다 높은 수익률을 약속하고, 광범위한 KYC(고객 신원 확인) 절차 없이 금융 서비스에 접근할 수 있으며, 개발자들이 프로토콜을 '쌓아 올려' 복잡한 금융 상품을 만들 수 있는 혁신적인 구성 가능성이 그것이다. 흔히 '머니 레고'라고 불리는 이 구성 가능성은 하나의 프로토콜이 다른 여러 프로토콜의 기능에 통합되고 의존할 수 있음을 의미한다. 이는 놀라운 혁신과 효율성을 촉진하지만, 동시에 엄청난 공격 표면을 만들어낸다. 하나의 기초 '레고 블록'에 취약점이 생기면, 그 위에 의존하는 전체 생태계에 연쇄적인 영향을 미칠 수 있다. 더욱이, 스마트 계약은 일단 배포되면 불변하다는 특성 때문에, 코드에 존재하는 버그나 취약점은 새로운 계약을 완전히 배포하지 않고는 쉽게 패치하거나 업데이트할 수 없다. 이는 종종 비현실적이거나 복잡한 마이그레이션 전략을 요구한다. 이로 인해 '두 번 재고 한 번 잘라라'는 식의 매우 중요한 상황이 발생하며, 한 번의 오류는 영구적이고 값비싼 대가를 치르게 된다. 이러한 프로토콜에 잠긴 막대한 가치와 공격자에게 종종 허용되는 익명성, 그리고 블록체인의 전 세계적 접근성은 디파이를 정교한 해커들에게 매우 매력적인 표적으로 만든다. 철저한 보안 감사보다 시장 출시 속도를 우선시하는 급진적인 혁신 속도는 이러한 내재된 위험을 더욱 악화시키며, 익스플로잇이 번성할 수 있는 비옥한 토양을 조성한다. 디파이 프로토콜 해킹은 드물게 단순한 경우가 많으며, 종종 미묘한 코드 취약점, 경제적 설계 결함, 그리고 정교한 공격 벡터의 조합을 수반한다. 이러한 메커니즘을 이해하는 것은 디파이 보안의 지형을 파악하는 데 매우 중요하다. 첫째, 스마트 계약 취약점이다. 가장 직접적인 형태의 익스플로잇은 스마트 계약 코드 자체의 결함을 노린다. 대표적인 취약점인 '재진입 공격(Reentrancy Attacks)'은 더 다오(The DAO) 해킹(디파이 이전 사례지만 근본적인 예시이다)과 최근 커브 파이낸스(Curve Finance)의 일부에서 악용된 바 있다. 재진입은 계약이 자신의 상태를 업데이트하기 전에 다른 신뢰할 수 없는 계약에 외부 호출을 할 때 발생한다. 이때 신뢰할 수 없는 계약은 초기 트랜잭션이 완료되고 상태가 업데이트되기 전에 원래 계약에 여러 번 '재진입'하여 자금을 빼낼 수 있다. 현대 스마트 계약 언어와 'Checks-Effects-Interactions' 패턴과 같은 모범 사례는 이를 완화하는 데 목적이 있지만, 여전히 간과되는 경우가 발생한다. '논리 오류 및 버그(Logic Errors and Bugs)'는 잘못된 산술 계산(예: 정수 오버플로우/언더플로우로 인한 잘못된 잔액)부터 부적절한 접근 제어(관리자용 기능이 일반 사용자에게 호출되는 경우)에 이르기까지 광범위한 코딩 실수를 포함한다. 0값 전송이나 특정 타이밍 조건과 같은 엣지 케이스를 잘못 처리하는 것도 악용 가능한 버그로 이어질 수 있다. 예를 들어, 2023년의 오일러 파이낸스(Euler Finance) 해킹은 플래시 대출과 결합된 기부 메커니즘의 논리적 결함을 악용하여 담보를 조작하고 정상적인 포지션을 청산했다. '플래시 대출 공격(Flash Loan Attacks)'은 동일한 블록체인 트랜잭션 내에서 빌리고 갚아야 하는 무담보 대출이다. 차익 거래, 담보 스왑과 같은 합법적인 용도가 존재하지만, 공격자들에 의해 무기화되는 경우가 많다. 공격자들은 즉시 대규모 자본을 빌려 유동성이 낮은 탈중앙화 거래소(DEX)에서 자산 가격을 조작하거나 오라클 취약점을 악용하고, 단일 블록 내에서 대출을 상환한 후 이익을 챙겨 달아난다. bZx, 팬케이크버니(PancakeBunny), 크림 파이낸스(Cream Finance)와 같은 프로토콜들이 다양한 플래시 대출 지원 조작의 희생양이 되었다. 둘째, 오라클 조작이다. 많은 디파이 프로토콜은 자산 가격, 이자율, 시가총액과 같은 실제 정보를 제공하기 위해 오라클이라고 알려진 외부 데이터 피드에 의존한다. '가격 오라클 조작(Price Oracle Manipulation)'의 경우, 프로토콜이 단일하고 유동성이 낮은 DEX나 쉽게 조작될 수 있는 소스에서 가격을 가져오는 오라클을 사용한다면, 공격자는 플래시 대출을 사용하여 해당 DEX에서 특정 자산의 가격을 일시적으로 부풀리거나 떨어뜨릴 수 있다. 이렇게 조작된 가격은 취약한 프로토콜로 전달되어, 공격자가 저평가된 담보에 대해 과도한 양의 자산을 빌리거나 불공정하게 포지션을 청산할 수 있도록 한다. 체인링크(Chainlink)의 탈중앙화 네트워크나 여러 소스에서 가져온 시간 가중 평균 가격(TWAP) 오라클과 같은 강력한 오라클 솔루션은 이를 방지하도록 설계되었지만, 구현상의 결함은 여전히 악용될 수 있다. 셋째, 프로토콜 설계 및 경제적 익스플로잇이다. 스마트 계약 코드가 기술적으로 건전하더라도, 프로토콜의 경제적 설계나 거버넌스 구조의 결함이 악용될 수 있다. 일부 디파이 프로토콜은 토큰 보유자들이 제안에 투표하는 방식으로 거버넌스가 이루어진다. 만약 공격자가 충분히 많은 거버넌스 토큰을 축적하거나 일시적으로 획득한다면, 그들은 악의적인 제안(예: 금고 고갈, 중요한 프로토콜 매개변수 변경)을 통과시킬 수 있다. 비인스톡 팜스(Beanstalk Farms) 해킹은 주로 플래시 대출 및 재진입 공격이었지만, 악의적인 제안을 승인하기 위해 거버넌스도 활용했다. 프로토콜의 네이티브 토큰이 설계, 배포 또는 인센티브화되는 방식의 결함은 개발자들이 유동성을 빼내고 프로젝트를 포기하는 '러그 풀(rug pulls)'로 이어지거나, 펌프 앤 덤프(pump-and-dump) 계획의 기회를 만들 수도 있다. 넷째, 인프라 및 크로스체인 취약점이다. 디파이가 여러 블록체인으로 확장됨에 따라, 크로스체인 브릿지는 중요하면서도 매우 취약한 인프라가 되었다. 크로스체인 브릿지는 서로 다른 블록체인 간의 자산 전송을 용이하게 한다. 이들은 종종 한 체인에 자산을 잠그고 다른 체인에 래핑된 버전을 발행하는 방식으로 작동한다. 많은 브릿지는 다중 서명 지갑이나 중앙화된 검증자 세트에 의존하여 단일 실패 지점을 만든다. 개인 키 손상(예: 사회 공학 또는 내부 공모)이나 브릿지 스마트 계약의 취약점은 막대한 손실로 이어질 수 있다. 폴리 네트워크(Poly Network) 해킹(6억 1천만 달러 이상)과 로닌 브릿지(Ronin Bridge) 해킹(6억 2천5백만 달러 이상)은 개인 키 손상으로 인해 브릿지 자금이 유출된 극명한 사례다. 디파이 프로토콜은 종종 외부 라이브러리, 타사 서비스 또는 다른 스마트 계약과 통합되거나 의존한다. 이러한 종속성 중 하나에 취약점이 있다면, 자체 코드가 견고하더라도 전체 프로토콜이 손상될 수 있다. 이를 공급망 공격(Supply Chain Attacks)이라고 부른다. 이러한 기술적, 경제적 벡터들은 공격자들이 끊임없이 탐색하는 코드, 설계, 인프라의 복잡한 상호작용을 강조하며, 디파이 보안에서 지속적인 경계와 강력한 보안 관행의 필요성을 보여준다. 디파이의 역사는 이 분야의 취약점을 냉혹하게 상기시켜주는 일련의 대규모 해킹 사건들로 점철되어 있다. 특정 사건들을 살펴보면 앞서 논의된 기술적 분석이 구체적으로 어떻게 현실화되는지 알 수 있다. 2021년 8월, 폴리 네트워크는 역대 최대 디파이 해킹 중 하나로 기록되었다. 크로스체인 상호운용성 프로토콜인 폴리 네트워크는 이더리움, BSC, 폴리곤 등 여러 체인에 걸쳐 6억 1천만 달러 이상의 자산이 도난당하는 익스플로잇을 겪었다. 공격자는 프로토콜의 스마트 계약 내 취약점을 악용하여 크로스체인 트랜잭션의 서명 검증 과정을 우회했다. 구체적으로, 'EthCrossChainManager' 계약에는 공격자가 _executeCrossChainTx 함수의 'r' 매개변수를 호출하여 EthCrossChainData 계약의 키퍼를 변경할 수 있도록 허용하는 결함이 있었다. 이는 사실상 공격자가 합법적인 '키퍼'가 되어 자신의 악의적인 트랜잭션에 서명하고 폴리 네트워크가 관리하는 지갑에서 자산을 빼낼 수 있게 했다. 이 사건은 크로스체인 브릿지 설계에 내재된 심각한 보안 위험과 미묘한 스마트 계약 논리 결함이 미치는 엄청난 영향을 극명하게 보여주었다. 놀랍게도 해커는 궁극적으로 대부분의 자금을 반환하며 취약점을 노출하기 위한 '화이트햇' 작전이었다고 주장했지만, 이 사건은 이러한 시스템의 취약성을 여실히 드러냈다. 2022년 3월, 액시 인피니티(Axie Infinity)의 로닌 사이드체인을 이더리움에 연결하는 로닌 브릿지는 약 6억 2천5백만 달러 상당의 ETH와 USDC를 유출당하는 익스플로잇을 당했다. 이 공격은 정교한 사회 공학 및 개인 키 침해 사건이었다. 공격자는 브릿지에서 인출을 승인하는 데 필요한 아홉 개의 검증자 개인 키 중 다섯 개를 장악했다. 이는 스카이 마비스(Sky Mavis, 액시 인피니티 개발사)가 운영하는 검증자 노드와 액시 다오(Axie DAO)가 운영하는 또 다른 검증자를 침해하여 달성되었다. 침해는 스카이 마비스 직원을 대상으로 한 정교한 스피어 피싱 공격을 통해 이루어졌다고 보고되었다. 이 사례는 잘 설계된 다중 서명 체계조차도 인간적 요소, 사회 공학, 그리고 '탈중앙화' 시스템의 운영 인프라 내에서 제어 지점의 중앙화로 인해 무너질 수 있음을 생생하게 보여준다. 2023년 3월, 주요 대출 프로토콜인 오일러 파이낸스는 약 2억 달러의 손실을 초래한 복잡한 플래시 대출 공격의 대상이 되었다. 공격자는 오일러의 기부 메커니즘과 청산 로직과 관련된 취약점을 악용했다. 구체적으로, 공격자는 플래시 대출을 받은 다음 '기부(donate)' 기능을 사용하여 특정 자산의 담보 비율을 조작함으로써 과도한 양의 eToken(예치된 담보를 나타내는 오일러의 래핑된 토큰)을 발행했다. 그런 다음 이 조작된 eToken을 사용하여 막대한 금액을 빌렸고, 자신의 담보 부족 포지션에 대해 청산을 유발했지만, 조작된 담보 비율 때문에 청산이 부채를 완전히 해결하지 못했다. 이 공격은 플래시 대출과 특정하고 미묘한 스마트 계약 논리 버그를 결합하여 경제적 익스플로잇을 만들어낸 교과서적인 사례였다. 대부분의 자금은 강력한 압력과 법 집행 기관 및 블록체인 분석 회사와의 협력을 통해 결국 회수되었다. 2023년 7월, 스테이블코인 스왑에 중점을 둔 주요 탈중앙화 거래소인 커브 파이낸스의 여러 풀이 특정 버전의 Vyper 프로그래밍 언어 컴파일러(0.2.15, 0.2.16, 0.3.0)에서 재진입 취약점 때문에 공격당했다. 이 취약점은 공격자들이 해당 Vyper 버전을 사용하는 계약에 재진입하여 풀에서 유동성을 빼낼 수 있도록 허용했다. 총 가치 측면에서 브릿지 해킹만큼 크지는 않았지만, 이 사건은 근본적인 프로그래밍 언어 또는 컴파일러 버그조차도 이를 의존하는 여러 프로토콜에 광범위한 영향을 미칠 수 있음을 보여주었다. 또한, 하나의 공통 도구의 취약점이 수많은 독립적인 프로젝트에 영향을 미칠 수 있는 디파이의 상호 연결성을 강조했다. 이러한 사례들은 정교한 스마트 계약 논리 결함과 플래시 대출을 통해 촉진되는 경제적 조작부터 개인 키 및 사회 공학을 포함하는 중요 인프라 침해에 이르기까지 다양한 공격 벡터를 보여준다. 이들은 디파이 공간에서 혁신, 보안, 그리고 악의적인 공격자들의 끊임없는 취약점 추구 사이의 지속적인 전투를 종합적으로 강조한다. 블록체인 보안의 상당한 발전에도 불구하고, 몇 가지 내재된 한계는 디파이 프로토콜을 포괄적으로 보호하는 데 지속적으로 어려움을 야기한다. 이는 단순히 기술적인 장애물이 아니라, 탈중앙화 패러다임 자체의 근본적인 측면들이라고 할 수 있다. 스마트 계약 및 블록체인의 핵심 원칙 중 하나는 불변성이다. 일단 배포되면 코드는 쉽게 변경될 수 없다. 이는 검열 저항성을 제공하고 합의가 작성된 대로 실행됨을 보장하지만, 취약점이 발견될 경우 심각한 약점이 된다. 패치를 신속하게 배포할 수 있는 전통적인 소프트웨어와 달리, 불변하는 스마트 계약의 버그를 수정하려면 종종 완전히 새로운 계약을 배포하고 사용자 자금을 이전해야 하는데, 이 과정은 복잡하고 비용이 많이 들며 그 자체로 일련의 위험을 수반한다. 이러한 '불변성의 역설'은 어떠한 초기 결함도 영구적이고 재앙적일 수 있음을 의미한다. 디파이의 '머니 레고' 특성은 혁신의 강력한 동력이지만, 동시에 믿을 수 없을 정도로 복잡한 상호 의존성의 웹을 생성한다. 한 프로토콜은 한 서비스의 오라클, 다른 서비스의 유동성, 그리고 세 번째 서비스의 거버넌스에 의존할 수 있다. 이러한 기본 구성 요소 중 하나에 취약점이 있다면, 자체 코드가 완벽하더라도 그 위에 구축된 프로토콜에 연쇄적인 영향을 미쳐 손상을 입힐 수 있다. 단일 프로토콜의 보안을 감사하는 것도 충분히 어렵지만, 상호 연결된 전체 생태계의 보안을 감사하는 것은 거의 극복할 수 없는 과제이며, 모든 가능한 공격 경로를 예측하기 어렵게 만든다. 궁극적으로 스마트 계약은 사람이 작성하며, 사람은 실수를 한다. 디파이의 빠른 개발 속도는 종종 치열한 경쟁과 시장 수요에 의해 주도되어, 서두른 코드, 불충분한 테스트, 간과된 엣지 케이스로 이어질 수 있다. 심지어 매우 숙련된 개발자도 정교한 공격자에게 악용될 때 치명적인 취약점이 되는 미묘한 버그를 도입할 수 있다. 더욱이, 로닌 브릿지 해킹에서 보았듯이 사회 공학 및 피싱 공격은 '인적 요소'가 특히 개인 키 및 관리자 접근 권한의 운영 보안에 있어 여전히 중요한 취약점임을 강조한다. 블록체인 확장성 향상을 위해 설계된 많은 솔루션(예: 레이어 2 솔루션, 사이드체인, 옵티미스틱 롤업)은 새로운 복잡성 계층과 잠재적인 공격 표면을 도입한다. 예를 들어, 옵티미스틱 롤업은 트랜잭션을 이의 제기할 수 있는 분쟁 기간을 가지는데, 이는 견고하게 설계되지 않으면 잠재적인 익스플로잇이나 그리핑 공격의 기회를 만들 수 있다. 높은 트랜잭션 처리량과 낮은 수수료의 필요성과 타협 없는 보안의 균형을 맞추는 것은 종종 어려운 트레이드오프를 수반하며, 새로운 악용 벡터를 만들 수 있다. 업계가 형식 검증, 포괄적인 감사, 버그 바운티 프로그램과 같은 모범 사례로 나아가고 있지만, 보편적으로 채택된 보안 표준은 여전히 부족하다. 디파이의 탈중앙화되고 글로벌한 특성은 또한 대체로 규제되지 않은 환경에서 작동한다는 것을 의미하며, 이는 혁신을 촉진하는 동시에 덜 양심적인 프로젝트가 책임 없이 등장하여 자본을 유치하고 취약점을 드러내는 '와일드 웨스트' 시나리오로 이어질 수 있다. 철저한 보안 감사를 위한 비용과 시간 또한 작고 신생 프로젝트에는 부담이 될 수 있어, 충분한 보안 검사 없이 시장에 출시되는 경우가 발생한다. 이러한 한계들은 디파이 보안이 단일한 해결책이 있는 문제가 아니라, 지속적인 경계, 보안 도구의 혁신, 그리고 전체 생태계의 집단적인 노력을 요구하는 지속적이고 다각적인 도전임을 강조한다. 디파이 프로토콜 해킹이라는 지속적인 문제는 탈중앙화 시스템의 근본적인 특성, 혁신의 빠른 속도, 그리고 악의적인 공격자들의 끊임없이 진화하는 정교함에 뿌리를 둔 복잡하고 다층적인 사안이다. 우리의 분석은 익스플로잇이 단순히 고립된 코딩 오류에서 비롯되는 것이 아니라, 재진입 및 논리 버그와 같은 스마트 계약 취약점, 플래시 대출 및 오라클 조작에 취약한 경제적 설계 결함, 그리고 특히 크로스체인 브릿지 내의 핵심 인프라 약점들이 복합적으로 작용하여 발생한다는 점을 보여준다. 폴리 네트워크, 로닌 브릿지, 오일러 파이낸스, 커브 파이낸스와 같은 실제 사건들은 수십억 달러의 손실과 사용된 다양한 공격 벡터를 냉혹하게 상기시켜준다. 불변성이 버그 수정의 필요성과 충돌하고, 구성 가능성이 시스템적 위험을 초래하며, 인적 요소가 무신뢰 시스템에 취약점을 도입하는 등 디파이의 내재된 역설들은 절대적인 보안을 달성하기 어렵다는 점을 강조한다. 생태계가 탈중앙화를 지향하더라도, 특정 운영상의 중앙화(예: 브릿지의 검증자 세트)는 여전히 매력적인 표적이 된다. 혁신 속도, 확장성, 그리고 강력한 보안 사이의 트레이드오프는 끊임없이 존재하며, 보편적인 보안 표준이나 포괄적인 규제 프레임워크의 부재는 복잡성을 더욱 가중시킨다. 이 분야의 전문가로서, 나의 견해는 디파이의 엄청난 잠재력이 보안 태세를 성숙시키는 능력에 결정적으로 달려 있다는 것이다. 이를 위해서는 다각적인 접근 방식이 필요하다. 엄격하고 지속적인 보안 감사, 형식 검증 방법 채택, 화이트햇 해커에게 인센티브를 제공하는 강력한 버그 바운티 프로그램, 그리고 더욱 회복력 있는 오라클 설계 및 크로스체인 솔루션 개발이 그것이다. 나아가, '빨리 움직여 망가뜨려라(move fast and break things)'는 식의 사고방식에서 '설계부터 안전하게(secure-by-design)'라는 원칙을 우선시하는 개발 문화로의 집단적인 전환이 필수적이다. 운영 보안 강화, 개발자와 사용자 교육, 그리고 보안 연구 커뮤니티 내의 협력 증진 또한 매우 중요한 단계다. 도전 과제는 여전히 존재하지만, 더 안전한 프로토콜을 구축하려는 지속적인 노력과 익스플로잇으로부터 회복하고 배우는 커뮤니티의 회복력은 희망적인 전망을 제공한다. 디파이는 아직 초기 단계에 있으며, 그 장기적인 성공은 궁극적으로 흔들림 없는 보안을 통해 신뢰를 구축하는 능력에 의해 결정될 것이다. 면책 조항: 이 글은 정보 및 교육 목적으로만 작성되었으며, 재정적 조언이나 특정 암호화폐, 프로토콜 또는 투자 전략에 대한 지지를 구성하지 않는다. 암호화폐 시장은 변동성이 매우 크고 투기적이며, 개인은 투자 결정을 내리기 전에 자체 조사를 수행하고 자격을 갖춘 금융 전문가와 상담해야 한다.

※ 본 칼럼은 정보 제공을 목적으로 하며, 투자 권유가 아닙니다. 모든 투자 결정은 본인의 판단과 책임 하에 이루어져야 합니다.

Top comments (0)