message: Add checksums to descriptors.md
diff: @@ -39,7 +39,7 @@ Output descriptors currently support:
  ## Reference
  -Descriptors consist of several types of expressions. The top level expression is always a `SCRIPT`.
  +Descriptors consist of several types of expressions. The top level expression is either a `SCRIPT`, or `SCRIPT#CHECKSUM` where `CHECKSUM` is an 8-character alphanumeric descriptor checksum.
  `SCRIPT` expressions:
  - `sh(SCRIPT)` (top level only): P2SH embed the argument.
  @@ -169,3 +169,20 @@ existing Bitcoin Core wallets, a convenience function `combo` is
  provided, which takes as input a public key, and describes a set of P2PK,
  P2PKH, P2WPKH, and P2SH-P2WPH scripts for that key. In case the key is
  uncompressed, the set only includes P2PK and P2PKH scripts.
  +
  +### Checksums
  +
  +Descriptors can optionally be suffixed with a checksum to protect against
  +typos or copy-paste errors.
  +
  +These checksums consist of 8 alphanumeric characters. As long as errors are
  +restricted to substituting characters in `0123456789()[],'/*abcdefgh@:$%{}`
  +for others in that set and changes in letter case, up to 4 errors will always
  +be detected in descriptors up to 501 characters, and up to 3 errors in longer
  +ones. For larger numbers of errors, or other types of errors, there is a
  +roughly 1 in a trillion chance of not detecting the errors.
  +
  +All RPCs in Bitcoin Core will include the checksum in their output. Only
  +certain RPCs require checksums on input, including `deriveaddress` and
  +`importmulti`. The checksum for a descriptor without one can be computed
  +using the `getdescriptorinfo` RPC.
  