<oembed><type>rich</type><version>1.0</version><author_name>npub1fx98zxt3lzspjs5f4msr0fxysx5euucm29ghysryju7vpc9j0jzqtcl2d8</author_name><author_url>https://nostr.ae/npub1fx98zxt3lzspjs5f4msr0fxysx5euucm29ghysryju7vpc9j0jzqtcl2d8</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-12-11&#xA;📝 Original message:On Dec 9, 2015 5:40 PM, &#34;Gavin Andresen&#34; &lt;gavinandresen at gmail.com&gt; wrote:&#xA;&gt;&#xA;&gt; On Wed, Dec 9, 2015 at 3:03 AM, Gregory Maxwell via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&gt;&gt;&#xA;&gt;&gt; I think it would be logical to do as part of a hardfork that moved&#xA;&gt;&gt; commitments generally; e.g. a better position for merged mining (such&#xA;&gt;&gt; a hardfork was suggested in 2010 as something that could be done if&#xA;&gt;&gt; merged mining was used), room for commitments to additional block&#xA;&gt;&gt; back-references for compact SPV proofs, and/or UTXO set commitments.&#xA;&gt;&gt; Part of the reason to not do it now is that the requirements for the&#xA;&gt;&gt; other things that would be there are not yet well defined. For these&#xA;&gt;&gt; other applications, the additional overhead is actually fairly&#xA;&gt;&gt; meaningful; unlike the fraud proofs.&#xA;&gt;&#xA;&gt;&#xA;&gt; So just design ahead for those future uses. Make the merkle tree:&#xA;&gt;&#xA;&gt;&#xA;&gt;              root_in_block_header&#xA;&gt;                      /      \&#xA;&gt;   tx_data_root      other_root&#xA;&gt;                                /       \&#xA;&gt;         segwitness_root     reserved_for_future_use_root&#xA;&#xA;This is basically what I meant by&#xA;&#xA;struct hashRootStruct&#xA;{&#xA;uint256 hashMerkleRoot;&#xA;uint256 hashWitnessesRoot;&#xA;uint256 hashextendedHeader;&#xA;}&#xA;&#xA;but my design doesn&#39;t calculate other_root as it appears in your tree (is&#xA;not necessary).&#xA;&#xA;Since stop requiring bip34 (height in coinbase) is also a hardfork (and a&#xA;trivial one) I suggested to move it at the same time. But thinking more&#xA;about it, since BIP34 also elegantly solves BIP30, I would keep the height&#xA;in the coinbase (even if we move it to the extented header tree as well for&#xA;convenience).&#xA;That should be able to include future consensus-enforced commitments (extra&#xA;back-refs for compact proofs, txo/utxo commitments, etc) or non-consensus&#xA;data (merged mining data, miner-published data).&#xA;Greg Maxwell suggested to move those later and I answered fair enough. But&#xA;thinking more about it, if the extra commitments field is extensible, we&#xA;don&#39;t need to move anything now, and therefore we don&#39;t need for those&#xA;designs (extra back-refs for compact proofs, txo/utxo commitments, etc) to&#xA;be ready to deploy a hardfork segregated witness: you just need to make&#xA;sure that your format is extensible via softfork in the future.&#xA;&#xA;I&#39;m therefore back to the &#34;let&#39;s better deploy segregated witness as a&#xA;hardfork&#34; position.&#xA;The change required to the softfork segregated witnesses implementation&#xA;would be relatively small.&#xA;&#xA;Another option would be to deploy both parts (sw and the movement from the&#xA;coinbase to the extra header) at the same time but with different&#xA;activation conditions, for example:&#xA;&#xA;- For sw: deploy as soon as possible with bip9.&#xA;- For the hardfork codebase to extra header movement: 1 year grace + bip9&#xA;for later miner upgrade confirmation.&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20151211/2a7a0a4a/attachment.html&gt;</html></oembed>