162012–2014

트레저: 비트코인의 키를 지갑 컴퓨터에

Marek Palatinus와 Pavol Rusnák은 개인 키를 맡길 필요가 없는 컴퓨터에서 결제를 서명하는 방법을 모색했다. 프라하의 해커스페이스에서 만든 프로토타입을 통해 첫 세대 하드웨어 지갑이 탄생했다.

초기 비트코인 지갑은 사용자에게 불편한 선택을 안겼다. 개인 키를 인터넷에 연결된 컴퓨터에 보관하며 악성코드 공격이 없기를 바라거나, 너무 철저히 숨긴 나머지 편리하게 결제할 수 없게 되는 선택이었다. Marek “Slush” Palatinus와 Pavol “Stick” Rusnák은 세 번째 길을 찾았다. 키를 절대 내보내지 않지만 요청하면 올바르게 표시된 거래에 서명하는 작은 전용 컴퓨터였다. 첫 시제품은 프라하의 해커스페이스 Brmlab에서 Raspberry Pi로 만들어졌다. 2014년 칠월 29일 Trezor Model One이 판매되기 시작했다. 이 장치는 보관을 무결점 과정으로 만들지는 못했지만, 가장 민감한 부분을 일반 컴퓨터에서 사용자가 손에 쥐고 확인하고 백업할 수 있는 물건으로 옮겼다.

01

비트코인이 문제가 아니었고, 그 주변의 컴퓨터가 문제였다

비트코인은 소유자가 은행의 승인 없이 서명으로 코인을 제어할 수 있게 한다. 그러나 같은 특성 때문에 키 유출은 돌이킬 수 없는 손실이 된다. 악성 코드가 개인 키를 복사하면 유효한 거래를 만들 수 있고, 네트워크에는 이를 되돌려 줄 고객센터가 없다. 일반적인 가정용 컴퓨터는 브라우저, 이메일, 문서와 여러 출처의 프로그램을 실행한다.

초기 가이드에서는 네트워크와 분리된 컴퓨터나 암호화된 디스크, 또는 종이 지갑을 제공했다. 이러한 해결책은 공격의 범위를 줄일 수 있었지만, 올바른 생성, 백업, 서명에 대한 요구를 증가시켰다. 제임스 하월스와 스테판 토마스의 이야기는 반대되는 경계를 보여주었다. 즉, 비밀을 너무 성공적으로 보호하여 그 주인조차도 접근할 수 없을 정도였다.

팔라티누스는 Mining Pool을 운영한다는 것이 무엇인지, 온라인 비트코인 서비스에 어떤 위험이 있는지 이미 알고 있었다. 그는 루스나크와 함께 실용적인 질문을 던졌다. 침해될 수 있는 컴퓨터에서 서명 키를 분리하되, 매번 결제할 때마다 복잡한 기술 작업을 거치지 않게 할 수 있을까? 사용자는 컴퓨터의 지갑에서 거래를 준비하고, 별도의 기기에서 이를 승인하게 될 것이다.

그렇게 하드웨어 지갑의 원리가 탄생했다. 호스트 컴퓨터는 장치에 서명되지 않은 데이터를 보낸다. 장치는 필요한 키를 추론하고, 사람에게 중요한 정보를 표시한 후 확인 후 서명을 반환한다. 개인 정보는 내부에 남아 있다. 공격받은 컴퓨터는 거짓말을 할 수 있으므로, 전용 디스플레이와 물리적 확인은 보안 모델의 일부이며, 디자인의 장식이 아니다.

목표는 모든 하드웨어와 소프트웨어에 대한 신뢰를 제거하는 것이 아니었다. 더 겸허하고 실용적인 목표였다: 노출된 비밀 키에 대한 코드와 상황의 양을 줄이는 것이었다. 전용 장치는 노트북 전체보다 더 철저하게 검사할 수 있으며 제한된 인터페이스는 사용자가 실제로 서명하는 내용을 알 수 있는 기회를 제공한다.

일반 컴퓨터는 웹을 탐색하고, 첨부 파일을 열고, 드라이버를 설치하며, 비트코인과 무관한 수천 개의 코드 조각을 동시에 실행해야 한다. 그 각각은 공격자가 서명의 순간을 기다릴 수 있는 공간을 넓혀 준다. 전용 기기는 이 세계를 없애지는 못하지만, 가장 민감한 작업을 그 혼란으로부터 격리해 준다. 거래는 외부에서 준비되고, 기기 안에서 서명되며, 개인 키는 기기를 벗어나서는 안 된다. 디스플레이와 버튼의 존재 이유는 사용자에게 독립적인 채널을 제공하는 데 있다. 컴퓨터는 어떤 주소를 주장할 수 있지만, 결정적인 확인은 지갑 자체가 제어하는 화면 위에서 이루어진다.

