brunch

You can make anything
by writing

C.S.Lewis

by Ash Han 한승환 Dec 24. 2016

암호화폐 거래소 보안을 위한 방안

원글 작성: 2016-8-24



거래소 보안을 위한 방안과 그 논의


Security for Exchanges  




<Bitfinex의 해킹관련 공문>





세계 최대 비트코인 거래소였던 비트피닉스(bitfinex)가 2015년에 이어 다시 한번 해킹을 당했습니다.

119,756 BTC를 해킹으로 잃었고, 이는 당시 가치로 약 700억원에 이릅니다.


돌이켜보면 현재 순위권 안의 거래소 중 대부분은 해킹을 한번 이상당했고, 수많은 거대 거래소들이 외부 또는 내부 해킹으로 인해 도산해왔습니다. 


이러한 해킹피해가 제대로 구제된 사례는 거의 찾아보기 힘듭니다. 소송을 걸어도 마찬가지입니다. (물론 아직 소송결과가 나오지 않아서이기도 하지만)


커뮤니티에서는 이러한 문제가 탈중앙화 시스템이기 때문에 어쩔 수 없는 것으로 받아들이는 분위기입니다.

은행의 경우, 이러한 문제를 자체적인 보안뿐 아니라 이체받는 화폐의 권한을 100% 독점함으로 해결합니다. 은행에 돈을 맡기는 순간, 해당 금액에 대한 권한을 100% 은행에 이양하는 셈이며, 은행이 신원을 증명하고 출금 승인을 하기 전까지는 원주인 자신조차 해당 금액에 손을 쓸 수가 없습니다. 


은행은 계좌를 동결시키고, 잘못 전송된 금액을 강제로 되돌리며, 공권력에서 요구한다면 원주인의 의지와 상관없이 금액을 강제로 환수하거나 동결합니다. 이러한 중앙집권적 속성 덕분에, 금액이 잘못 전송되거나 해킹을 당하더라도 후발적으로 피해를 최소화시킵니다. 또한 금융실명제 덕분에 이론적으로 차명계좌가 존재할 수 없는 국내은행의 경우, 자금의 추적이 가능하며, 해킹이나 사기 피해도 역시 사실관계만 명확히 정리된다면 즉각 해결이 가능합니다. (물론 이러한 시스템을 유지하기 위해서는 해당 은행을 100% 신뢰해야 합니다.)

자체적으로 모든 책임을 지는 것도 아닙니다. 은행들은 해킹 피해에 대한 보험을 들며, 대규모 피해 시 국가에서 공적자본으로 해당 피해를 구제합니다.


은행 시스템이나 철도, 항공기 등의 시스템을 일반적으로 ‘미션 크리티컬(Mission Critical)’하다고 표현하는데, 이는 단 한 번만 구멍이 뚫려도 치명적이며 사회의 근간이 흔들릴 정도로 큰 영향을 미친다는 뜻입니다. 때문에 은행은 오랜 기간 검증(길게는 수십 년)을 거치지 않은 시스템은 적용하지 않으며, 국내 은행의 경우 무조건 해외에서 검증된 시스템만을 적용합니다. 


암호화폐 거래소의 경우, 경우가 전혀 다릅니다. 


일반적으로 거래소는 전 세계의 고객들을 타깃으로 하고 있고, 명확한 신원증명이 사실상 어려우며, 여권을 확인하는 수준에 머무릅니다. 


보안적인 요소들도 안배가 된 지 고작 수년에 이릅니다. 또한 마땅한 보안 전문기업 등에서 대규모로 보안성과 관련된 작업을 진행한 바도 없습니다. 현재 대중을 상대로 그 보안성이 실험되고 있는 단계이며 현재 거래소들의 고객은 임상실험의 대상 역할을 하고 있습니다.


암호화폐가 가진 복잡성과 전 세계적으로 서비스된다는 점 그리고 여러 가지 특수성 때문에, 피해구제나 책임소재 특정 등이 까다로운 것도 사실입니다. 이 상황에서 몇 가지 방안을 생각해 볼 수 있습니다.



방안 1)

거래소 지갑공개 청원

