Bitcoin Book of BIPs

Scripts, Miniscript, and Policy

The last chapter is the practical layer on top of script: how wallets build standard multisig, how they sort keys and inputs so two implementations produce the same transaction, how a sender asks for replace-by-fee, and how a descriptor wallet describes a whole policy instead of a single script.

BIP 11 is M-of-N standard transactions, the original multisig that P2SH later made usable. BIP 67 sorts the public keys so two wallets independently derive the same P2SH address. BIP 69 sorts inputs and outputs lexicographically so a transaction has a canonical order. BIP 125 is opt-in full replace-by-fee — the signal that a transaction may be replaced with a higher fee.

BIP 388 sits at the end. Wallet policies are how a descriptor wallet talks about accounts, change, and multisig templates as one object. Descriptors themselves live in the earlier chapter; I did not repeat BIP 380 here.

Miniscript has a BIP number, but it is still a draft, so it is not in this book. When you want the compiler that sits between a policy and a script, that is the document to read next, upstream.

In this chapter:

  BIP: 11
  Layer: Applications
  Title: M-of-N Standard Transactions
  Authors: Gavin Andresen <gavinandresen@gmail.com>
  Status: Deployed
  Type: Specification
  Assigned: 2011-10-18
  Discussion: 2011-10-02