[Hacking Series] #01 Intro
본 게시글은 이더리움 스마트 컨트랙트 해킹 유형을 분석한 시리즈 중 1편입니다. 이번 글에서는 시리즈를 읽으실 독자분들께 본 Hakcing Series의 목적에 대해 말씀드리고자 합니다.
Author: Dean, Seungmin Jeon
Reviewer: Yohan Lim
서울대학교 블록체인 학회 디사이퍼에서 스마트 컨트랙트 해킹에 대한 글을 시리즈로 연재합니다. 본 글은 해킹 시리즈의 1편으로, 다른 편을 읽고 싶으시다면 아래의 리스트를 확인해주십시오.
[Hacking Series]
1편: Intro
2편: Unsafe Delegatecall
3편: Front Running
4편: Signature Replay
5편: Denial of Service
6편: Arithmetic Overflow / Underflow & Conclusion
목차
- Smart Contract Hacking
- The DAO 해킹 사례
- 해킹 사례 분석의 필요성
Smart Contract Hacking
블록체인 생태계가 발전함에 따라 스마트 컨트랙트의 해킹이 큰 문제로 대두되고 있습니다. 스마트 컨트랙트의 취약점을 악용해 돈을 탈취하는 해킹 사례는 점점 빈번하게 일어나고 있을 뿐만 아니라, 그 피해 규모도 날로 커져가고 있습니다. 2022년의 스마트 컨트랙트 해킹 액수는 $2.7B, 한화로 약 3.4조원에 달하며, 이는 2020년보다 12.5배 많은 수치입니다.
뿐만 아니라 스마트 컨트랙트와 상호작용하는 사람들, 그리고 토큰에 투자하는 투자자들도 큰 위험에 놓여 있습니다. 2017년 The DAO부터 시작하여 최근에는 Compound, Cream Finance, Mango Market 등 해킹 사건이 터진 프로토콜에 자금을 예치한 사용자들이 피해를 본 경우는 빈번하였고, 심한 경우 프로젝트의 명운이 달라지는 경우도 드물지 않게 발생하곤 합니다.
The DAO 해킹 사례
가장 대표적인 해킹 사례인 The DAO에 대해 간단하게 살펴보겠습니다. The DAO는 최초의 탈중앙화 자율 조직(DAO)로, 개인들이 모여 자율적으로 프로젝트 운용에 대해 결정하는 조직이었습니다. 그리고 그 과정에서 사용되는 의결권으로 DAO token을 발행하고, ETH 크라우드세일을 통해 판매하였죠.
그러나 2016년 6월 17일, The DAO 코드 상의 취약점으로 인해 The DAO에 예치된 모든 ETH가 탈취당하게 됩니다. 피해 금액은 총 360만 ETH로, 당시 가격으로 약 930억원 가량이 해킹당하였습니다. 이로 인해, 두 가지 문제가 발생하였습니다.
토큰을 탈취당한 사용자들을 구제하고 탈취 자금을 동결하기 위해 이더리움은 하드 포크(hard fork)에 대해 논의하였습니다. 이에 공격자로 추정되는 사람이 ‘자금은 스마트 컨트랙트에 명시된 대로 합법적인 방식에 따라 획득되었다’라는 글을 이더리움 커뮤니티에 게시하면서 격렬한 토론이 벌어졌습니다. 몇몇 사람들은, 블록체인은 변경 불가능하고 검열 저항성이 있어야 한다며 하드 포크는 블록체인의 본질을 부정하는 행위라고 주장하였죠. 결국 양측의 의견이 합치되지 못하였고, 이더리움은 현재의 이더리움(하드 포크가 이루어진 네트워크)과 이더리움 클래식(하드 포크하지 않은 원래의 네트워크)으로 나누어지게 되었습니다. 당시에 이는 이더리움 기술에 대한 신뢰를 잃게 만들고, 커뮤니티를 위협에 빠뜨린 중요한 사건 중 하나였습니다.
또한 사건 직후, ETH와 DAO token의 가격은 1시간 만에 절반으로 하락하였습니다. 이로 인해 The DAO에 토큰을 예치하지 않은 이더리움 투자자들도, ETH 가격 하락으로 인해 큰 피해를 보게 되었습니다.
즉 스마트 컨트랙트 해킹은 금전적인 피해 뿐만 아니라, DApp, 나아가 네트워크 전체를 흔들 수도 있는 치명적인 문제입니다.
해킹 사례 분석의 필요성
이러한 문제의식에서 출발하여, 디사이퍼 스마트 컨트랙트 해킹 팀은 스마트컨트랙트 해킹의 대표적인 방법들에 대해 알아보고, 그 개념에 대해 구체적으로 코드를 기반으로 알아보려 합니다. 또한 사례를 분석하여 취약점과 해킹 시나리오에 대해 더 잘 이해할 수 있도록 도와드리고자 합니다. 마지막으로 분석 내용을 바탕으로 빌더 및 사용자들이 취해야 할 행동에 대한 비전을 제시하여, 빌더와 사용자 모두에게 유용한 글이 되도록 노력했습니다.
2편부터는 다양한 스마트 컨트랙트 해킹 사례 및 시나리오에 대해 자세히 알아보도록 하겠습니다.