Skip to content
isdnetworks
Go back

거래소가 약한 자리였다

조사 보고서에서 거래소 부분을 읽었다. 기술 자체는 중앙에서 통제하는 곳이 없다고 설명하는데 거래소는 명백히 중앙이었다.

Table of contents

Open Table of contents

중앙이 없는데 중앙인 곳

이 기술은 개인 간 거래를 위해 만들어졌는데 그러면 거래소가 왜 필요한지부터 따라가 봤다. 보고서에 이유가 둘 있었다.

하나는 값을 직관적으로 판단하기 어렵다는 것이다. 중앙에서 정하는 값이 없으니 지금 얼마인지를 알려면 사고파는 곳이 있어야 하고 시세를 API 로 가져다 쓰는 자리도 결국 거래소다.

다른 하나는 현금으로 바꾸려면 상대가 필요하다는 것이다.

채굴   직접 얻음 — 장비와 전기가 필요
구매   돈으로 삼 — 파는 사람이 있어야

보고서는 이것을 시장이 요구해서 자연스럽게 설립된 것으로 적었다. 설계에 없던 것이 필요해서 생긴 셈이다.

사고가 거래소에서 났다

거래소가 생기면 그곳에 자산이 모이는데 정확히는 ECDSA 개인 키가 모인다. 개인이 각자 ECDSA 키를 들고 있으면 하나를 털어도 하나뿐이지만 한 곳이 여럿의 키를 들고 있으면 한 번에 많이 가져갈 수 있다.

보고서에 나온 큰 사고 둘이 전부 거래소에서 났다.

한 곳: 대량 도난 후 파산
다른 곳: 지갑 해킹

기술 자체가 뚫린 것이 아니라 ECDSA 키를 모아 둔 곳이 뚫린 것이다. 한 사고에서는 시세가 사고 전 수준의 10분의 1 아래로 떨어졌는데 한 곳의 사고가 전체 시세를 그만큼 움직였다는 것은 거기 모여 있던 양이 그만큼 컸다는 뜻이었다.

특징 대부분이 양면이다

사고가 났을 때 회수가 안 된 이유도 보고서에 있었다. 주소는 공개 키에 SHA-256RIPEMD-160 을 씌운 값이라 장부에 그대로 보이는데 그 주소가 누구인지는 알 수 없다. 그리고 한 번 기록된 것은 되돌리는 절차 자체가 없다.

이 둘은 이 기술의 장점으로 소개되는 특징이기도 하다. 보고서가 든 특징은 여섯 개였다.

탈중앙 · 익명성 · 암호화 · 불가역성 · 공개성 · 공급량 조절

각각을 다시 보니 대부분이 양면이었다.

탈중앙    개입 없음 / 책임질 곳 없음
익명성    개인정보 불필요 / 추적 불가
불가역성  확정 / 복구 불가
공개성    투명 / 거래 내역 노출

가명성과 비가역성이라고 부르는 것이 평소에는 장점이고 사고가 났을 때는 약점이 된다. 특징 목록에 좋은 점만 적으면 그 목록이 무엇을 감추고 있는지를 못 보게 된다.

거치면 약해지는 성질

성질 자체는 바꿀 수 없다. 그것이 그 기술의 정의이기 때문이고 그래서 감싸는 쪽이 거래소가 된다.

거래소를 거치면 원래 기술이 가진 성질이 상당 부분 약해진다. KYC 라 부르는 신원 확인을 받아야 하고 거래소가 자체 DB 에 장부를 들고 있다. 보고서에도 계좌는 실명 정보라 익명성이 보장된다고 보기 어렵다고 적혀 있었다.

여기서 한 겹 더 있었다. 거래소 안에서 오가는 것은 원래 장부에 안 올라간다. 거래소 DB 의 숫자만 바뀌고 바깥으로 보낼 때만 장부에 실제 기록이 생긴다. 내부 이체는 그 DB 의 UPDATE 두 줄이다. 그러니 거래소 안에서는 그 기술의 성질이 아예 적용되지 않는 구간이 된다.

그런데 그 약해짐이 제도권과 이어지기 위한 대가이기도 했다. 완전히 익명이면 불법 자금으로 쓰이고 실명을 확인하면 제도권과 이어진다. 보고서에도 불법 행위 자금으로 쓰인다는 언급이 함께 있었다.

다만 어디까지 확인할지는 안 정해져 있었다. 개인 정보를 어디까지 이용할 것인가에 대해 차이가 존재할 것으로 예상한다고 적혀 있었는데 단정하지 않고 열어 둔 표현이었다. 모르는 것을 모른다고 적은 셈이다.

결론 — 위험이 큰 자리에 수요가 있다

보고서 결론은 사업 대상으로 거래소가 가장 유력하다는 것이었다. 사고가 나는 곳과 필요한 곳이 같은 자리였다.

거래소는 이 기술에서 가장 약한 자리이면서 없으면 안 되는 자리다. 중앙이 없다고 말하는 구조 안에 SPOF 가 하나 서 있는 셈이다.

그러니 이런 곳을 만드는 일에서는 만드는 것보다 지키는 것이 본체가 된다. ECDSA 키 대부분을 망에서 끊어 둔 cold 쪽에 두고 당장 쓰는 만큼만 hot 쪽에 두는 것과 인출에 2FA 와 승인 단계를 겹치는 것이 기능이 아니라 구조가 된다. 키 자체를 HSM 같은 장치에 넣는 방법도 있었고 cold 쪽 키를 꺼내는 절차를 따로 두는 방법도 있었다.

앞서 본 사고들이 전부 운영에서 났다는 것도 같은 이야기다. 보고서에 열려 있는 취약점을 그대로 적어 둔 것도 그래서 값어치가 있었다.

정리


Share this post on:

Previous Post
포트 번호를 매번 찾고 있었다
Next Post
운영과 시험이 한 서버에 섞여 있었다