132 / 691MINI

Miniscript

Bitcoin Script 구조화 언어

Miniscript는 Bitcoin Script의 제한된 부분집합을 구조화하고 형식화한 표현입니다. 지출 조건을 조합하고 속성을 분석하며 script별 전용 로직 없이 올바른 satisfaction을 구성할 수 있습니다.

Miniscript는 새 opcode, consensus rule 또는 범용 프로그래밍 언어가 아닙니다. 사람이 쓰는 spending policy와 구체적 Bitcoin Script 사이의 중간 계층이며 보통 wsh() 또는 Taproot output descriptor 안에 들어갑니다.

Miniscript는 서명, hashlocks, timelocks 및 조합에 쓰이는 Bitcoin Script 일부만 구조화합니다. Consensus를 바꾸거나 opcode를 추가하지 않습니다. 자금을 보호하는 것은 결과 Script이고 Miniscript는 소프트웨어가 컴파일하거나 인식하는 분석 가능한 표현입니다.

Spending policy는 “A 또는 144블록 뒤 B” 같은 의도를 나타냅니다. Compiler가 구체적 Miniscript를 고르고 Bitcoin Script로 번역합니다. Output Descriptor는 script를 키, derivation, 네트워크, checksum과 함께 wsh(...) 등에 묶습니다.

pk(), older(), after(), sha256(), and_v(), or_d(), thresh()는 정확한 의미를 가집니다. v: 같은 wrappers는 타입이나 동작을 바꿉니다. B, V, K, W 타입이 stack interface를 강제해 호환되는 식만 조합됩니다.

Satisfaction은 분기를 참으로 만드는 witness이고 dissatisfaction은 AND, OR, threshold 조합에 필요한 표준 거짓값입니다. 일반 signer는 사용 가능한 서명, preimages, timelocks에 따라 경로를 고릅니다. Miniscript는 private key를 만들거나 조건을 우회하지 않습니다.

after(n)은 절대 nLockTime, older(n)은 BIP 68 상대 nSequence를 씁니다. 높이 기반과 시간 기반 locks는 호환되어야 하고 트랜잭션 필드도 맞아야 합니다. 최종 검증은 policy 문구가 아니라 consensus Bitcoin Script가 수행합니다.

정적 분석은 Script와 witness 크기, 연산 및 signature checks 수, stack elements, satisfaction 경로별 비용을 제한할 수 있습니다. 결과는 P2WSH 또는 Tapscript context에 의존하며 consensus와 standardness limits를 모두 지켜야 합니다.

타입 정확성은 안전한 조합을 보장할 뿐 현명한 custody policy를 보장하지 않습니다. Malleability 분석은 제3자가 조건을 깨지 않고 유효 satisfaction을 바꿀 수 있는지 봅니다. 같은 hash preimages 접근 같은 가정이 필요하며 중복 키는 금지될 수 있습니다.

하나의 policy가 Script와 witness 크기가 다른 여러 동등 Miniscript로 컴파일될 수 있습니다. Compiler는 cost model을 최적화하며 9@ 같은 가중치는 확률 힌트이지 consensus rule이 아닙니다. 다른 컴파일은 보통 다른 주소를 만듭니다.

Descriptor wallet에서 Miniscript는 key origins와 함께 wsh() 또는 Taproot script path에 있습니다. PSBT는 트랜잭션과 derivation을 signers에 전달하지만 기기가 descriptor와 policy를 지원해야 합니다. 화면에서 키, threshold, timelocks와 예상 밖 분기를 확인하십시오.

정확한 checksummed descriptor, key map, derivation paths, network, receive/change, range, scan birthday를 보관하십시오. Parser/analyzer 검사와 여러 주소 파생을 하고 regtest나 signet에서 모든 satisfaction을 시험하십시오. 입금 전 watch-only recovery와 서명을 검증하십시오. 출처: BIP 379 — Miniscript; Miniscript Reference — Specification and Analyzer; Bitcoin Core — Output Descriptors; Bitcoin Core 24.0 — Miniscript Support; BIP 388 — Wallet Policies for Descriptor Wallets.

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Bitcoin Script, Output Descriptor, Multisig, Andrew Poelstra, Timelock, Bitcoin. 다음 항목에서도 이 글을 참조합니다 Output Descriptor, Bitcoin Script opcode, Dead Man’s Switch, Andrew Poelstra.

DOC · 001BIP 379 — Miniscript명세 ↗DOC · 002Miniscript Reference — Specification and Analyzer명세 ↗DOC · 003Bitcoin Core — Output Descriptors문서 ↗DOC · 004Bitcoin Core 24.0 — Miniscript Support문서 ↗DOC · 005BIP 388 — Wallet Policies for Descriptor Wallets명세 ↗
2026년 8월 1일 검토1차 출처 우선 · 투자 조언이 아닙니다