비트코인 퍼즐 #66 해결, 6.6 BTC(~$400k) 인출
(blockchain.com)- Blockchain.com 탐색기 기준으로 해당 Bitcoin 주소는 6.60321602 BTC를 모두 송금해 현재 잔액이 0 BTC임
- 주소 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so는 총 50건의 트랜잭션을 거쳤고, 누적 거래량은 13.20643204 BTC로 기록됨
- 큰 출금은 2024년 9월 12일에 집중됐으며, 5.94000000 BTC와 0.66126013 BTC가 별도 트랜잭션으로 이동함
- 달러 환산 기준 총 수신액과 총 송금액은 각각 $385,889이고, 총 거래량은 $771,779 수준임
- 탐색기 화면만으로는 퍼즐 해결 방식, 해결자, 개인키 발견 과정 같은 오프체인 맥락은 확인할 수 없음
주소 상태와 누적 기록
- 대상 Bitcoin 주소는 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so임
- 주소 형식은 Base58(P2PKH) 이며 Bitcoin Address로 분류됨
- 현재 잔액은 0.00000000 BTC, 달러 환산 $0.00임
- 누적 수치는 다음과 같음
- Total Received: 6.60321602 BTC, $385,889
- Total Sent: 6.60321602 BTC, $385,889
- Total Volume: 13.20643204 BTC, $771,779
- Transactions: 50건
2024년 9월 12일의 대규모 출금
- 2024년 9월 12일 22:59:39에 619e-c024 트랜잭션으로 5.94000000 BTC가 전송됨
- 수신 주소는 bc1q-7n67로 표시됨
- 수수료는 76.4K sats, $44.64임
- 같은 날 23:08:01에는 d77d-b601 트랜잭션으로 0.66126013 BTC가 이동함
- 수신 주소는 15XV-yBQx임
- 수수료는 25.6K sats, $14.98임
- 두 건의 합계는 6.60126013 BTC로, 전체 송금액의 대부분을 차지함
이후 이어진 소액 입출금
- 2024년 9월 이후에도 여러 소액 트랜잭션이 이어짐
- 예시로 확인되는 흐름은 다음과 같음
- 2024년 9월 14일: 0.00000012 BTC 출금, 수수료 1.8K sats
- 2024년 9월 16일: 0.00001237 BTC 출금, 수수료 691 sats
- 2024년 9월 24일: 0.00001229 BTC 입금과 출금이 각각 기록됨
- 2024년 12월 20일: 0.00002272 BTC 입금과 출금이 기록됨
- 2025년 2월 16일: 0.00189717 BTC 입금과 출금이 기록됨
- 2025년 2월 19일: 0.00000576 BTC 입금과 출금이 기록됨
최근 트랜잭션
- 목록 상단의 최근 거래는 2025년 2월 19일 03:29:51의 79fb-f9ed임
- 13zb-h5so에서 bc1q-s4fr로 0.00000576 BTC가 전송됨
- 수수료는 276 sats, $0.16임
- 직전 거래는 2025년 2월 19일 03:18:41의 8425-f63b임
- 같은 양인 0.00000576 BTC가 입금됨
확인 가능한 범위
- 제공된 자료는 Blockchain.com 주소 탐색기의 주소 요약과 트랜잭션 목록임
- Hacker News 제목은 “비트코인 퍼즐 #66 해결: 6.6 BTC(~$400k) 인출”이지만, 탐색기 화면에는 퍼즐 번호, 해결자, 개인키, 탐색 방법, 검증 절차가 없음
- 따라서 확인 가능한 사실은 해당 주소의 총 수신·송금량, 현재 잔액, 거래 횟수, 개별 트랜잭션 금액과 수수료에 한정됨
댓글과 토론
Hacker News 의견들
-
관련 토론 스레드: https://bitcointalk.org/index.php?topic=1306983.msg64526037#...
Bitcoin 퍼즐은 몇 비트만 알 수 없는 개인키라서 누구나 무차별 대입으로 보상을 가져갈 수 있는 구조임. 퍼즐 66은 알 수 없는 비트가 66개였고, 최초 퍼즐 제작자가 6.6 BTC를 넣어둠
개인키는0x000000000000000000000000000000000000000000000002832ed74f2b5e35ee였고, 256비트 중 대부분은 0이며 66비트만 무작위였음
다음 Bitcoin 퍼즐 #67은 알 수 없는 비트가 67개이고, 6.7 BTC가 걸려 있음: https://www.blockchain.com/explorer/addresses/btc/1BY8GQbnue...
난이도 순서상 이전 퍼즐은 #64였고, #65가 아닌 이유는 아래와 같음. #64는 2022년 9월 9일 풀렸으니, 2^66 무차별 대입에 대략 2년의 계산 시간이 걸린 셈
5의 배수 퍼즐(#65, #70)은 특별해서 엔트로피가 2배임. #65 개인키는 65비트 엔트로피가 아니라 130비트 엔트로피를 갖고, 제작자가 의도적으로 공개키를 블록체인에 올려둠. 공개키를 알면 n비트 개인키 무차별 대입은 2^(n/2) 작업만 필요하므로, 130비트 키인 #65도 실제로는 최대 2^65개 키를 대입하면 됨- 공개키가 있으면 개인키를 더 효율적으로 찾을 수 있는 이유는 Pollard의 로 알고리즘 때문임: https://en.wikipedia.org/wiki/Pollard%27s_rho_algorithm_for_...
- 저 스레드는 정말 정신없음. 조금만 위로 올려도 이런 내용이 보임
새 공개키 검색 시스템이 거의 준비됐다고 함. 기존 이진 데이터베이스 시스템은 가벼웠지만 https://bitcointalk.org/index.php?topic=5475626, 이진 검색 효율 문제가 있어서 새로 만들었다고 함. 이제는 1억 개 공개키를 80KB 파일에 저장하는 시스템을 설계했고, 데이터베이스 생성 중 1억 개 이상의 공개키를 만들 때 Secp256k1 속도만 한계가 된다고 함
이런 미친 발명가식 인터넷 토끼굴이 좋음. 모든 게 흥미진진하던 90년대 인터넷 느낌이 남 - 어느 시점 이후로는 이게 Shor 알고리즘에 대해 양자 우위를 가진 해법이 존재한다는 증명처럼 되는 것 아닌가 싶음
“여기 40만 달러가 테이블 위에 있으니 아무도 가져가지 않길 바람” 같은 식이고, 누군가 가져가면 기존의 양자 이전 암호를 전부 교체하라는 경보가 울리는 구조처럼 보임 - 엔트로피 개념을 섞어 쓴 것 같음. 엔트로피는 데이터의 무작위성 척도이고, 엔트로피가 클수록 암호 체계를 깨기 어려움. 그러니 키에 130비트 엔트로피가 있다면 65비트보다 깨기 어려워야 함
또 ‘5의 배수’ 얘기가 어디서 나온 건지도 불분명함. 5로 나누어떨어지는 번호의 키들은 퍼즐 제작자가 지출 거래에 사용한 것처럼 보임. 그 주소들을 지출 거래에 쓰면 공개키가 드러나고, 해시에 낭비될 계산을 줄일 수 있음. 또한 위에서 링크된 Pollard의 로 같은 직접 공격도 가능해짐
출처:
https://bitcointalk.org/index.php?topic=1306983.msg51466379#...
https://en.wikipedia.org/wiki/Pollard%27s_rho_algorithm_for_...
Pollard의 캥거루 알고리즘을 쓰는 bitcointalk의 다른 흥미로운 토론:
https://bitcointalk.org/index.php?topic=5244940.0 - 이게 정말 “퍼즐”인가? 무작위 숫자를 무차별 대입하는 데 계산 자원을 붓는 건 퍼즐을 푸는 느낌이 아니라, 사실상 Bitcoin이 동작하는 방식에 가까워 보임
-
이걸 푼 사람이 꽤 흥미롭고 약간 조롱 섞인 메시지를 남겼음
TX 입력:
Code:
1FuckUmT5yBAvozf6gT8GRQVbJ7iBDUnrH
TX 출력:
Code:
1Jvv4yWkE9MhbuwGU66666666669sugEF 0.00000001
1YouAreSoDumbLoL666666666667K5aR4 0.00000002
1WhatWereUThinking6666666662wkqq1 0.00000003
1YouDeserveNothing6666666665sbbBC 0.00000004
1YouEpicFaiLure66666666666688GSDA 0.00000005
1BitchAssLoser66666666666669dBUVg 0.00000006
1AndEveryoneELse666666666669Vnc8C 0.00000007
1ThisisALosingGame6666666667HAZdf 0.00000008
1JustGetAReaLJob666666666665vGKVD 0.00000009
1YoureWastingTimeAndMoney664CVExC 0.00000010
1AndCausingCLimateChange6666HK8Qc 0.00000011
13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so 0.00000012
1Jvv4yWkE9MhbuwGUoqFYzDjRVQHaLWuJd 0.00000013
1FK5PjPNARQmg94n2cNHTo9417kWfXUDBQ 0.00002125- 이 메시지는 푼 사람이 남긴 걸까, 아니면 보상을 훔친 사람이 남긴 걸까? 아래를 보면 됨: https://news.ycombinator.com/item?id=41549946
- 딱히 흥미롭다기보다는 경쟁자들에게 트래시 토크를 한 것에 가까움
-
코인은 봇에게 도난당한 것으로 보임
https://bitcointalk.org/index.php?topic=1306983.msg64535839#...
이 개념을 잘 알지는 못하고 찾아보기에도 좀 귀찮지만, 원래 승자가 충분한 블록이 채굴되기 전에 개인키를 올렸고, 도둑이 더 큰 수수료로 거래를 올려서 도둑의 거래가 채굴된 블록에 들어간 것 같음- 개인키가 너무 일찍 공개된 건 아님. 실제로는 66비트를 무차별 대입하느라 계산 자원을 쓴 사람이 6.6 BTC 보상을 자기 지갑으로 보내는 거래를 순진하게 브로드캐스트했음
그런데 그렇게 하면 설계상 공개키가 블록체인에 드러남. 이 퍼즐 보상을 훔치는 것만 목적으로 하는 누군가의 봇이 블록체인을 감시하다가, 거래가 확정되기 전(평균 10분)에 이를 포착함. 이제 공개키를 알게 됐으므로 개인키를 2^33번 연산, 즉 2^(n/2)로 복구할 수 있었고, 더 높은 수수료로 보상을 자기 지갑에 보내는 다른 거래를 만들어 확정시킴
이건 잘 알려진 공격임. 발견자는 무차별 대입을 할 만큼은 정교했지만, 이 위험을 알 만큼은 아니었던 셈 :) - 누군가 보상을 훔치고, Bitcoin 퍼즐을 푸는 모두를 조롱하는 호출 카드 같은 걸 남긴 건가?
1Jvv4yWkE9MhbuwGU66666666669sugEF 0.00000001
1YouAreSoDumbLoL666666666667K5aR4 0.00000002
1WhatWereUThinking6666666662wkqq1 0.00000003
1YouDeserveNothing6666666665sbbBC 0.00000004
1YouEpicFaiLure66666666666688GSDA 0.00000005
1BitchAssLoser66666666666669dBUVg 0.00000006
1AndEveryoneELse666666666669Vnc8C 0.00000007
1ThisisALosingGame6666666667HAZdf 0.00000008
1JustGetAReaLJob666666666665vGKVD 0.00000009
1YoureWastingTimeAndMoney664CVExC 0.00000010
1AndCausingCLimateChange6666HK8Qc 0.00000011
13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so 0.00000012
1Jvv4yWkE9MhbuwGUoqFYzDjRVQHaLWuJd 0.00000013
1FK5PjPNARQmg94n2cNHTo9417kWfXUDBQ 0.00002125 - 거래를 올리면 공개키가 거래 안의
sigscript필드에 들어감
공개키를 알면 2^66 대신 2^(66/2) 번만 확인하면 되고, 이건 아주 빠르게 할 수 있음
그래서 어떤 봇이 주소를 감시하다가 공개키를 얻고, 거기서 개인키를 계산한 뒤, 아마 채굴 풀과의 거래를 통해 자기 거래가 반영되도록 해서 원래 제출자를 선행매매했을 가능성이 큼 - 생성한 키는 어떻게 검증하는 건가? 거래를 많이 제출해볼 수는 없을 텐데, 그러면 비용이 많이 들 것 같음
- 개인키가 너무 일찍 공개된 건 아님. 실제로는 66비트를 무차별 대입하느라 계산 자원을 쓴 사람이 6.6 BTC 보상을 자기 지갑으로 보내는 거래를 순진하게 브로드캐스트했음
-
흥미롭게도 bitcointalk 포럼 첫 페이지를 읽어보면, 퍼즐은 이 지갑에서 시작됐고 엄청난 규모의 거래량이 있음. 1만 건 이상 거래와 100만 BTC 이상의 송수신이 보임
https://www.blockchain.com/explorer/addresses/btc/173ujrhEVG...- 아마 거래소 지갑일 듯?
-
이 챌린지를 풀려고 modal.com 계산 자원을 쓰는 사기꾼들이 있었음. 전통적인 채굴 소프트웨어가 아니라서 처음에는 탐지되지 않았지만, 이제는 잡아내도록 탐지 로직을 업데이트했음[1]
- 맥락을 덧붙이면, 이 사용자들은 돈을 내지 않았고 도난 신용카드 번호를 쓰고 있었음
- 참고로 클라이언트 측 라우팅에 뭔가 문제가 있음. 블로그 글에서 로고를 누르면 URL은 홈페이지로 바뀌지만, 전체 페이지 새로고침을 하기 전까지 내용이 바뀌지 않음
- iPhone 사용자가 잠금 모드를 쓰면 블로그가 404가 됨. 사실 웹사이트 전체가 로드되지 않음
-
추측되는 개인키에 뭔가 고유하거나 특별한 점이 있나? 계산 자원을 엄청나게 낭비하는 배분처럼 보임. Bitcoin이라면 놀랍지는 않지만 그래도 그렇다
- 양쪽을 개선하기 위한 통제된 군비 경쟁이고, 동시에 카나리아 역할도 함
- 나도 같은 반응이었음. Bitcoin은 이미 충분히 에너지를 낭비하고 있지 않나?
-
bitcointalk 스레드에서 이미 다뤄졌을 것 같지만, 이게 퍼즐 제작자가 자기 Bitcoin을 되찾은 게 아니라는 걸 어떻게 알 수 있나?
- 원래 풀이자가 올린 거래를 누군가 발견하고 더 큰 수수료를 붙여서 가로챘음
- 그 이론을 어떤 방법으로 증명하거나 반증할 수 있을까?
-
약간 관련 있음: https://en.wikipedia.org/wiki/RSA_Factoring_Challenge
-
이해가 안 되는 부분이 있음. 아직 누가 읽고 있다면, 힌트에는 이렇게 되어 있음
First output: take random number from 2^0 upto 2^1-1, use it as private key
Second output: take random number from 2^1 upto 2^2-1, use it as private key
Third output: take random number from 2^2 upto 2^3-1, use it as private key
내게는 지갑 #10의 범위가 2^9부터 2^10 - 1까지라는 뜻으로 들림. 그러면 이전 비트들은 실제로 확인할 필요가 없을 텐데, 어째서 모두가 가능한 개인키 전체 범위를 훑는 것처럼 보이는지 이해가 안 됨. 뭔가 놓치고 있나?- “이전 비트”가 무슨 뜻임? “모두가 훑고 있다”는 건 어디서 본 건가?
각 퍼즐에서는 최상위 비트가 1이라는 것만 알고, 나머지는 모름. 그 아래 모든 비트가 알 수 없으므로 n-1비트 전체 범위를 훑어야 함. 퍼즐 #10은10_0000_0000부터11_1111_1111사이이기 때문에 9비트를 맞혀야 함. 퍼즐 #66은 65비트를 맞혀야 함. 누군가 66개의 알 수 없는 비트라고 했다면 잘못 말한 것임
- “이전 비트”가 무슨 뜻임? “모두가 훑고 있다”는 건 어디서 본 건가?
-
이 퍼즐들에 대한 또 다른 좋은 자료: https://privatekeys.pw/puzzles/bitcoin-puzzle-tx