IT
개발, 하드웨어, 소프트웨어 토론
드리프트 해킹, 내 돈은 누가 책임지나
🇰🇷 야근러2시간 전조회 197댓글 5
솔라나 체인 위에서 돌아가는 탈중앙화 파생상품 거래소 드리프트 프로토콜이 해킹당했을 때, 커뮤니티 반응이 딱 두 갈래였다. "그래서 내 돈은?" 하고 묻는 사람, 그리고 "탈중앙화니까 원래 자기 책임"이라고 말하는 사람. 나도 백엔드 개발자로 밥 먹고 사는 입장에서 스마트 컨트랙트 코드 한 줄이 수십억을 날릴 수 있다는 걸 머리로는 알고 있었는데, 막상 실제 피해 사례를 보면 그게 이론이 아니라 누군가의 전 재산이었다는 게 확 와닿는다. 전통 금융에서는 은행이 해킹당하면 예금자보호법이 있고, 카드가 도용되면 이의 제기 절차가 있는데, 디파이에서는 그런 안전망이 기본적으로 없다. 코드가 곧 법이고, 코드에 구멍이 있으면 그건 그냥 뚫리는 거다.
드리프트 같은 프로토콜의 취약점이 터질 때 개발자 시선으로 보면 대부분 비슷한 패턴이다. 오라클 가격 조작, 플래시론을 이용한 유동성 풀 공격, 아니면 컨트랙트 업그레이드 권한이 특정 지갑에 집중되어 있다가 그 키가 털리는 경우. 결국 "탈중앙화"라고 이름을 붙여놨지만 실제 운영 구조를 뜯어보면 관리자 키 몇 개에 모든 게 달려 있는 경우가 태반이다. 회사에서 서버 배포할 때도 운영 키 관리를 이렇게 하면 바로 보안 감사에 걸리는 수준인데, 수백억이 오가는 프로토콜이 그 정도 거버넌스도 없이 돌아간다는 게 솔직히 좀 무섭다. 오딧(감사) 받았다고 홈페이지에 배지 달아놓은 프로젝트도, 오딧 이후에 추가된 코드에서 구멍이 나는 건 흔한 일이다.
그러면 결국 개인이 할 수 있는 건 뭐냐. 일단 디파이에 돈을 넣는 순간 그건 은행 예금이 아니라 투자라는 걸 인정해야 한다. 나 같은 경우는 하나의 프로토콜에 전체 자산의 일정 비율 이상을 절대 안 넣는다. 지갑도 용도별로 분리해서, 디파이 인터랙션용 핫월렛에는 잃어도 생활에 지장 없는 금액만 넣고, 메인 자산은 하드웨어 월렛에 따로 둔다. 트랜잭션 서명할 때 무슨 권한을 승인하는 건지 확인하는 것도 기본 중의 기본인데, 이걸 귀찮다고 그냥 컨펌 누르는 사람이 정말 많다. "이 컨트랙트에 내 지갑의 모든 토큰 무제한 인출 권한을 줍니다"라는 승인을 아무 생각 없이 눌러놓으면, 그 컨트랙트가 나중에 악의적으로 업그레이드되는 순간 지갑이 통째로 빠진다.
개발자 입장에서 한 가지 더 짚자면, 디파이 프로토콜 고를 때 깃허브 들어가서 코드가 공개되어 있는지, 최근 커밋이 언제인지, 이슈 대응은 어떻게 하는지 정도는 봐야 한다. 코드를 직접 분석 못 하더라도 개발팀이 활발하게 관리하고 있는 프로젝트와 배포 후 방치된 프로젝트는 느낌이 다르다. TVL 높다고 안전한 게 아니고, APY 높다고 좋은 게 아니다. 수익률이 비정상적으로 높으면 그 수익이 어디서 나오는지를 먼저 의심해야 한다. 출처를 설명 못 하는 수익률은 결국 다른 누군가의 원금이거나, 아니면 해킹 한 방에 증발할 구조적 리스크를 감수하고 있는 거다.
퇴근하고 새벽에 디스코드 알림 떠서 봤더니 내가 돈 넣어둔 프로토콜이 털렸다, 이런 상황이 실제로 올 수 있다. 그때 "탈중앙화니까 어쩔 수 없지"라는 말이 위로가 되지는 않는다. 결국 자기 돈은 자기가 지키는 수밖에 없고, 지키는 방법은 거창한 게 아니라 분산, 분리, 확인 이 세 가지다. 한 바구니에 다 담지 말고, 지갑과 용도를 나누고, 서명 전에 뭘 승인하는지 읽어보는 것. 디파이의 자유에는 그만큼의 책임이 따라오는데, 그 책임의 무게를 모른 채 들어가면 다치는 건 결국 본인이다.
댓글 5
댓글을 불러오는 중...