Published on: 2021-09-09T01:04:53+00:00
Jeremy Rubin has proposed a patch to fix a flaw in the Sequence lock implementation related to upgradability. The flaw is that the current mempool policies signaling are not separated from consensus data, which can cause problems for L2 nodes and counterparties who want to update their mempool policies non-interactively. Jeremy suggests introducing a new field to signal policy through p2p packages, but notes that this could be vulnerable to tampering by malicious peers.The discussion also revolves around the implications of taking back the `nSequence` field for consensus-semantic sounds. It is argued that this could deprive the application-layer from a discrete, zero-cost payload, while increasing the price of such applications if they still relay application-specific data through the p2p network. Different types of policy deployments are distinguished: loosening changes, tightening changes, and new feature introductions. Loosening changes do not require much ecosystem coordination, whereas flag day activations might make sense for tightening changes to create a higher level of commitment by the base layer software.Regarding the proposed policy change in #22871, the suggestion is to deploy full-rbf first, give time for higher applications to free up the `nSequence` field, and then start discouraging its usage. The user warns against reversing the process and asking for Bitcoin applications/higher layers to update first, as it could result in never making the change. Introducing discouragement waivers would move away from the policy design principle of separating mempool policies signaling from consensus data.In addition to Jeremy's proposed patch, other discussions revolve around using tx.version=2 for new nSequence rules and whether transactions with a version less than 2 are supported. There is also a discussion about the sequence values used by wallet implementations and whether any numbers besides 0xfffffffd are expected to be broadcastable with the DISABLE flag set. The advantages of using 0xfffffffd versus just 0 are debated, and the consensus on common usage is unclear.Overall, Jeremy Rubin's patch aims to fix a flaw in the Sequence lock implementation related to upgradability. The proposal includes separating mempool policies signaling from consensus data, introducing a new field for policy signaling through p2p packages, and deploying changes in a phased manner to ensure smooth policy deployment without disrupting existing applications.
Updated on: 2023-08-02T04:40:16.815145+00:00