
페이퍼 월렛: 옛날 방식의 콜드 스토리지가 시대에 뒤처진 이유
암호화폐 초창기에 콜드 스토리지의 표준은 종이 한 장이었습니다. 웹사이트에서 키 쌍을 생성하고, 주소와 개인 키를 QR 코드로 인쇄한 뒤, 봉투에 접어 넣어 안전한 곳에 보관했습니다. 온라인에는 아무것도 없으니 해킹당할 것도 없었습니다.
그런 페이퍼 월렛 중 상당수가 지금도 남아 있고, 오래전에 산 코인이 들어 있는 것도 있습니다. 그 바탕에 있는 생각, 즉 키를 오프라인에 보관한다는 발상은 여전히 타당합니다. 하지만 그것을 구현한 방식은 시대에 뒤처졌고, 만약 하나를 가지고 있다면 손대기 전에 그 이유를 이해해 둘 필요가 있습니다.
페이퍼 월렛이란
페이퍼 월렛은 하나의 개인 키와 그 주소를 종이에 인쇄한 것입니다. 받을 때는 누구나 인쇄된 주소로 코인을 보낼 수 있습니다. 쓸 때는 개인 키를 소프트웨어 지갑으로 가져오거나 "스윕"(sweep)합니다.
설계는 이것이 전부입니다. 키 하나, 주소 하나, 그리고 쓰기 전까지는 중간에 어떤 소프트웨어도 없습니다.
어디서 문제가 생겼나
생성 단계가 약점이었습니다. 대부분의 페이퍼 월렛은 웹사이트에서 생성되었습니다. 그 사이트가 악의적이거나, 해킹당했거나, 단순히 난수 생성기가 약했다면, "오프라인" 키는 만들어진 순간부터 다른 누군가가 알고 있었던 셈입니다. 나중에 인기 있던 생성기 여러 개가 공격자에 의해 복제되었다는 사실이 밝혀졌고, 그곳에서 만든 키의 자금은 스윕되어 빠져나갔습니다.
인쇄는 정보를 유출합니다. 프린터는 메모리와 인쇄 대기열에 사본을 보관하고, 네트워크 프린터는 네트워크를 통해 데이터를 전송하며, 일부 클라우드 연결 프린터는 문서를 업로드합니다. 그 하나하나가 당신의 통제를 벗어난 개인 키 사본입니다.
주소는 하나뿐이고 계속 재사용됩니다. 페이퍼 월렛에는 주소가 하나뿐입니다. 모든 입금이 같은 곳으로 들어가기 때문에 전체 잔액과 내역이 체인 위에서 서로 연결됩니다. 최신 지갑은 받을 때마다 새 주소를 생성합니다.
지출은 전부 아니면 전무이고, 실수하기도 쉽습니다. 비트코인 방식의 체인에서는 트랜잭션이 코인을 통째로 쓰고 나머지를 "잔돈"으로 돌려받습니다. 종이 키를 가져오던 초기 지갑 중 일부는 이 잔돈을 종이 주소로 돌려보내지 않고 소프트웨어 지갑의 새 주소로 보냈습니다. 페이퍼 월렛의 일부만 쓰고 종이를 다시 서랍에 넣어 둔 사람들은 나중에 그것이 비어 있는 것을 발견했습니다. 나머지가 한 번도 백업하지 않은 주소로 옮겨져 있었던 것입니다. 그 이유는 코인과 잔돈의 작동 방식에서 설명합니다.
종이는 약합니다. 잉크는 바래고, 감열지는 검게 변하며, 물과 불에 쉽게 파괴됩니다. 그리고 종이 한 장은 단일 장애 지점입니다.
무엇이 그 자리를 대신했나
핵심 발상은 살아남았고, 구현 방식이 바뀌었습니다.
- 복구 문구가 단일 키를 대체했습니다. 12개 또는 24개 단어로 키와 주소의 전체 계층을 다시 만들어 낼 수 있으므로, 지갑은 매번 새 주소를 쓰면서도 하나의 백업으로 복원할 수 있습니다.
- 전용 기기와 앱이 웹 페이지가 아니라 기기 안에서 제대로 된 난수로 키를 생성합니다.
- 멀티시그가 단일 장애 지점을 없앴습니다. 지출하려면 서로 다른 장소에 보관된 여러 개의 키가 필요합니다.
핫 스토리지와 콜드 스토리지의 차이는 여전히 실재하지만, "콜드"가 더 이상 "종이 한 장에 적힌 개인 키 하나"를 뜻할 필요는 없습니다.
오래된 페이퍼 월렛을 가지고 있다면
- 키를 웹사이트에 입력하지 마세요. 잔액을 확인하려는 목적이든, "검증"하려는 목적이든 마찬가지입니다. 잔액은 블록 탐색기에 주소를 입력해서 확인하세요. 키는 절대 입력하면 안 됩니다.
- 한 번에 모두 옮길 계획을 세우세요. 신뢰할 수 있는 지갑의 스윕 기능을 사용하면 전체 잔액을 하나의 트랜잭션으로 새 지갑의 주소에 옮길 수 있습니다.
- 받을 곳을 먼저 준비하세요. 그 복구 문구도 제대로 백업해 두어야 합니다. 방법은 시드 문구 모범 사례에서 다룹니다.
- 그 후에는 종이 키를 이미 사용한 것으로 취급하세요. 그 주소로는 다시 아무것도 보내지 마세요.
- 포크나 오래된 체인용이라면, 종이를 폐기하기 전에 같은 키가 다른 곳의 코인도 통제하고 있는지 확인하세요. 오래된 지갑 중에는 포크로 생긴 코인을 함께 보유한 것도 있습니다.
SSP와의 비교
SSP는 페이퍼 월렛 발상의 유용한 부분, 즉 회사가 아닌 당신이 직접 통제하는 키를 유지하고 약한 부분은 버립니다. 키는 웹사이트가 아니라 당신의 기기에서 생성됩니다. 각 지갑은 단일 키가 아닌 복구 문구로 백업되고, 주소는 표준 파생 경로에서 만들어지므로 잔돈은 백업이 이미 포함하고 있는 주소로 돌아옵니다.
무엇보다도 모든 것을 통제하는 종이 한 장이 존재하지 않습니다. 자금은 2-of-2 멀티시그 금고에 보관됩니다. 키 하나는 SSP Wallet에, 다른 하나는 SSP Key에 있으며, 각각 고유한 복구 문구를 가집니다. 둘 중 하나를 잃어버리거나 노출하더라도 누군가에게 코인을 넘겨주게 되지는 않습니다.
솔직한 요약
페이퍼 월렛은 키를 인터넷에서 떼어 놓는다는 실제 문제에 대한 영리한 해답이었습니다. 하지만 웹사이트에서의 생성, 프린터를 통한 유출, 단일 주소, 잔돈 처리 실수, 그리고 약한 종이 때문에 보기보다 훨씬 위험했습니다.
아직 가지고 있다면 주소로 확인하고, 제대로 백업된 지갑으로 한 번에 전부 스윕한 뒤 그 종이는 은퇴시키세요. 페이퍼 월렛이 추구했던 목표, 즉 오직 당신만 통제하는 키는 오늘날 복구 문구, 기기 내 키 생성, 그리고 멀티시그로 더 잘 달성할 수 있습니다.


