watch-only는 능력 경계다. public keys, scripts, descriptors는 알지만 signing secret은 없다. balance와 PSBT를 만들고 별도 signer가 승인한다. online key 제거는 원격 절도를 줄이지만 coordinator 데이터의 진실성을 보장하지 않는다.
알려진 script outputs를 인식하고 confirmations를 추적해 UTXO를 합친다. key 통제, 서명 능력, 최선 chain을 스스로 증명하지 않는다. balance는 발견된 watch set만 포함하며 단일 address와 descriptor wallet의 범위는 다르다. [Bitcoin Core RPC — createwallet] [Bitcoin Core RPC — importdescriptors]
address import는 한 script만 감시하고 미래 receive/change를 파생하지 않는다. account xpub은 non-hardened children을 만들지만 P2PKH, SegWit, Taproot, internal branch, threshold를 정하지 않는다. descriptor가 policy를 담는다. 올바른 account/network/script type에서 export한다. [BIP 32 — Hierarchical Deterministic Wallets] [BIP 380 — Output Script Descriptors] [Bitcoin Core — Output Descriptors]
BIP380은 output script 집합의 언어다. wpkh([fingerprint/path]xpub…/0/*)#checksum은 template, origin, branch, wildcard, checksum을 담고 tr()은 BIP386, multipath는 BIP389다. checksum은 오타만 잡고 공급자를 인증하지 않는다. xprv가 있으면 watch-only가 아니다. [BIP 380 — Output Script Descriptors] [BIP 386 — tr() Output Script Descriptors] [BIP 389 — Multipath Descriptor Key Expressions] [Bitcoin Core — Output Descriptors]
HD wallet은 보통 /0/* receive와 /1/* change를 쓴다. internal 누락은 change를 숨기고 작은 range나 뒤처진 next_index는 deposit을 숨긴다. coordinator가 동기화되지 않으면 address를 재사용한다. 상태를 맞추고 signer display에서 주소를 확인한다. [BIP 389 — Multipath Descriptor Key Expressions] [Bitcoin Core RPC — importdescriptors]
importdescriptors timestamp는 scan 시작점이다. now는 과거를 건너뛰고 0은 genesis부터다. range, active/internal, block availability, pruning이 결과를 바꾼다. 빈 balance는 key loss가 아니다. birthday/height를 기록하고 알려진 transactions로 recovery를 검증한다. [Bitcoin Core RPC — importdescriptors] [Bitcoin Core — Offline Signing Tutorial]
coordinator가 UTXO, destination, fee, change를 골라 PSBT를 만든다. BIP174가 offline signer에 outputs, scripts, paths를 준다. trusted display에서 destination, amount, fee, sighash, change를 확인하고 broadcast 전 final transaction을 대조한다. [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — Offline Signing Tutorial]
xpub은 지출하지 못해도 non-hardened descendants를 노출해 과거·미래 addresses, balances, timing, change를 묶게 한다. 타사 server query도 watch set을 샌다. own full node, account 분리, 사본 최소화, descriptor/label 보호가 필요하다. [BIP 32 — Hierarchical Deterministic Wallets] [Bitcoin Optech — Output Script Descriptors] [Sparrow Wallet — Quick Start Guide]
BIP32에서 parent xpub과 non-hardened child private key 하나면 parent private key를 복구할 수 있다. xpub 단독은 아니지만 조합이 branch를 위험하게 한다. account 위 hardened 경계가 피해를 제한한다. xprv나 seed를 import하지 않는다. [BIP 32 — Hierarchical Deterministic Wallets]
multisig는 threshold, script type, 모든 cosigner xpubs, origins, order와 양 branch가 필요하다. seeds만으로 다른 addresses가 나올 수 있다. 각 signer에서 policy와 예시 address를 확인하고 checksummed configuration을 backup하며 공동 graph를 보호한다. [BIP 380 — Output Script Descriptors] [Bitcoin Core — Multisig Tutorial]
receive/change descriptors, origins, network, birthday, range, labels, policy를 keys와 별도로 backup한다. BIP329 labels는 policy가 아니다. import, rescan, known addresses, UTXO, PSBT, signature, final transaction을 시험한다. watch-only는 관찰이지 권한이 아니다. [BIP 329 — Wallet Labels Export Format] [Bitcoin Core RPC — importdescriptors] [Electrum — Cold Storage]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Extended Public Key (xpub), 지갑, Cold Storage, Output Descriptor, PSBT, Bitcoin. 다음 항목에서도 이 글을 참조합니다 HD Wallet, Cold Storage, Extended Public Key (xpub), Output Descriptor.