PMv3 CHIP Revised: Version 3 Transactions
PMv3 is a version 3 transaction proposal for Bitcoin Cash.
By addressing two issues with the transaction format, Bitcoin Cash contracts can support cross-contract interfaces, allowing contracts to interact with each other. For details, see PMv3: Build Decentralized Applications on Bitcoin Cash.
The latest revision of the PMv3 CHIP is now available:
Notable Changes
The most notable changes are described below. For details, see the CHIP.
Detached Signatures
The most notable revision is the addition of Detached Signatures
, which offers comprehensive transaction malleability protection.
Detached signatures sign the full transaction (including the contents of inputs), so the unlocking bytecode
of transactions using detached signatures cannot be modified by third parties listening on the network.
While detached signatures are important for Bitcoin Cash contract capabilities (the focus of PMv3), they also offer some very impressive transaction size improvements. Consolidation transactions are able to reuse the same signature across multiple inputs, saving up to 71 bytes per input. In the longer term, detached signatures open a simple upgrade path for implementing general signature aggregation (without another transaction format). This would enable a ~20% reduction in average transaction size across the network.
Thank you to Richard Brady for identifying a malleability vector in the first draft of PMv3. More detail on BCR.
Hashed Witnesses are now Detached Proofs
The "hashed witness" terminology was meant to contrast with Segregated Witness, but "detached proof" is a more intuitive and accurate description.
PMv3 is now a CHIP
The PMv3 proposal now follows the Cash Improvement Proposal format and process. If you're interested in joining as a stakeholder, please contact me.
TL;DR: Summary of Revisions
Detached Signatures
comprehensively solve third-party malleability and enable signature aggregation.- "Hashed Witnesses" have been renamed to
Detached Proofs
. - The PMv3 specification is now a proper CHIP:
CHIP-2021-01-PMv3
.
Feedback and review is appreciated – you can open an issue on GitHub or join the discussion on Bitcoin Cash Research.
For notifications about PMv3 development, please subscribe here.
Thank you to Richard Brady, John Nieri, Tom Zander, and Chris Pacia for questions and feedback leading to this revision.