일반적으로 각 거래소들은 사용자들의 지갑을 개별로 관리하지 않고 한데 몰아 콜드왈렛 또는 핫왈렛으로 나누고, 용도 별로 다시 한번 계좌를 나누어 관리합니다. 관리의 편의와 운용비용 절감이 주된 이유입니다. 따라서 각 거래소의 총 예치금액이 얼마인지, 콜드왓렛과 핫왈렛에는 얼마 씩 분배가 되어 있는지 정확하게 알 수 있는 방법은 없습니다.


거래소는 사용자들이 예치한 금액을 100% 보관하고 있어야, 모든 사용자들에게 모든 금액을 돌려주는 것이 가능합니다. 즉 100%의 지급보증금(reserve)을 가지고 있어야 합니다. 이를 증명하는 것이 까다로운데, 이전에 코빗거래소에서 잔고 증명 시스템(bittrust)을 도입한 적이 있습니다.


이번 Bitfinex나 Mt. GOX거래소해킹 사건의 경우, 모두 상당한 기간에 걸려 조금씩 돈이 빠져나간(해킹당한) 경우입니다. 때문에 많은 사람들이 주기적으로 장부만 맞춰보아도 금액이 맞지 않다는 것을 알 텐데 그걸 눈뜨고 당했다는 것은 1) 내부에서 자작한 ‘해킹을 빙자한 유용’이라는 의혹을 제기했으며, 2) 만일 정말 당한 것이라도 여전히 그 무능함이 증명되는 것이므로 거래소 운영 자격이 없다는 결론으로 귀결됩니다.


해외거래소들도 지급능력을 24시간 실시간으로 투명하게 공개하도록 한다면, 외부에서 직접 이상감지를 독립적으로 수행할 수 있습니다. 요즘에는 입출금 봇(bot)을 통해 거래소에서 내부적으로 사용하는 지갑이 무엇인지 알아내기도 하지만, 역시 거래소에서 자발적으로 공개를 하는 편이 훨씬 깔끔한 대안입니다.



방안 2)

이체취소 기능 도입

거래소에서 입출금 할 때 애초에 일정 기간 내에 거래를 취소할 수 있는 기능을 넣는 것입니다. 하루가 되었건, 10컨펌이 되었건, 큰 금액을 출금 시에 출금취소 기능을 넣어, 만일 이상 거래로 판별이 되면 출금을 취소하는 기능입니다. 이 부분은 거래소가 투명하고 올바른 기능을 수행할 수 있다는 가정 하의 제안입니다.


이 기능은 이미 오래전부터 제안되어 오던 기능인데 최근에도 Emin Gün Sirer의 글에서 언급된 바 있습니다.

적용 방법으로는 비트코인 자체에 스크립트로 적용을 하거나, 그것이 적절치 않다면 이더리움을 비트코인의 사이드체인(Btc Relay)으로 사용하여 이더리움 스마트 컨트랙트를 통해 적용하는 방법 등을 고려할 수 있을 것입니다.


그러나 이런 방법은 당장 사용자들이 할 수 있는 것이 아니기 때문에 수동적 방안에 불과합니다.



방안 3)

국내거래소 이용

기본적으로 각자가 개인지갑에 비트코인을 보관하고 있으면 좋겠지만, 안전하게 보관하려면 어느 정도 비트코인에 능숙해야 한다는 점, 콜드왈렛처리에 대한 이해, 투자이익실현이나 차익거래를 하려면 결국 비트코인을 옮겨야 한다는 점 등 여러 가지 매우 번거로운 불편함들 때문에 결국 포기하게 됩니다.


결국 기술적 이해의 부재와 편의 때문에 거래소에 보관하고 서비스를 이용하게 되는데, 이 경우 가장 안전한 것은 국내거래소입니다.  


국내거래소는 주요 고객이 내국인이고, 국내에서 커뮤니티 활동을 하고 있으며, 유관인원의 주소 및 연락처 등이 건너 건너 이미 공개가 되어 있습니다. 또한 코인원이나 코빗 같은 경우 독자적 기업이 아니라, 옐로금융 그룹의 산하에 있거나 해외 투자자가 지분을 가지고 있는 등, 독자적인 행동을 하기 까다로운 조건입니다.

