Author: Erland Lewin 2016-11-29 20:56:45
Published on: 2016-11-29T20:56:45+00:00
This proposal describes a consistent way to create "Boolean addresses" which can be redeemed by an arbitrary set of keys and multi-signatures combined with logical and/or operations. It aims to standardize these addresses, allowing interoperability for wallet software to create, sign, and share signature requests for such addresses. A Boolean address is described as a tree starting at a root node, where a node can be an "and" operation, an "or" operation, a public key, a multisig operation n-of-m with a list of public keys or a CHECKLOCKTIMEVERIFY operation. The implementation will describe a single well-defined way to generate a P2SH script from a given boolean address tree. For instance, corporations that have accounts that can be spent by the CEO or board members using their keys can use this proposal to allow signatures by "A or (2 of 4 of B, C, D, E)." Similarly, Alice can redeem her address by "A or (B and 1-of-3 of C, D, E)" in case she loses her key, or her cloud wallet key is compromised or paper wallets C, D, or E are stolen. In this case, a value specifying which or-subnode is signed followed by the signatures for that node will consist of signing an "or"- branch of the tree. In conclusion, this proposal provides a consistent way to create Boolean addresses that can be redeemed by an arbitrary set of keys and multi-signatures combined with logical and/or operations. Its implementation will describe a single well-defined way to generate a P2SH script from a given boolean address tree and detail how spending transactions are to be signed.
Updated on: 2023-06-11T20:42:06.005662+00:00