02

브르믈랩, 라즈베리 파이와 두 개의 버튼

처음 시도는 나중에 나오게 될 소비자용 제품과는 달랐다. Brmlab에서 Palatinus와 Rusnák은 라즈베리 파이에 부가적인 보드를 만들었고 작은 디스플레이, 버튼, 그리고 유에스비 통신을 추가했다. 그들은 전체 프로세스가 올바르게 작동하는지 확인해야 했다. 즉, 장치가 안전하게 키를 생성하고 요청을 표시하며 키를 노출하지 않고 서명하는 것을 확인해야 했다.

해커스페이스는 하드웨어와 소프트웨어가 동시에 변경될 수 있는 환경을 제공했다. 버튼 배치의 오류는 프로토콜의 오류와 분리되지 않았다. 두 가지 모두 사용자가 의도하지 않은 것을 승인하도록 유도할 수 있었다. 사용성은 암호화 위에 있는 마지막 계층이 아니었다. 사용성은 암호화가 실제 사람을 보호하는 데 필요한 조건이었다.

두 개의 버튼이 중요한 경계를 나타냈다. 컴퓨터는 장치에 서명 요청을 할 수 있었지만 최종 확인은 물리적으로 이루어져야 했다. 디스플레이는 주소와 금액을 확인할 수 있는 두 번째 채널을 제공했다. 만약 감염된 노트북이 수신자를 변경했다면, 올바르게 사용된 트레저는 충돌을 보여주었다.

SatoshiLabs라는 회사는 프로토 타입에서 탄생했다. 개발자들은 생산, 펌웨어, 업데이트와 지갑의 호환성, 그리고 계층적 키에 대해 아무것도 모르는 사람들의 지원 등 많은 문제를 해결해야 했다. 해커 공간에서의 보드에서 제품으로의 전환은 보안 개념을 이해하는 것이 개발자뿐만 아니라 집에서 박스를 여는 사람에게도 중요함을 의미했다.

트레저는 자체를 세계 최초의 하드웨어 지갑이라고 부른다. 그러나 더 정확하게 말하자면 이 최초의 자리는 해당 제품의 정의와 제조사에 따라 부여되는 것이 맞다: 비트코인 거래를 위한 키 저장과 거래 확인을 위한 단일 목적의 상업용 기기이다. 보안 토큰의 역사는 더 넓은 범위를 가지고 있지만 모델 원은 비트코인 시장이 따라하게 된 새로운 범주의 시작이었다.

03

어떤 단어들로부터 복구될 수 있는 장치

트레저 모델 원은 공식적으로 29. 칠월 2014에 출시되었다. 작은 디스플레이, 두 개의 버튼과 USB 케이블은 더 중요한 변화를 숨기고 있었다: 지갑이 더 이상 하나의 하드웨어와 동일할 필요가 없었다. 기기가 분실되거나 고장 나면 사용자는 단어 세트에서 키를 복구할 수 있었다.

마레크 팔라티누스와 파볼 루스나크는 BIP 39의 공동 저자다. 이 제안은 무작위로 생성한 데이터를 단어 목록으로 나타내고, 그 목록에서 지갑의 seed를 도출하는 방법을 설명한다. Seed Phrase 덕분에 키를 하나씩 복사하지 않고도 여러 키의 바탕이 되는 정보를 하나의 기록으로 백업할 수 있게 됐다. 사용자가 passphrase도 사용한다면 복원할 때 그것 역시 필요하다. 백업이 간편해진 만큼, 필요한 비밀 정보를 손에 넣은 사람은 누구나 지갑을 복원할 수 있다.

BIP 44는 결정적 지갑을 기반으로 한 목적, 통화, 계좌의 계층 구조를 이어서 설명하였다. 이 표준들은 호환 가능한 소프트웨어가 하나의 시드에서 동일한 주소 구조를 다시 찾을 수 있도록 하였다. 복구는 이를 통해 더 실용적이 되었지만, 동시에 파생 과정과 개별 애플리케이션의 지원에 대한 정확한 이해에 의존하게 되었다.

장치가 일반적인 사용 중에 키를 보호하는 반면, 종이 또는 금속 백업이 복구의 가능성을 보호했다. 백업 없이 파괴된 Trezor는 손실을 의미할 수 있었다. 백업이 노출되면 공격자는 장치를 완전히 우회할 수 있었다. 보안은 여전히 사람을 의지하지 않았지만, 역할 분리가 더 명확해졌다.

이 모델은 기술자들의 좁은 범위를 넘어 자체 보관를 확장하는 데 도움이 되었다. 사용자는 장기 자금을 보유하면서도 온라인 컴퓨터에 시드키를 가져오지 않고 때때로 결제에 서명할 수 있었다. 이 제품은 비트코인을 단순화시키지 않았지만 책임을 숨기는 것이 아니라 합리적으로 준수할 수 있는 단계로 조직화하려고 시도했다.