국내거래소이기 때문에 국내법을 적용받으며, 향후 만일의 사태 시 법적대응을 하기에도 간편합니다.


무엇보다 결정적으로 해외거래소에 비해 국내거래소가 안전한 이유는, 비트코인 예치량이 적어서입니다. 그만큼 뛰어난 해커들이 굳이 와서 해킹을 해갈 정도의 유인이 적습니다. 해외 거래소에 비해 보안이 뛰어나서라기 보다는 그만큼 뛰어난 해커들의 공격을 유도할 정도의 경제적 인센티브가 없기 때문입니다.



방안 4) 

탈중앙화 거래소 이용

사실상 가장 근본적인 해결방법입니다. 비트코인 블록체인 자체의 보안은 안전한 것으로 알려져 있느냐, 결국 해당 화폐를 가지고 서비스를 하는 사업자 단에서 사건사고가 터져왔습니다. 


이를 원천적으로 차단하고 모든 거래를 블록체인 위에서 처리할 수 있다면 안전할 것입니다.


코인페인(coinffeine)’프로젝트가 알려진 최초의 탈중앙화 거래소 프로젝트입니다. 현재 별다른 진전은 있어 보이지 않습니다.


이더리움을 이용한 탈중앙화 거래소 프로젝트인 '이더엑스(Etherex)' 프로젝트입니다. 최근 투자를 유치하며 런칭계획을 세우고 있습니다. (번역본 내용)


현재 가장 활발하게 진행되고 있는 프로젝트는, '빗스퀘어(bitsquare)'입니다. 아직 완성까지는 시간이 걸릴 듯합니다.


(*실제 상용화되어 잘 구동되고 있는 탈중앙화 거래소는 암호화폐 트레이딩 거래소가 아니라, 탈중앙화 마켓인 '오픈바자(openbazaar)'입니다. 한국에서 흔히 쓰는 바자회의 어원이 이곳에 쓰인 ‘바자(bazaar)’입니다. 이름에서 알 수 있듯, 누구든지 자신의 재화를 자유롭게 올리고 자금을 마련할 수 있습니다. 그림 파일, 소프트웨어 등의 디지털재화과, 약, 드론, 티셔츠, 자동차 등의 실물재화가 유통되고 있습니다. 사실상 중고를 포함한 모든 재화를 유통하는 것이 가능하기 때문에 놀라운 혁신이라고 볼 수 있습니다.)


위 모든 탈중앙화 거래소가 가지고 있는 근본적인 한계가 있는데 이는 ‘거래의 실시간성(Realtime Transaction)’입니다. 실시간성이 보장되지 않으면 ‘단기매매차익거래(단타)’가 불가능하며 이것이 불가능하면, ‘스프레드(매도/매수호가 차이)’가 넓어집니다. 스프레드가 넓어지면 트레이더는 오지 않습니다. 트레이더가 오지 않으면 거래량이 적어지고 적어진 거래량은 시장유동성(liquidity)을 줄여 적시에 합리적인 가격으로 매매를 할 수 없게 만듭니다. 즉, 거래소가 제대로 된 거래소의 역할을 하지 못한다는 것이 탈중앙화 거래소 모듈의 치명적 단점입니다.


그러한 면에서 위 언급된 탈중앙화 거래소들은 Local Bitcoin처럼 오프라인 거래나 실제 비트코인 보관소의 역할을 제외하고서는 의미가 없는 셈입니다.


하지만 굳이 탈중앙화 거래소에서 거래를 할 필요는 없습니다. 탈중앙화 거래소는 비트코인 보관 목적으로만 사용해도 됩니다.


*텐더민트의 코스모스(Cosmos)는 매우 빠른 속도의 탈중앙화 거래소를 만들 계획입니다. 그러나 그것이 실제로 가능할 것인지에 대해서는 아직 의문입니다. 합의구조나 네트워크 기법 등 다양한 부분들이 실험되어야 하고 수천 TPS가 보장되어야 하기 때문에 많은 부분들이 복잡 다양하게 고려되어야 합니다.








브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari