Descriptor는 주소, seed, wallet 파일이 아닙니다. wpkh(...) 같은 식은 scriptPubKey 유형, 키 출처, derivation, 선택적 range를 정합니다. 마지막 사용 index와 scan birthday 같은 상태는 별도로 백업해야 합니다.
Output Descriptor는 scriptPubKey 집합과 이를 파생하거나 지출하는 데 필요한 정보를 설명합니다. wpkh(KEY)는 해당 키의 native SegWit 출력을 뜻합니다. Bitcoin 주소, seed 또는 완전한 wallet backup 자체는 아닙니다.
pk(), pkh(), wpkh(), sh(), wsh(), addr(), raw()는 정확한 출력 스크립트를 정합니다. sh(wpkh(KEY)) 같은 중첩은 scriptPubKey와 주소를 바꾸므로 동일한 xpub도 다른 wrapper에서는 다른 wallet을 정의합니다.
키에는 [fingerprint/path] origin, xpub와 추가 derivation을 넣을 수 있습니다. Key origin은 signer가 경로를 맞추는 데 도움을 주지만 fingerprint는 암호학적 신원이나 기기 인증이 아닙니다. 신뢰할 수 있는 채널로 export를 확인하십시오.
Wildcard /*는 ranged descriptor를 만들며 파생 시 range가 필요합니다. multipath <0;1>은 receive와 change 분기를 합칠 수 있습니다. Descriptor 자체는 next index, 사용 주소, gap limit, scan birthday를 저장하지 않습니다.
# 뒤 8자는 BIP 380 descriptor checksum입니다. 많은 오타와 전치를 잡지만 서명, 암호화, 출처 증명은 아닙니다. 표현을 의도적으로 바꾼 사람도 새 유효 checksum을 계산할 수 있습니다.
xpub가 든 공개 descriptor는 서명 없이 감시와 파생이 가능합니다. xprv, WIF 등 비밀 자료가 있으면 지출할 수 있으므로 seed처럼 보호해야 합니다. getdescriptorinfo는 정규 공개 형식과 hasprivatekeys를 돌려줍니다.
multi(k,...)는 기재 순서를 유지해 순서 변경 시 스크립트와 주소가 바뀝니다. sortedmulti(k,...)는 매 derivation에서 키를 사전식 정렬합니다. backup은 threshold, 모든 cosigners, key origins, wrapper를 보존해야 하며 seed 하나로는 부족합니다.
tr(KEY)는 Taproot key path를, tr(KEY,TREE)는 script path tree까지 설명합니다. 트리 모양은 Merkle root와 주소를 바꾸므로 무순서 스크립트 목록으로는 부족합니다. Miniscript나 multi_a도 완전한 descriptor를 대신하지 않습니다.
importdescriptors는 checksum 포함 descriptor와 timestamp, active, internal, range, next_index metadata를 받습니다. timestamp는 scan 시작을 정하며 늦은 birthday는 올바른 rescan 전까지 과거를 숨깁니다. 모든 상태가 식 안에 있지는 않습니다.
수신 전에 getdescriptorinfo를 실행해 checksum, isrange, issolvable, hasprivatekeys를 확인하십시오. deriveaddresses로 외부 및 change 주소 여러 개를 파생해 원본 wallet이나 hardware wallet 화면과 비교하십시오. 전체 복원을 먼저 시험하십시오. 출처: BIP 380 — Generic Output Script Descriptors; BIP 383 — multi() and sortedmulti() Descriptors; BIP 386 — tr() Output Script Descriptors; Bitcoin Core — Output Descriptors; Bitcoin Core RPC — importdescriptors.
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 지갑, Watch-only Wallet, Multisig, PSBT, Miniscript, Bitcoin. 다음 항목에서도 이 글을 참조합니다 Watch-only Wallet, Extended Public Key (xpub), PSBT, Miniscript.