lightning-dev
Lightning, the death of BIP62, and Segregated Witness
Posted on: November 19, 2015 08:13 UTC
The Bitcoin Improvement Proposal 62 (BIP62) has been withdrawn, as it seems wise to pursue normalized txid or segregated witness-based solutions instead.
While BIP62 may not solve all cases and is inferior to more fundamental solutions, it was already good enough for certain types of smart contract constructions, such as the Amiko Pay "HTLC emulation" design. However, some important types of malleability cannot be addressed by BIP62, and every new type of complex transaction may require new extra rules. As a result, BIP62 will never be deployed. There are several options from here: ignore malleated transactions as they are non-standard; add a timeout to the anchor which limits the lifetime of the channel and still means if it does happen you have to wait for the timeout; propose a reduced BIP62 which only protects P2PKH for a specific transaction version; or take a leap of faith and assume Segregated Witness fixes all malleability. Rusty Russell, who designed a lightning variant which used only non-experimental, in-planning BIPs, chose option #4. While still pre-BIP, Pieter Wuille is working on a prototype of Segregated Witness now, and other parts of the lightning code become significantly simpler if malleability is ignored. It's the right thing for Bitcoin, and all smart contract systems want this. This result is NOP for lightning in the short term; assuming SW is the same as pretending malleability doesn't exist. But if malleability support needs to be added later, it's going to be painful since handling it correctly in all the places it's missing will be hard.