어떻게 ZEC가 시드 문구 뒤에 갇혔나

어떻게 ZEC가 시드 문구 뒤에 갇혔나

영어에서 번역됨

며칠 전 비영리단체 Sovright는 도구를 공개해 구형 ZEC Wallet Lite 지갑 지원이 종료된 이후 접근할 수 없게 된 자금을 복구할 수 있도록 했다. 이 지갑은 2022년 이후 개발자들이 유지보수하지 않았다.

Sovright의 집행 의장 미셸 라이(Michelle Lai)는 Argos라 불리는 새로운 솔루션이 예전 지갑의 시드 문구를 아직 보관하고 있는 사용자가 자금을 복구할 수 있게 해준다고 설명했다.

여기서 일반적인 암호화폐 사용자가 당연히 물어봐야 할 질문이 있다: 시드 문구가 있는데도 어떻게 암호화폐에 접근할 수 없는 상황이 발생할 수 있는가?

이 사례는 많은 사람이 잊고 있는 시드 문구 백업의 중요한 문제를 보여준다. 하나의 시드 문구는 엄청난 수의 주소에 대한 개인키를 생성할 수 있다. Zcash 차폐 주소의 맥락에서 ZIP‑32 표준은 2⁸⁸개의 가능한 주소 공간에 접근할 수 있게 해주며, 이는 27자리 수에 해당한다. 그리고 주소가 비공개일 때, 이는 실제적인 문제가 된다.

퍼블릭 블록체인용 지갑에서는 시드 문구가 고정된 규칙 집합을 따라 여러 주소를 생성한다. 복구 시 지갑은 동일한 규칙과 동일한 순서로 주소를 스캔한다. 복구 알고리즘은 각 주소에 거래 기록이 있는지 확인하고, 충분히 긴 연속된 빈 주소 구간을 만나면 중단한다. 투명 주소의 경우 블록체인에서 어떤 주소가 사용되었는지 공개적으로 확인할 수 있으므로 이는 쉽다.

하지만 프라이빗 또는 차폐 주소의 경우 특정 주소에 거래가 있는지 블록체인을 보고 알 수 있는 방법이 없다. 지갑을 완전히 복구하려면 이론적으로는 감당할 수 없는 양의 데이터를 샅샅이 뒤져야 한다. 바로 이것이 시드 문구가 새 지갑에서 과거 사용 기록을 알 수 없는 경우 동전에 대한 접근을 반드시 보장하지 않는 이유다.

엄밀히 말해 이런 종류의 문제는 투명 블록체인에서도 발생할 수 있다. 가상의 예를 들면: 지갑에서 "새 주소 생성"을 50,000번 눌러 마지막에 생성된 주소에만 코인을 받았다면, 어떤 시드 문구 복구 도구도 그 주소에 코인이 있다는 것을 알아채지 못할 것이다. 이유는 단순하다: 그 한 개의 자금이 있는 주소에 도달하려면 도구가 먼저 너무 많은 빈 주소를 스캔해야 하고, 모든 복구 도구는 50,000회보다 훨씬 낮은 중단 임계값을 갖고 있기 때문이다.

그래서 이런 까다로운 경우에도 사람들이 자신의 암호화폐에 대한 접근을 복구할 수 있도록 돕는 기술을 만드는 열정가들이 있다는 것은 정말로 훌륭한 일이다. 그들 덕분에 지갑 지원이 중단된 후 4년 동안 시드 문구를 보관한 사람도 동전을 되찾을 기회를 얻는다.

그런데 2022년 당시 ZEC 가치는 어땠을까? 지금 rabbit.io에서는 1 ZEC을 462 USDT로 스왑할 수 있다. 나는 ZEC 보유자들이 그때는 그런 수치를 보지 못했을 것이라고 확신한다.