“삼성전자에는 많은 훌륭한 회계사가 있습니다. 그럼에도 불구하고 외부 감사를 받습니다. 제3자로부터 점검을 받는 게 그만큼 중요하기 때문입니다. 스마트 콘트렉트도 마찬가지입니다. 검증·배포 과정을 거치지 않은 스마트 콘트렉트를 사용하는 ICO에 투자하는 것은 내용이 무엇인지도 모르는 계약서에 서명하는 것과 마찬가지입니다”
김민석 해치랩스 최고운영책임자(COO·사진)는 7일 서울 강남구 본사에서 기자와 만나 보안감사를 받지 않은 스마트 콘트렉트의 위험을 강조했다. 그는 “스마트 콘트렉트는 한 번 배포되면 수정하기 어렵고, 작은 버그로 인해 해킹 등 큰 경제적 피해가 초래될 수 있다”고 말했다. 이어 “코드를 잘 짜는 사람은 많지만, 버그가 하나도 없는 코드를 구현하기는 매우 어렵다”고 덧붙였다. 해치랩스는 암호화폐 프로젝트에서 사용한 스마트 콘트렉트를 검증해 보안성을 높이는 전문 업체다. 스마트 콘트렉트에 보안 취약성이 존재하는지 점검하고, 백서에서 서술한 내용대로 구현되었는지 살피는 서비스를 제공한다.
김 이사는 △다오(The DAO) 사건 △패러티(Parity) 지갑 동결 사건 △스마트매쉬 토큰 무한생성 해킹 사건 등을 언급했다. 이더리움 이더(ETH)의 전체 발행량의 15%를 해킹당한 다오 사건은 스마트 컨트랙트 코딩의 논리결함을 해커가 찾아내 악용한 사례다. 패러티 지갑 동결 사건은 멀티시그 월렛 라이브러리(Multisig Wallet Library) 스마트컨트랙트에서 발견된 보안적 결함으로 인해 587개의 지갑 안의 51만3,774.16 이더의 출금이 불가능하게 동결된 사건이다. 스마트 매쉬 사건 역시 코드의 결함을 해커가 악용했다. 해커는 스마트매쉬 토큰(SMT)이 보안감사를 받지않아 발생한 함수의 취약점을 이용해 토큰을 무한생성한 다음 거래소에 내다 팔았다.
김 이사는 “이런 사건은 모두 작은 오류에서 비롯됐다”고 했다. 이에 보안감사는 선택이 아닌 필수여야 한다는 게 그의 주장이다. 김 이사는 “많은 해외의 블록체인 프로젝트 팀은 두 곳 이상의 보안감사 업체를 선정해 의견을 받으며 이후에도 버그 바운티(보안 취약점 신고에 대한 포상 시스템)을 진행한다”면서 “반면 국내 팀은 한 곳으로부터 보안감사를 받는 것도 어렵게 생각한다”고 지적했다.
김 이사는 “코드 검증·배포 절차가 개별 프로젝트뿐 아니라 블록체인과 암호화폐 산업이 건전하게 성장하는 데 중요하다”고 강조했다. 실제 암호화폐 거래소와 크립토 펀드도 해치랩스의 고객이라고 그는 밝혔다. 김 이사는 “거래소는 자신들의 시장에 상장하는 토큰의 스마트 콘트렉트에 문제가 있는지 알고 싶어 하며, 크립토 펀드는 보유 포트폴리오나 투자 대상 프로젝트에 잠재적 위험이 있는지 검사하고자 한다”고 설명했다. 이어 “토큰 세일을 위한 스마트 콘트렉트는 프로젝트 팀의 본업과는 분명 다른 영역”이라면서 “토큰 세일에 관한 일을 전문가에게 맡김으로써 프로젝트 팀은 자신들의 서비스에 집중하는 게 효율적”이라고 밝혔다.
해치랩스는 현재까지 토큰을 판매할 때 쓰이는 스마트 콘트렉트 보안감사에 집중하고 있다. 에어블락과 캐리프로토콜이 진행했던 토큰 세일 스마트콘트렉트에 대한 보안감사를 진행하기도 했다. 9월에는 사업의 영역을 더 확장해 분산형 애플리케이션(디앱·DApp) 개발을 돕는 솔루션도 제공할 계획이다. 현재 디앱 개발하기 위한 환경이 잘 갖춰져 있지 않다. 김 이사는 “해치랩스는 스마트 콘트랙트에서 발생한 이벤트를 효과적으로 다룰 수 있는 인프라를 제공할 것”이라고 밝혔다.
그는 특히 스마트 콘트랙트를 적용한 디앱들이 서비스 발표 이후에도 꾸준히 업데이트할 수 있도록 하는 툴(Tool)을 제공하는데 관심을 두고 있다. 김 이사는 크립토키티(CryptoKitties)를 예로 들었다. 지난해 11월 말 론칭한 크립토키티는 한때 일일 사용자 1만4,000명을 넘어서는 등 인기를 끌었지만, 현재 일일 이용자는 수 백명 정도다. 그동안 크립토키티의 스마트 콘트랙트는 단 한 번도 업그레이드되지 않았다. 해치랩스에 따르면 지난해 7월 기준으로 앱스토어 상위 200개 무료 앱 서비스의 업데이트 간격은 평균 18일이다. 반면 페이스북은 7월에만 4번의 업데이트를 진행했다. 김 이사는 “스마트 콘트렉트는 배포자도 수정할 수 없는 비가역적인 성격이 있기 때문에 한 번 정해지면 서비스를 개선할 수 있는 여지가 적다”며 “이에 수정이 가능한 부분과 수정할 수 없는 부분을 구분해 스마트 콘트렉트를 작성할 수 있는 구조를 고민하고 있다”고 말했다. 이어 “서비스를 수정할 수 없으면 절대 좋은 서비스가 될 수 없다”고 했다.
/심두보·신은동기자 shim@decenter.kr
- 심두보 기자
- shim@decenter.kr