BIP32 비하드닝 부모 키 단계적 증가

연구 . 키 도출

BIP32 비하드닝 부모 키 단계적 증가

BIP32의 잘 알려지지 않은 특성상, xpub과 단 하나의 비하드닝된 자식 개인 키만으로도 부모 키를 알아낼 수 있습니다. 이는 명백한 위험 요소이자, 소유자에게는 복구 수단이 됩니다.

2026년 7월 업데이트 · KeychainX — 2017년부터 지갑 복구 서비스 제공

BIP32 계층적 결정론적 지갑은 하나의 시드에서 전체 키 트리를 도출합니다. 대부분의 사람들은 이 트리가 부모에서 자식으로 이어지는 하향식 구조라는 사실을 알고 있습니다. 하지만 특정 조건 하에서는 이 트리를 상향식으로 거슬러 올라갈 수 있다는 사실을 아는 사람은 많지 않습니다. 이 페이지에서는 ‘비강화된 에스컬레이션 속성’에 대해 설명합니다. 이 속성이 무엇인지, 보안 측면에서 왜 중요한지, 그리고 지갑 복구에 어떻게 도움이 되는지 다룹니다.

HD 도출 방식

BIP32 지갑에서는 각 키가 부모 키와 체인 코드, 인덱스를 결합하는 단방향 함수를 통해 자식 키를 도출합니다. 여기에는 부모 개인 키가 필요한 ‘하드ened 도출(인덱스 2³¹ 초과)’과 부모 공개 키만으로 수행할 수 있는 ‘비하드ened 도출’의 두 가지 방식이 있습니다. 비하드닝 파생 방식 덕분에 xpub이 유용해집니다. 즉, 워치온리 서버는 개인 키를 보유하지 않고도 새로운 수신 주소를 생성할 수 있습니다.

에스컬레이션 속성

여기서 문제가 되는 부분이 바로 이 점입니다. 비강화(non-hardened) 도출 방식의 경우, 자식 개인 키와 그 부모 키 간의 관계는 부모의 공개 키(xpub)를 알고 있다면 역산할 수 있습니다. 구체적으로 말하면, xpub과 비강화된 자식 개인 키 하나만 주어지면 부모 개인 키를 계산할 수 있으며, 이를 통해 전체 하위 트리를 도출할 수 있습니다. 유출된 자식 키 하나와 공개 xpub 하나만으로도 해당 분기는 완전히 노출됩니다.

왜 보안 위험이 되는가

이로 인해 겉보기에는 안전해 보이는 두 가지 요소가 위험한 조합으로 변모합니다. 회계 처리나 관찰 전용 목적으로 xpub를 공유하는 것은 무해해 보이며, 단일 하위 개인 키가 노출되는 것은 한 주소의 손실에 그치는 것처럼 느껴집니다. 하지만 이 두 가지가 결합되면 이야기는 달라집니다. xpub를 보유한 공격자가 보안 조치가 적용되지 않은 자식 키를 단 하나만 확보하더라도 부모 키로 접근하여 해당 계정의 모든 주소를 털어낼 수 있습니다. 이는 개별적으로는 사소한 노출 두 가지가 결합되어 완전한 침해로 이어지는 classic , 바로 이 때문에 계정 경계에서 보안 조치가 적용된 파생 방식이 존재하는 것입니다.

키 복구에 어떻게 도움이 되는지

자신이 소유주로서 자신의 자금을 회수하려는 경우, 동일한 자산은 일종의 선물과도 같습니다. 계정 xpub과 단 하나의 비강화된 하위 개인 키(예: 내보낸 키 하나나 아직 보유하고 있는 특정 주소의 키)만 가지고 있어도, 상위 키와 전체 분기를 재구성할 수 있습니다. 쓸모없어 보이는 부분적이고 단편적인 키 자료 세트라도, 단계적 복원을 통해 지갑 전체를 재구성할 수 있습니다. 이를 통해 “오래된 개인 키 하나와 xpub만 가지고 있다”는 상황은 막다른 골목에서 완전한 복구가 가능한 상황으로 바뀝니다.

적용되는 경우

조건은 다음과 같이 구체적입니다. 파생 과정이 ‘비하드닝 ( non-hardened )’이어야 하며(하드닝된 자 노드는 부모 노드에 대한 정보를 전혀 드러내지 않음), 부모 노드에 대한 올바른 xpub와 그 바로 아래에 위치한 진정한 자 노드의 개인 키가 필요합니다. 많은 지갑이 바로 이러한 시도를 차단하기 위해 계정 수준에서 하드닝된 파생 방식을 사용하기 때문에, 이 방법이 모든 경우에 적용되는 것은 아닙니다. 하지만 지갑이 비하드닝 파생 방식을 사용하는 경우, 이는 강력하면서도 종종 간과되는 경로입니다.

사례 평가