04

트레저는 화폐도 아니며 보험도 아니다

하드웨어 지갑은 금고에 있는 동전과 같은 비트코인을 저장하지 않는다. 블록체인에 기록된 출력의 전송을 서명하기 위해 필요한 비밀을 보관한다. 사용자가 장치를 파괴하더라도 올바른 시드가 있다면 자금을 복구할 수 있다. 시드를 다른 사람이 얻으면 원래 장치 없이도 자금을 이전할 수 있다.

본인의 디스플레이조차도 사용자가 정보를 읽지 않는다면 도움이 되지 않는다. 사기 앱은 컴퓨터에 올바른 주소를 표시하면서 다른 주소를 기기로 전송할 수 있다. 방어는 사용자가 신뢰할 수 있는 디스플레이의 주소를 대조할 때 비로소 작동한다. 보안 요소는 확인을 제공한다는 것이지, 올바른 판단에 대한 자동적인 보장은 아니다.

제조업체와 커뮤니티는 여전히 펌웨어 결함과 공급망 보안, 업데이트를 다뤄야 한다. 공개된 소스 코드는 기기의 작동 방식을 살펴볼 수 있게 해준다. 그렇다고 모든 소유자가 직접 코드를 한 줄씩 검토해야 한다는 뜻은 아니다. Self-Custody에는 사용 절차와 선택한 도구에 대한 신뢰도 필요하다. 하드웨어가 일부 작업을 맡았어도 사용자의 책임은 사라지지 않았다.

Trezor의 이야기는 하드디스크를 잃어버리거나 비밀번호를 잊은 사례에 다른 관점을 제시한다. 개발자들은 사람이 더 이상 실수하지 않을 것이라고 기대하지 않았다. 어떤 실수는 예방하고, 다른 실수는 늦기 전에 알아차릴 수 있도록 돕는 도구를 만들고자 했다. 다만 사용자에게도 책임이 따른다. 복구 단어를 기록하고, 그 백업을 화재와 타인의 시선으로부터 보호하며, 비상 상황이 닥치기 전에 지갑 복원을 연습해야 한다.

프라하의 해커스페이스에서 시작된 회로 기판이 글로벌 제품으로 성장한 이유는, 네트워크의 가치와 함께 커져가는 문제를 해결했기 때문이다. 보호할 것이 많아질수록 온라인 키와 불편한 아카이브 사이의 선택은 점점 더 받아들이기 어려워졌다. Trezor는 개인 키의 위험을 제거하지 않았다. 사람에게 실제로 책임을 다할 수 있는 물리적 인터페이스를 제공한 것이다.

이 책임 분리는 불편한 면도 있다. 제조사는 설계와 수정 사항을 공개할 수 있지만, 사용자를 대신해 복구 단어를 안전하게 보관하거나, 모든 주소를 확인하거나, 시드 입력을 요구하는 사기 요청을 알아채지는 못한다. 기기는 프로세스의 특정 순간을 보호할 뿐이다. 보안은 검증된 하드웨어, 신뢰할 수 있는 소프트웨어, 물리적 백업, 그리고 주의 깊은 사람의 결합에서 비로소 생겨난다. 따라서 Trezor는 자신의 보관 방식을 이해할 필요가 없게 만들어 주는 상자가 아니다. 이는 추상적인 암호학적 책임을 몇 가지 가시적인 행동으로 전환하려는 시도이며, 그 행동들에서는 오류가 되돌릴 수 없게 되기 전에 더 쉽게 알아챌 수 있다.

Atlas

아틀라스의 인물과 개념

CZ·02TrezorSLUSHMarek ‘Slush’ PalatinusSTICKPavol ‘Stick’ RusnákCZ·01SatoshiLabsHWHardware WalletKEYPrivate KeySEEDSeed PhraseKEYS자기 수탁
  1. 01
    트레조르 — 개척의 십년

    설립자의 이름, Brmlab, 라즈베리 파이에서 만든 프로토타입, 그리고 Model One의 출시일

  2. 02
    트레저 — 트레저에 대하여

    회사에서 제품을 개발하는 과정의 시간 순서, BIP 39, BIP 44 그리고 제품 Model One.

  3. 03
    BIP 39 — 결정적 키 생성을 위한 명령어 코드

    복구 단어의 기술적 사양, 그 범위 및 보안 한계

  4. 04
    BIP 44 — 결정적 지갑을 위한 다중 계정 계층 구조

    계정 계층 구조에 대한 기술 사양은 Marek Palatinus와 Pavol Rusnák가 저술하였다.

다음 이야기 · 17비트코인 비치: 법 이전에 시작한 마을