Bitcoin Core 설명자 지갑에서 개인 키를 내보내는 방법은 무엇입니까?

avatar
Bitpush
07-24
이 기사는 기계로 번역되었습니다
원문 표시

작년 2024.6.23 교련 문서 《정말인가? 비트코인 코어가 개인 키 가져오기를 지원하지 않는다?》에서는 직접 만든 비트코인(BTC) 개인 키를 최신 설명자 지갑(descriptor wallet)에 가져오는 방법과 관련 명령어를 소개했습니다. 일부 독자들이 추가 질문을 했기에 이 글에서 간단히 보충 설명하겠습니다.


질문 1: 설명자 지갑은 비트코인 개선 제안 39의 니모닉 단어를 지원하나요?


답: 지원하지 않습니다.


설명자 지갑은 비트코인 개선 제안 32의 계층적 결정론적 지갑을 지원하지만, 비트코인 개선 제안 39의 니모닉 단어는 지원하지 않습니다.


이것이 교련이 《류 교련의 초보자 강좌》에서 니모닉 단어로 비트코인(BTC) 콜드 지갑을 만드는 것을 권장하지 않고 직접 개인 키를 생성하고 필사하는 이유 중 하나입니다. 니모닉 단어라 하더라도 다른 소프트웨어와 하드웨어 지갑은 다른 규격으로 구현될 수 있어, A 소프트웨어에서 생성한 니모닉 단어를 B 소프트웨어에 가져오면 완전히 다른 주소가 생성되어 자신의 비트코인(BTC)을 찾을 수 없게 될 수 있습니다.


질문 2: 개인 키를 지원하는 설명자 지갑을 어떻게 만드나요?


답: 최신 버전의 비트코인 코어는 자동으로 지갑을 초기화하지 않습니다. 직접 명령어를 사용하여 지갑을 생성해야 합니다. 생성 시 개인 키를 비활성화하면 관찰 전용 지갑(watch-only wallet)이 되고, 개인 키를 비활성화하지 않으면 표준 지갑이 됩니다. 구체적인 명령어는 다음과 같습니다:

$ bitcoin-cli -named createwallet wallet_name="testwallet" descriptors=true disable_private_keys=false


위 명령어에서 disable_private_keys=false는 개인 키를 명시적으로 비활성화하지 않음을 나타냅니다.


보안을 높이려면 지갑을 암호화하는 것이 좋습니다.

$ bitcoin-cli -rpcwallet=testwallet encryptwallet "당신의 로컬 암호화 비밀번호"


질문 3: 그렇다면, 설명자 지갑에서 특정 주소의 개인 키를 어떻게 내보내나요?


답: 매우 간단합니다! 설명자를 직접 표시하면 됩니다. 구체적인 명령어:

$ bitcoin-cli listdescriptors true{  "wallet_name": "testwallet",  "descriptors": [    {      "desc": "pkh(5KQ2upQdz2wPfYCT2MfXdgmqZKZtFPDmzm8ubXimR76pYMANUdM)#8rrz94h2",      "timestamp": 1753270055,      "active": false    },...


위 명령어 결과에 표시된 것은 2024.6.23 교련 문서 《정말인가? 비트코인 코어가 개인 키 가져오기를 지원하지 않는다?》에서 가져온 개인 키 설명자입니다. 비트코인 코어는 가져온 설명자를 암호화하거나 숨기지 않고 완전히 표시합니다.


listdescriptors 명령어 뒤의 true 매개변수는 개인 키 설명자를 표시함을 나타냅니다. 이 매개변수를 추가하지 않으면 공개 키 설명자만 표시되어 개인 키를 볼 수 없습니다.


개인 키 설명자를 확인한 후, 2024.6.23 교련 문서 《정말인가? 비트코인 코어가 개인 키 가져오기를 지원하지 않는다?》에서 소개된 getdescriptorinfo로 검증할 수 있습니다:

$ bitcoin-cli getdescriptorinfo "pkh(5KQ2upQdz2wPfYCT2MfXdgmqZKZtFPDmzm8ubXimR76pYMANUdM)"{  "descriptor": "pkh(04e510bfa12225bbc2044a1847eda44a26e8a842cbf45c11d74ade893e506fc9e209c7c0044c5321ea22edf9dc1d8e45bed3663ed7c637eb564a7dd0a23ca8e45c)#afvrzgrk",  "checksum": "8rrz94h2",  "isrange": false,  "issolvable": true,  "hasprivatekeys": true}


결과가 직관적이지 않아 개인 키 설명자에 해당하는 비트코인(BTC) 주소를 볼 수 없습니다. 해당 주소를 확인하려면 다음 명령어를 사용해야 합니다:

$ bitcoin-cli deriveaddresses "pkh(04e510bfa12225bbc2044a1847eda44a26e8a842cbf45c11d74ade893e506fc9e209c7c0044c5321ea22edf9dc1d8e45bed3663ed7c637eb564a7dd0a23ca8e45c)#afvrzgrk"[  "13cuZK94jvtCBPDoXd86MiiFTyMnQWkCS6"]


위의 deriveaddresses 명령어 뒤에 있는 매개변수는 이전 명령어 실행 결과의 공개 키 설명자입니다.


이제 처음에 설명자 목록에서 얻은 개인 키 설명자와 해당 주소를 충분히 확신할 수 있습니다.


간단하죠? 아, 사실 그렇지 않습니다! 그래서 교련은 게으르게 electrum을 사용합니다. 이는 이전 개인 키 관련 문서에서 이미 언급했습니다.


추가로, 위에 시연된 명령어는 교련이 비트코인 Knots로 작업한 것입니다. Knots는 Core의 한 분기 버전으로, 일부 필터링 및 슬림화 기능을 추가하여 노드 운영에 필요한 리소스를 절약하는 데 도움을 줍니다.


HD 지갑 주소와 개인 키에 대해 더 물어보고 싶나요? 이 글이 이미 너무 길어졌습니다. 이 더 복잡하고 어려운 주제는 나중에 다루겠습니다!

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트