웹3란 무엇인가
목차 / 제6부
제6부 · 응용, 증거, 그리고 비판

32. 보안, 위험, 그리고 인간 요인

32장 · 8 분 분량 ·

이 장은 웹3(Web3)의 심장부에 자리한 역설과 정면으로 마주한다. 이 책이 살펴 온 기술들은 무엇보다 '보안'을 위해 설계되었다. 어떤 공격자도 사실상 깨뜨릴 수 없는 암호학, 어떤 정부도 슬그머니 고쳐 쓸 수 없는 장부, 어떤 플랫폼도 빼앗을 수 없는 소유. 그런데 보통 이용자들이 실제로 겪는 일 — 그리고 업계의 공개된 기록 — 은 끊임없는 도난, 되돌릴 수 없는 손실, 그리고 놀랄 만큼 정교한 사기의 연속이다. 신뢰를 불필요하게 만들겠다고 설계된 시스템이, 컴퓨팅 역사상 표적이 가장 넘쳐나는 환경 가운데 하나가 된 것이다. 이 장의 목적은 이 역설이 모순이 아니라 앞선 장들에서 기술한 아키텍처의 직접적 귀결임을 설명하고, 그것이 이 책의 중심 질문에 무엇을 뜻하는지 묻는 것이다. 개인 이용자에게 이만한 보안 부담을 지우는 시스템이 과연 주류 웹의 토대가 될 수 있는가? 아래에서 옹호할 이 장의 냉정한 결론은 이렇다. 평범한 비전문가 이용자에게, 자가수탁형(셀프 커스터디) 웹3는 현재로서는 감당할 수 있는 이가 드문 보안의 짐을 지운다.

쉽게 말해

절대 딸 수 없는 자물쇠가 달린 금고를 상상해 보라. 그것만으로 귀중품이 안전해지지는 않는다. 도둑은 당신을 속여 문을 열게 할 수도 있고, 자물쇠 옆 벽을 시공한 인부의 실수를 파고들 수도 있고, 당신이 비밀번호를 포스트잇에 적어 두기를 기다릴 수도 있다. 웹3의 암호학은 그 '딸 수 없는 자물쇠'다. 현실의 도난은 거의 전부 자물쇠를 '뚫고'가 아니라 자물쇠 '둘레에서' 일어난다.

대부분의 소프트웨어는 사람이 사는 채로 고쳐 지을 수 있는 건물과 같다. 창문이 잠기지 않으면 수리공이 와서 고친다. 스마트 컨트랙트는 콘크리트 한 덩어리로 통째로 부어 만든 뒤 설계도를 문에 붙인 채 물에 띄워 보낸 건물에 가깝다. 결함이 있으면 누구나 볼 수 있는데, 수리공을 들여보낼 수는 없다.

도둑들은 금고를 부수지 않았다. 경비원들이 보고 있는 화면을 조작해서, 경비원들이 평범해 보이는 출금에 "승인"을 누를 때 실제로는 범죄자들에게 돈을 넘기는 서명을 하게 만든 것이다. 서명은 하나같이 진짜였다. 다만 경비원들은 자신이 진짜로 무엇에 서명하는지 볼 수 없었을 뿐이다.

은행에서 부정 거래는 돈을 되찾는 절차의 '시작'인 경우가 많다. 블록체인에서 부정 거래는 이야기의 '끝'이다. 돈은 확정되는 순간 사라지고, 그것을 돌려주는 일을 맡은 사람은 어디에도 없다.

웹3는 평범한 애플리케이션을 쓰기 위해 이용자에게 읽을 수 없는 암호학적 메시지에 서명하라고 일상적으로 요구한다. 공격자는 이를 파고들어, 늘 보던 허가서처럼 '보이지만' 실은 백지수표인 메시지에 피해자가 서명하게 만든다. 피해자는 일상적 의미에서 부주의한 것이 아니다. 자신이 읽지 못하는 언어로 쓰인 계약서를 심사하라는 요구를 받고 있는 것이며, 나쁜 서명 한 번은 되돌릴 수 없다.

블록체인은 이미 안에 있는 것만 믿을 수 있는 밀폐된 방이다. 브리지와 오라클은 그 방을 다른 방들과 바깥세상에 이어 주는 문이자 전령이다. 어느 요새에서든 경비를 세우는 곳이 바로 문과 전령인데 — 웹3에서는 바로 그 자리가 한 번에 수억 달러씩 털려 왔다.

누구도 손댈 수 없는 시스템을 가질 수 있다 — 그러면 고장 났을 때 누구도 고칠 수 없다. 아니면 누군가 고칠 수 있는 시스템을 가질 수 있다 — 그러면 그 누군가는 표적이자, 당신을 배신할 수도 있는 주인이 된다. 웹3는 지난 십 년 동안, 둘을 동시에 가질 수는 없다는 사실을 발견해 왔다.

감사는 착공 전에 건물 설계도를 전문가가 검토하는 것과 같다. 좋은 검토는 많은 결함을 잡아낸다. 그러나 그 건물이 결코 털리지 않으리라는 것도, 같은 거리의 다른 모든 건물과 안전하게 어울리리라는 것도, 집주인이 속아서 열쇠를 넘겨주지 않으리라는 것도 보장하지 않는다. "감사받았다"는 "점검받았다"는 뜻이지 "안전하다"는 뜻이 아니다.

이 장에서 다루는 내용

  1. 보안의 역설: 단단한 암호학, 무른 인간
  2. 스마트 컨트랙트 위험: 불변의 코드는 불변의 버그를 뜻한다
  3. 손실의 규모
  4. 비가역성 문제: 차지백도 고객센터도 없다
  5. 인간 요인: 가장 약한 고리
  6. 브리지와 오라클 위험: 위험한 가장자리
  7. 불변성의 긴장: 기능이자 결함
  8. 감사와 그 한계
  9. 종합: 감당할 수 있는 이가 드문 보안의 짐

이 장에서 설명하는 용어

전체 내용은 책에 실려 있습니다.

전체 책 구매