Published on: 2011-09-30T17:57:38+00:00
Gavin Andresen recently shared his thoughts on making 2 of 3 transactions more useful. He suggested creating a clean pull request, unit tests, and test plan for an "IsStandard" 2-of-3 transaction using either CHECKMULTISIG or groffers proposal. He provided code to send three multisig transactions on testnet, but noted that this code is not intended for mainline bitcoin.In a message dated September 30, 2011, Andresen discussed the possibility of adding more "standard" transaction types in the future. He mentioned that using the prototype for a normal escrow transaction, which involves two out of three parties agreeing on a transaction, is more useful than using (a or b) as an example. He also noted that it is possible to replicate the functionality of (a or b) using the two of three model, but this would be inefficient and require the use of a public known key as one of the roles.It has been clarified that the PULL will not support dispute mediation with 2-of-3. The focus of this pull is on wallet security and backup. There was also a plan to allow CHECKMULTISIG for small numbers of keys, but it has been dropped due to potential problems with transaction volume. However, accepting this does not preclude adding more 'standard' transaction types in the future.A developer named Mike Hearn sent an email discussing the initial support for three new types of transactions. One individual questioned if this meant dispute mediation (2-of-3) would not be supported and if CHECKMULTISIG for small numbers of keys would still be allowed. Mike Hearn strongly supported the full Reverse Polish Notation (RPN) boolean validation, despite it being more difficult to obtain good testing confidence.The latest update adds support for three new types of transactions, including (a and b), (a or b), and (a and b) or c. It is unclear whether this means that dispute mediation (2-of-3) will no longer be supported. Some users had expected the addition of CHECKMULTISIG for a small number of keys, but it is not clear if this functionality has been added with this update.The pull request (#541) submitted to the Bitcoin repository on Github adds initial support for three new types of transactions that enable better wallet security and backup in future versions of Bitcoin. These new transaction types will be relayed and included in blocks, but will not affect the balance or be considered available to spend until the multisig_testing branch is added in the gavinandresen github fork. Careful consideration of potential attacks during development is being discussed on bitcoin-dev.One potential attack involves an attacker with an account and a funding address/key (“a”) at a shared-wallet service, as well as their own address/key (“b”). The pull request aims to avoid issues like double-credit by ensuring that multisignature transactions are not credited or added to the wallet unless the public half of ALL the keys involved are known to the wallet. The private key may not be in the wallet and could be on another device or a deterministic backup master key protected by a passphrase, but the public key must be known and in the wallet.Gavin Andresen hopes to get this into the 0.5 release because it will enable much better wallet security and backup in some future release or alternative client. However, these transaction types need to be relayed and mined before then to make that possible.
Updated on: 2023-08-01T02:31:41.690090+00:00