From 5f9c7b0abd080862d1fa0b410996eced0884a96f Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Mon, 17 Oct 2016 13:52:20 -0400 Subject: [PATCH 1/3] Release notes: add info about segwit and null dummy soft forks [no ci] --- doc/release-notes.md | 82 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 4 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 3d83be964..609fd6def 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,6 +1,6 @@ -Bitcoin Core version 0.13.x is now available from: +Bitcoin Core version 0.13.1 is now available from: - + This is a new major version release, including new features, various bugfixes and performance improvements, as well as updated translations. @@ -38,8 +38,82 @@ report issues about Windows XP to the issue tracker. Notable changes =============== -Example item --------------- +Segregated witness soft fork +---------------------------- + +Segregated witness (segwit) is a soft fork that, if activated, will +allow transaction-producing software to separate (segregate) transaction +signatures (witnesses) from the rest of the data in a transaction, and +to allow miners to place those witnesses outside of the traditional +block structure. This provides two immediate benefits: + +- **Elimination of malleability:** Segregating the witness allows both + existing software and upgraded software that receives transactions to + calculate the transaction identifier (txid) of segwit-using + transactions without referencing the witness. This solves all known + cases of unwanted third-party transaction malleability, which is a + problem that makes programming Bitcoin wallet software more difficult + and which seriously complicates the design of smart contracts for + Bitcoin. + +- **Capacity increase:** Moving witness data outside of the traditional + block structure (but still inside a new-style block structure) means + new-style blocks can hold more data than older-style blocks, allowing + a modest increase to the amount of transaction data that can fit in a + block. + +Segwit also simplifies the ability to add new features to Bitcoin and +improves the efficiency of full nodes, which will help provide long-term +benefits to Bitcoin users. + +Activation for the segwit soft fork is being managed using BIP9 versionbits. +The earliest activation date is set to 15 November 2016 (UTC) and +its versionbit is bit 1. + +For more information about segwit, please see the [segwit FAQ][], the +[segwit wallet developers guide][] or BIPs [141][BIP141], [143][BIP143], +[144][BIP144], and [145][BIP145]. If you're a miner or mining pool +operator, please see the [versionbits FAQ][] for information about +signaling support for a soft fork. + +[Segwit FAQ]: https://bitcoincore.org/en/2016/01/26/segwit-benefits/ +[segwit wallet developers guide]: https://bitcoincore.org/en/segwit_wallet_dev/ +[BIP141]: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki +[BIP143]: https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki +[BIP144]: https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki +[BIP145]: https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki +[versionbits FAQ]: https://bitcoincore.org/en/2016/06/08/version-bits-miners-faq/ + + +Null dummy soft fork +------------------- + +Combined with the segwit soft fork is a soft fork that turns a +long-existing network relay policy into a consensus rule. The +`OP_CHECKMULTISIG` and `OP_CHECKMULTISIGVERIFY` opcodes consume an extra +stack element ("dummy element") after signature validation. The dummy +element is not inspected in any manner, and could be replaced by any +value without invalidating the script. + +Because any value can be used for this dummy element, it's possible for +a third-party to insert data into other people's transactions, changing +the transaction's txid (called transaction malleability) and possibly +causing other problems. + +Since Bitcoin Core 0.10.0, nodes have defaulted to only relaying and +mining transactions whose dummy element was a null value (0x00, also +called OP_0). The null dummy soft fork turns this relay rule into a +consensus rule both for non-segwit transactions and segwit transactions, +so that this method of mutating transactions is permanently eliminated +from the network. + +Signaling for the null dummy soft fork is done by signaling support +for segwit, and the null dummy soft fork will activate at the same time +as segwit. + +For more information, please see [BIP147][]. + +[BIP147]: https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki Low-level RPC changes --------------------- From 2de93f0a9bf244d23aa9ebbea99c412d6de82473 Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Mon, 17 Oct 2016 14:05:21 -0400 Subject: [PATCH 2/3] Relase notes: correct segwit activation point --- doc/release-notes.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 609fd6def..55c764d7c 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -66,9 +66,12 @@ Segwit also simplifies the ability to add new features to Bitcoin and improves the efficiency of full nodes, which will help provide long-term benefits to Bitcoin users. -Activation for the segwit soft fork is being managed using BIP9 versionbits. -The earliest activation date is set to 15 November 2016 (UTC) and -its versionbit is bit 1. +Activation for the segwit soft fork is being managed using BIP9 +versionbits. Segwit's version bit is bit 1, and nodes will begin +tracking which blocks signal support for segwit on 15 November 2016 +(UTC). If 95% of blocks within a 2,016-block retarget period (about two +weeks) signal support for segwit, the soft fork will be locked in. +After another 2,016 blocks, segwit will activate. For more information about segwit, please see the [segwit FAQ][], the [segwit wallet developers guide][] or BIPs [141][BIP141], [143][BIP143], From bf86073e45b475c37bc250c03d1f05a18fc9a190 Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Mon, 17 Oct 2016 14:14:14 -0400 Subject: [PATCH 3/3] Release notes: correct segwit signalling period start conditions [ci skip] --- doc/release-notes.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 55c764d7c..d107f305d 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -68,10 +68,11 @@ benefits to Bitcoin users. Activation for the segwit soft fork is being managed using BIP9 versionbits. Segwit's version bit is bit 1, and nodes will begin -tracking which blocks signal support for segwit on 15 November 2016 -(UTC). If 95% of blocks within a 2,016-block retarget period (about two -weeks) signal support for segwit, the soft fork will be locked in. -After another 2,016 blocks, segwit will activate. +tracking which blocks signal support for segwit at the beginning of the +first retarget period after segwit's start date of 15 November 2016. If +95% of blocks within a 2,016-block retarget period (about two weeks) +signal support for segwit, the soft fork will be locked in. After +another 2,016 blocks, segwit will activate. For more information about segwit, please see the [segwit FAQ][], the [segwit wallet developers guide][] or BIPs [141][BIP141], [143][BIP143],