Author: Billy Tetrud 2022-05-08 17:41:07
Published on: 2022-05-08T17:41:07+00:00
Salvatore Ingala, a Bitcoin developer, has proposed a new language called "wallet policies" that could help address challenges related to implementing descriptors and miniscript support in hardware wallets. The proposed language aims to minimize the size of the information displayed on-screen for better user experience while ensuring security. Hardware wallets have limited RAM and computational power, and may not be able to import additional private keys. Additionally, the limited size of the screen might affect what design choices are available, making minimizing the size of information shown on-screen essential for good user experience.Wallet policies propose a registration flow to register a wallet policy into the hardware wallet before it is used for the first time. This helps guarantee that the user knows precisely what "policy" is being used to spend the funds, making it impossible for an attacker to surreptitiously modify the policy and steal or burn the user's funds.The proposed language purposely targets only a stricter subset of the output descriptors language and attempts to generalize in the most natural way the approach that is already used for single-signature accounts or multisignature setups. Supporting only a reduced feature set compared to output descriptors helps in implementations, especially on hardware wallets, while attempting to capture all the common use cases.The document discusses the formal definition and implementation guidelines for wallet policies, which are composed of a wallet descriptor template and a vector of key information items. Key information items consist of a serialized extended public key (xpub) or a hex-encoded pubkey and optional derivation paths.The document also provides implementation guidelines for wallet policies, recommending that implementations clearly document limitations, avoid key reuse among different wallet accounts, and put great care into a process for backing up a wallet policy.Finally, the document includes examples of wallet descriptor templates for various use cases, including native segwit accounts, taproot BIP86 accounts, native segwit 2-of-3 accounts, and miniscripts. It also includes references to Output Script Descriptors, as well as several BIPs related to Bitcoin.
Updated on: 2023-06-15T20:21:16.590352+00:00