이런 사고를 통해 우리는 암호 시스템에 대해 갖는 신뢰의 본질을 묻지 않을 수 없다. 구체적인 원인은 아직 공식 조사 중이다. 그러나 이 사건이 우리에게 던지는 질문은 단순히 "누가 해킹했는가"가 아니다. 보다 근본적인 물음은 이것이다. 우리는 암호 시스템을 얼마나 제대로 이해하며 쓰고 있는가.
블록체인에서 자산을 움직이려면 반드시 서명이 필요하다. 블록체인은 은행 창구에서 도장을 찍는 것과 비슷하지만 수학적으로 훨씬 정교하다. 블록체인 내 서명은 오직 개인키를 가진 사람만 만들 수 있다. 외부에서는 결과만 볼 수 있을 뿐 개인키를 역으로 알아내는 것은 이론상 불가능하다.
그래서 블록체인은 흔히 "수학적으로 안전하다"고 말한다. 이 말은 맞다. 하지만 수학이 안전하다는 것과 그 수학을 구현한 시스템이 안전하다는 것은 전혀 다른 이야기다. 자물쇠의 설계가 완벽하다고 해도 열쇠를 잘못 보관하면 문은 열린다.
그 외에도 열쇠 관리 서버에 대한 직접 침해, 내부자 연루, 운영 절차의 허점 등 다양한 경로가 동시에 가능하다. 어느 하나로 좁혀 말하는 것은 아직 섣부르다. 한 가지 기술적인 맥락은 짚어둘 필요가 있다. 솔라나는 설계 수준에서 이미 난수 결함 문제를 구조적으로 방어하는 서명 방식을 채택하고 있다. 보조난수를 외부에서 임의로 생성하는 대신 개인키와 메시지로부터 결정론적으로 계산해내는 방식이다.
이는 역설적으로 업비트 사고의 원인이 서명 기술의 난수 문제가 아닐 가능성을 높인다. 만약 표준적인 방식을 그대로 사용했다면 난수 결함 경로는 이미 차단돼 있기 때문이다. 그렇지만 치밀하지 못한 방식으로 구현했을 때는 키를 추출할 수 있는 허점이 존재한다.
업비트는 "블록체인에 공개된 다수의 지갑 트랜잭션을 분석하면 개인키를 추정할 수 있는 보안 취약점이 존재했다"고 사과한 바 있다. 물론 그 원인이 그 바깥, 즉 열쇠 자체를 다루는 시스템이나 운영의 어딘가에 있었을 가능성도 배제할 수 없다.
암호학은 지난 수십년 동안 눈부시게 발전했다. 오늘날 사용되는 서명 방식은 수학적으로 매우 견고하며 방식 자체를 정면으로 깨는 것은 현실적으로 불가능에 가깝다. 그런데도 사고는 반복된다. 원인은 항상 같은 자리에 있다. 코드를 작성하는 사람, 시스템을 운영하는 사람, 열쇠를 보관하는 방식, 접근 권한을 나누는 정책. 수학이 아니라 사람과 조직이 만들어내는 틈새다.
빗썸 사고는 비밀키와 전혀 무관하다. 직원이 데이터베이스에서 비트코인의 주인만 바꿨기 때문이다. 빗썸이 보관하고 있던 비트코인 수량을 수십만개 초과했음에도 즉시 경고등이 켜지지 않았다. 직원의 실수를 시스템이 막아 주었어야 한다.
검찰청과 경찰청의 사고 역시 비밀키와 무관하다. 압수한 비트코인이 잘 있는지 확인하려면 익스플로러에서 그 비트코인 지갑 주소만 확인해도 된다. 누구나 언제든지 비트코인이 잘 있는지 확인할 수 있게 만천하에 공개한 게 블록체인이다. 그런데도 그걸 알아보려고 해커가 만든 피싱 사이트에 콜드월렛을 연결했다고 한다.
이를 두고 누군가의 실수나 과실만을 탓하기는 쉽다. 하지만 더 중요한 질문은 따로 있다. 이 정도 규모의 자산을 다루는 시스템이 그에 걸맞은 수준의 설계와 검증과 감사 체계를 갖추고 있었는가. 이번 사건을 해킹이라 부를지, 보안사고라 부를지는 법적 판단의 몫이다. 기술적 원인이 정확히 무엇이었는지는 공식 조사가 끝나야 알 수 있다.
그러나 한 가지는 지금 말할 수 있다. 암호 시스템의 신뢰는 수식이 아니라 운영에서 결정된다. 가장 정교한 자물쇠도 열쇠 관리가 무너지면 소용이 없다. 다시는 이런 사고가 반복되지 않기를 바란다.
©'5개국어 글로벌 경제신문' 아주경제. 무단전재·재배포 금지



![[르포] 중력 6배에 짓눌려 기절 직전…전투기 조종사 비행환경 적응훈련(영상)](https://image.ajunews.com/content/image/2024/02/29/20240229181518601151_258_161.jpg)