에스컬레이션이 적용되는지 여부를 확인하려면, 해당 지갑의 파생 방식을 파악해야 합니다. 즉, 어떤 소프트웨어로 생성되었는지, 그리고 해당 분기가 강화되었는지 여부를 확인한 뒤, xpub가 귀하가 보유한 자식 키의 부모 키와 실제로 일치하는지 확인해야 합니다. 수학적 원리가 정확하기 때문에, 이러한 사실들이 일치하면 재구성은 결정론적으로 이루어집니다. 즉, 부모 키가 정확하게 도출되거나 입력값이 일치하지 않는 두 가지 경우 중 하나일 뿐이며, 그 사이에 추측의 여지는 없습니다.

자신을 보호하는 방법

보안상의 교훈은 간단합니다. xpub을 공개 정보가 아닌 민감한 정보로 취급하고, 해당 xpub이 누구에게든 알려진 상태에서는 개별 자식 개인 키를 절대로 노출해서는 안 됩니다. 관찰 목적으로만 xpub을 공유해야 하는 경우, 그 아래에 있는 단 하나의 비강화된 자식 키가 유출되기만 해도 계정이 위험에 빠진다는 점을 명심하십시오. 가능한 한 계정 경계에서 강화 기능을 제공하는 지갑을 사용해야 합니다. 그래야만 xpub과 자식 키가 유출되더라도 이를 결합하여 권한을 상승시키는 데 악용될 수 없습니다.

구체적인 예시

회계사에게 입금 내역을 추적할 수 있는 ‘조회 전용’ xpub을 제공한 지갑을 상상해 보십시오. 또한 몇 년 전, 소액의 잔액을 인출하기 위해 별도의 주소 하나에 대한 개인 키를 내보낸 경우도 있다고 가정해 봅시다. 개별적으로 보면 둘 다 별 문제가 없어 보입니다. xpub은 키를 드러내지 않으며, 한 주소의 키는 그 주소만의 위험일 뿐이니까요. 하지만 만약 그 주소가 공유된 xpub의 ‘비강화(non-hardened)’ 하위 주소라면, 이 두 가지를 결합함으로써 상위 키와 그 아래에 있는 모든 주소를 재구성할 수 있습니다. 공격자가 이 두 가지를 조합해 악용할 수 있게 하는 바로 그 수학적 원리 덕분에, 메인 지갑을 분실한 후 두 조각을 모두 보유한 정당한 소유자는 다시 접근하여 해당 분기 내의 모든 자산을 복구할 수 있습니다. 이는 이 속성이 왜 위험 요소이자 동시에 생명줄인지를 가장 명확하게 보여주는 사례입니다.

당사의 문서

KeychainX는 실제 복구 사례에서 비강화된 권한 상승 기법을 활용해 파편화된 키 자료로부터 지갑을 재구성한 바 있으며, 이 기법이 복구 도구로서도 위험 요소로서도 그 중요성이 충분히 인식되지 못하고 있기 때문에 여기에 그 내용을 기록합니다. 이는 Trezor 키 도출 포렌식을 포함한 당사의 광범위한 키 도출 연구와 맥락을 같이 합니다. xpub과 분리된 개인 키를 보유하고 있다면, 이를 쓸모없는 것으로 단정하지 마십시오.

자주 묻는 질문

어떤 핵심 자료가 필요하신가요?

이상적으로는 계정 xpub과 그 아래에 있는 비하드닝 처리된 자식 개인 키 중 적어도 하나가 있어야 합니다. 이 두 개 중에서 파생 과정이 비하드닝 처리된 경우, 부모 키와 전체 분기를 재구성할 수 있습니다.

BIP32 비하드닝 에스컬레이션이란 무엇인가요?

부모 확장 공개 키(xpub)와 강화되지 않은 자식 개인 키 중 임의의 하나를 주면, 부모 개인 키를 계산할 수 있는 속성으로, 이를 통해 해당 분기 전체를 파악할 수 있다.

제 xpub을 공유해도 안전한가요?

꼭 그렇지만은 않습니다. xpub 자체만으로는 조회 전용이지만, 유출된 비강화형 자식 개인 키 하나와 결합되면 부모 키와 해당 계정의 모든 주소가 노출됩니다. xpub을 민감한 정보로 취급하십시오.

이것이 제 지갑을 복구하는 데 어떻게 도움이 되나요?

xpub과 강화되지 않은 자식 개인 키를 단 하나라도 보유하고 있다면, 부모 키와 전체 분기를 재구성할 수 있어, 단편적인 키 자료를 완전한 복구로 전환할 수 있습니다.

항상 해당되는 건가요?

아닙니다. 비하드닝 파생값과 이에 대응하는 xpub가 필요합니다. 계정 수준에서 하드닝을 적용하는 지갑은 이를 차단하므로, 특정 설정에만 적용됩니다.

회복 비용은 얼마인가요?

성과 기반: 지갑을 회수할 경우에만 회수 금액의 일정 비율을 수수료로 받으며, 선불 수수료는 없습니다.

xpub과 유실된 개인 키를 보관하고 계신가요?

이러한 조각들은 단계적 복원을 통해 지갑 전체를 재구성할 수 있습니다. 보유하고 계신 키 자료를 알려주시기 바랍니다. 24시간 이내에 솔직한 평가를 해주시기 바랍니다.

KeychainX에 문의하기 →