비트코인 개인키는 우주에서 바늘 찾기입니다.
아무 숫자나 하나 고르면 그게 누군가의 지갑 열쇠입니다. 이론적으로는요. 문제는 고를 수 있는 숫자가 2256개라는 것. 이 숫자가 얼마나 큰지 감이 오지 않는 게 정상입니다. 그래서 이 사이트가 있습니다.
115792089237316195423570985008687907853269984665640564039457584007913129639936
이 사이트는 겁을 주려고 만든 게 아닙니다. 모르고 불안한 것보다, 알고 안심하는 쪽이 낫다고 보고 만들었습니다.
다른 큰 숫자들 옆에 세워보면
사람의 직관은 109쯤에서 이미 고장 납니다. 10억이든 1조든 그냥 “엄청 큰 수”로 뭉뚱그려지죠. 그래서 개인키 개수를 다른 큰 숫자들 사이에 끼워 넣어봤습니다. 아래는 전부 로그 눈금입니다 — 한 칸 내려갈 때마다 10배가 아니라, 막대 길이가 지수에 비례합니다.
- 104이 페이지의 글자 수10,000
- 107서울 인구약 940만
- 1011우리 은하의 별1,000억 ~ 4,000억
- 1019지구의 모든 모래알— 바닷가·사막 전부약 7.5 × 10¹⁸
- 1023물 18g 속의 분자— 아보가드로 수6.02 × 10²³
- 1048비트코인 주소의 가짓수— 2¹⁶⁰ — 실제 충돌 대상1.46 × 10⁴⁸
- 1050지구를 이루는 원자약 1.3 × 10⁵⁰
- 1057태양을 이루는 원자약 1.2 × 10⁵⁷
- 1068우리 은하 전체의 원자— 별 전부를 분해해서약 10⁶⁸
- 1077비트코인 개인키의 가짓수— 2²⁵⁶1.16 × 10⁷⁷
- 1080관측 가능한 우주의 원자약 10⁸⁰
이게 비트코인이 비밀번호 없이 작동하는 이유입니다
은행은 당신의 계좌를 서버에서 지킵니다. 비밀번호를 틀리면 잠기고, 수상하면 이체를 막습니다. 비트코인에는 그런 게 없습니다. 지갑을 지키는 건 오직 숫자가 너무 많다는 사실 하나뿐입니다.
누구나 지금 이 순간 아무 개인키나 만들어 볼 수 있고, 아무도 그걸 막지 않습니다. 막을 필요가 없거든요. 세상의 모든 컴퓨터를 다 동원해 우주가 끝날 때까지 돌려도 이미 쓰이고 있는 지갑 하나를 우연히 맞힐 수 없습니다.
바로 이 지점에서 “개인키 찾아드립니다” 류의 서비스가 왜 전부 거짓말인지가 드러납니다. 그들이 파는 건 기술이 아니라, 위 사다리를 한 번도 안 본 사람의 기대입니다.
잔고가 있는 비트코인 주소를 약 5,000만 개로 잡으면, 무작위 키 하나가 그중 아무거나 맞힐 확률은 3.4 × 10⁻⁴¹입니다.
초당 10억 개를 100만 대의 컴퓨터로 우주 나이(138억 년) 동안 돌려도 기대 적중 횟수는 0.0000000000001번입니다.
선불금을 받고 “잃어버린 지갑을 복구”해 준다는 곳, “해킹된 키 데이터베이스”를 판다는 곳, 씨드 문구를 입력하면 잔액을 조회해 준다는 곳. 마지막 것은 특히 위험합니다 — 그건 조회가 아니라 탈취입니다.
설명 말고, 직접 해보세요
위 숫자를 읽고 “아 그렇구나” 하고 넘어가면 아무것도 안 남습니다. 그래서 탐색기를 만들었습니다. 당신 브라우저에서 진짜 secp256k1 연산으로 무작위 개인키를 만들고, 진짜 비트코인 주소를 유도해서, 실제 퍼즐 주소들과 대조합니다.
몇 분 돌려보면 카운터가 수백만까지 올라갑니다. 그리고 진행률 표시줄은 미동도 하지 않습니다. 그 대비가 이 사이트가 하고 싶은 말 전부입니다.
그리고 거기서 로또와 나란히 세워봅니다. 로또 1등이 145조 배 쉽습니다. 천 원짜리 로또 한 장을 사는 게, 이 브라우저로 255년을 돌리는 것과 같은 확률입니다. 그런데 장비를 1,000장으로 바꾸면 그 확률이 58초마다 쌓입니다 — 복권과 다른 점이 딱 그것 하나입니다.
- Web Worker에서 암호학적 난수로 256비트 키를 생성합니다. 흉내가 아니라 실제 연산입니다.
- 압축·비압축 P2PKH 주소를 둘 다 유도해서 미해결 퍼즐 77개 주소와 대조합니다.
- 전체 공간(2²⁵⁶) 모드와 퍼즐 범위(271) 모드를 나란히 비교합니다.
- 생성된 키는 단 한 바이트도 네트워크로 나가지 않습니다. 직접 확인하는 방법도 준비했습니다.
그런데 범위를 좁혀 놓은 사람이 있습니다
2015년, saatoshi_rising이라는 사람이 이상한 일을 했습니다. 개인키를 일부러 좁은 구간 안에서 골라 160개의 주소를 만들고, 거기에 비트코인을 넣은 뒤 주소를 전부 공개했습니다. 1번은 2⁰~2¹ 사이, 2번은 2¹~2² 사이, … 160번은 2¹⁵⁹~2¹⁶⁰ 사이. 난이도가 한 칸마다 정확히 두 배씩 오르는 자.
이건 우주에서 바늘 찾기가 아닙니다. 83개는 이미 풀렸습니다. 남은 77개에 아직 903 BTC가 들어 있고, 주인이 없습니다. 먼저 찾는 사람이 가져갑니다.
#71번의 탐색 공간은 270입니다. 전체 공간보다 2185배 작습니다. 여전히 GPU 한 장으로는 수만 년이지만, “불가능”과 “오래 걸림”은 다른 말입니다. 실제로 83번이나 누군가 해냈으니까요.
창작자가 2019년에 일부 주소에서 소액을 출금하면서 공개키가 노출됐습니다. 공개키가 알려진 퍼즐은 완전탐색 대신 Pollard's Kangaroo로 O(2n/2)에 풀립니다 — 제곱근만큼 빨라집니다. 미해결 중에는 #140, #145, #150, #155, #160이 여기 해당합니다.
해커는 키를 찾지 않습니다. 훔칩니다.
여기까지 읽고 이런 생각이 드셨을 수 있습니다 — “이런 도구를 만들어서 뿌리면, 내 비트코인이 찾아지는 거 아니야?” 당연한 걱정이고, 이 사이트를 비난하는 가장 흔한 이유이기도 합니다.
그런데 직접 돌려보고 나면 정반대의 결론에 도달합니다. 당신이 몇 시간을 돌려서 진행률 0.000…0%를 확인하고 나면, 자연스럽게 이런 질문이 생깁니다. 그럼 실제 도난 사건들은 대체 어떻게 일어난 거지?
답은 간단합니다. 아무도 이 짓을 하지 않기 때문입니다. 공격자는 합리적입니다. 우주 나이의 1050배를 들여 수학을 뚫느니, 피싱 메일 한 통을 보내는 쪽이 압도적으로 쌉니다. 실제 도난은 전부 그쪽에서 일어납니다.
그러니 걱정의 방향을 바꾸는 게 맞습니다. 내 키가 우연히 찾아질 걱정은 접어도 됩니다. 대신 관리 소홀만 신경 쓰면 되고, 그건 통제할 수 있는 영역입니다. 훨씬 마음 편한 방식이죠.
- 피싱진짜처럼 만든 지갑 사이트에 씨드를 직접 입력하게 만듭니다
- 클립보드 멀웨어복사한 주소를 몰래 공격자 주소로 바꿔치기합니다
- 씨드 사진종이에 적은 씨드를 찍어 클라우드에 자동 업로드
- 가짜 하드월렛미리 씨드가 심어진 기기를 중고로 판매
- SIM 스와핑번호를 가로채 거래소 계정을 통째로 인수
- 악성 바이너리“최적화 버전”이라며 포럼에 올라온 컴파일된 도구
탐색이 실제로 성공하는 경우가 있긴 합니다. 브레인월렛(“내가 외우기 좋은 문장”으로 만든 키), 망가진 난수 생성기(Milk Sad 같은 CVE)로 만들어진 키들. 이런 건 몇 시간 안에 털립니다.
이유는 하나입니다 — 공간이 좁아졌기 때문입니다. 2256이 아니라 “사람이 떠올릴 만한 문장 몇억 개”가 되어버린 겁니다.
비트코인 퍼즐이 풀리는 이유도 정확히 같습니다. 창작자가 일부러 좁혀놨으니까요. 브레인월렛은 사용자가 실수로 좁힌 것이고요. 결론: 탐색은 좁아진 공간에서만 통합니다. 당신의 지갑이 제대로 된 난수로 만들어졌다면, 그 공간은 좁혀지지 않았습니다.
- 씨드는 어떤 화면에도 입력하지 않는다. 복구할 때 진짜 지갑 앱에서만.
- 씨드를 사진으로 찍지 않는다. 클라우드 자동 백업이 제일 무섭다.
- 지갑 소프트웨어는 공식 경로에서만. 검색 광고 링크는 누르지 않는다.
- 하드월렛은 제조사에서 직접. 중고·오픈박스는 사지 않는다.
- 주소를 붙여넣은 뒤 앞뒤 몇 글자를 눈으로 확인한다.
- 거래소 2단계 인증은 SMS 말고 앱이나 보안키로.
이 목록 어디에도 “개인키가 찍힐까 봐 걱정한다”는 항목이 없습니다. 그럴 필요가 없어서입니다. 걱정의 총량을 늘리자는 게 아니라, 걱정해야 할 것과 걱정하지 않아도 될 것을 정확히 나누자는 것입니다. 그러고 나면 남는 목록은 이렇게 짧고, 전부 당신이 통제할 수 있는 것들입니다.
모르고 불안한 것보다, 알고 안심하는 것
“비트코인 개인키”를 검색하면 두 종류의 페이지가 나옵니다. 찾아준다고 돈을 요구하는 곳, 그리고 위험하다며 겁만 주고 끝나는 곳. 둘 다 읽고 나면 막연히 불안한 상태가 됩니다. 숫자를 본 게 아니라 분위기를 봤기 때문입니다.
그래서 이 사이트는 순서를 뒤집었습니다. 규모를 눈으로 보여주고, 직접 돌려서 체감하게 하고, 실제로 풀린 퍼즐과 안 풀린 퍼즐을 그대로 늘어놓고, 도구와 계산기를 손에 쥐여줍니다. 결론을 먼저 주지 않는 이유는 스스로 계산해서 얻은 안심만 오래가기 때문입니다.
퍼즐을 풀면 큰돈이 되는 건 사실입니다. 하지만 기댓값을 계산해보면 대부분의 조건에서 전기요금이 더 큽니다. 그 계산기도 만들어 뒀습니다.
특정 주소를 지정해 키를 찾아주는 기능은 없고, 앞으로도 넣지 않습니다. 퍼즐은 창작자가 풀라고 공개한 대상이라 다릅니다.
씨드 문구를 입력받는 칸 자체가 없습니다. 탐색기가 만든 키도 브라우저 밖으로 나가지 않고, 그걸 확인하는 방법까지 적어 뒀습니다.