<oembed><type>rich</type><version>1.0</version><author_name>Jameson Lopp [ARCHIVE] (npub1gh…akqmn)</author_name><author_url>https://nostr.ae/npub1ghgfr3aumwuxwnwghywxpaejxpf6k9pjcnyg9lfdnztlu5pwa0ksyakqmn</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-12-16&#xA;📝 Original message:On Wed, Dec 16, 2015 at 12:50 PM, Matt Corallo via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; A large part of your argument is that SW will take longer to deploy than a&#xA;&gt; hard fork, but I completely disagree. Though I do not agree with some&#xA;&gt; people claiming we can deploy SW significantly faster than a hard fork,&#xA;&gt; once the code is ready (probably a six month affair) we can get it deployed&#xA;&gt; very quickly. It&#39;s true the ecosystem may take some time to upgrade, but I&#xA;&gt; see that as a feature, not a bug - we can build up some fee pressure with&#xA;&gt; an immediate release valve available for people to use if they want to pay&#xA;&gt; fewer fees.&#xA;&gt;&#xA;&gt; On the other hand, a hard fork, while simpler for the ecosystem to upgrade&#xA;&gt; to, is a 1-2 year affair (after the code is shipped, so at least 1.5-2.5&#xA;&gt; from today if we all put off heads down and work). One thing that has&#xA;&gt; concerned me greatly through this whole debate is how quickly people seem&#xA;&gt; to think we can roll out a hard fork. Go look at the distribution of node&#xA;&gt; versions on the network today and work backwards to get nearly every node&#xA;&gt; upgraded... Even with a year between fork-version-release and&#xA;&gt; fork-activation, we&#39;d still kill a bunch of nodes and instead of reducing&#xA;&gt; their security model, lead them to be outright robbed.&#xA;&gt;&#xA;&gt;&#xA;Over a year seems to be an extraordinarily long time frame is for deploying&#xA;a hard fork. It looks like &lt;https://bitnodes.21.co/dashboard/?days=365&gt; 75%&#xA;of reachable nodes have upgraded in the past 6 months while as much as 25%&#xA;may not have been upgraded in over a year. However, viewing historical&#xA;stats of version upgrades doesn&#39;t seem to be an appropriate comparison&#xA;because node operators have never been faced with the same incentive to&#xA;upgrade. We can point to unintentional forks in the past that have been&#xA;resolved fairly quickly by reaching out to miners, but it&#39;s also a poor&#xA;comparison. Unfortunately, we have no way of knowing what percentage of&#xA;nodes are economically important - a great deal of them may be running and&#xA;not even be used by the operators.&#xA;&#xA;Perhaps it would be better if we were to formalize the expectations for&#xA;full node operators, but it seems to me that node operators have a&#xA;responsibility to keep themselves informed and decide when it is&#xA;appropriate to update their software. I&#39;m not so sure that it&#39;s the rest of&#xA;the ecosystem&#39;s responsibility to wait around for laggards.&#xA;&#xA;- Jameson&#xA;&#xA;On December 16, 2015 12:38:30 PM PST, Jeff Garzik via bitcoin-dev &lt;&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 1. Summary&#xA;&gt;&gt;&#xA;&gt;&gt; Segregated Witness (SegWitness, SW) is being presented in the context of&#xA;&gt;&gt; Scaling Bitcoin.  It has useful attributes, notably addressing a major&#xA;&gt;&gt; malleability vector, but is not a short term scaling solution.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 2. Definitions&#xA;&gt;&gt;&#xA;&gt;&gt; Import Fee Event, ECE, TFM, FFM from previous email.&#xA;&gt;&gt;&#xA;&gt;&gt; Older clients - Any software not upgraded to SW&#xA;&gt;&gt;&#xA;&gt;&gt; Newer clients - Upgraded, SW aware software&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; Block size - refers to the core block economic resource limit ed by&#xA;&gt;&gt; MAX_BLOCK_SIZE.  Witness data (or extension block data) is excluded.&#xA;&gt;&gt; Requires a hard fork to change.&#xA;&gt;&gt;&#xA;&gt;&gt; Core block - Current bitcoin block, with upper bound MAX_BLOCK_SIZE.  Not&#xA;&gt;&gt; changed by SW.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; Extended transaction - Newer, upgraded version of transaction data format.&#xA;&gt;&gt;&#xA;&gt;&gt; Extended block - Newer, upgraded version of block data format.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; EBS - Extended block size.  Block size seen by newer clients.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 3. Context of analysis&#xA;&gt;&gt;&#xA;&gt;&gt; One proposal presents SW *in lieu of* a hard fork block size increase.&#xA;&gt;&gt; This email focuses directly on that.&#xA;&gt;&gt;&#xA;&gt;&gt; Useful features outside block size context, such as anti-malleability or&#xA;&gt;&gt; fraud proof features, are not covered in depth.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 4.1.  Observations on data structure formats and views&#xA;&gt;&gt;&#xA;&gt;&gt; SW creates two *views* of each transaction and block.  SW has blocks and&#xA;&gt;&gt; extended blocks.  Similarly, there exists transactions and extended&#xA;&gt;&gt; transactions.&#xA;&gt;&gt;&#xA;&gt;&gt; This view is rendered to clients depending on compatibility level.  Newer&#xA;&gt;&gt; clients see extended blocks and extended transactions.  Older clients see&#xA;&gt;&gt; blocks (limit 1M), and do not see extended blocks.  Older clients see&#xA;&gt;&gt; upgraded transactions as unsigned, anyone-can-pay transactions.&#xA;&gt;&gt;&#xA;&gt;&gt; Each extended transaction exists in two states, one unsigned and one&#xA;&gt;&gt; signed, each of which passes validation as a valid bitcoin transaction.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 4.2.  Observations on behavior of older transaction creation&#xA;&gt;&gt;&#xA;&gt;&gt; Transactions created by older clients will not use the extended&#xA;&gt;&gt; transaction format.  All data is stored the standard 1M block as today.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 4.3.  Observations on new block economic model&#xA;&gt;&gt;&#xA;&gt;&gt; SW complicates block economics by creating two separate, supply limited&#xA;&gt;&gt; resources.&#xA;&gt;&gt;&#xA;&gt;&gt; The core block economic resource is heavily contended.  Older clients use&#xA;&gt;&gt; core blocks exclusively.  Newer clients use core block s more&#xA;&gt;&gt; conservatively, storing as much data as possible in extended blocks.&#xA;&gt;&gt;&#xA;&gt;&gt; The extended block economic resource is less heavily contended, though&#xA;&gt;&gt; that of course grows over time as clients upgrade.&#xA;&gt;&gt;&#xA;&gt;&gt; Because core blocks are more heavily contended, it is presumed that older&#xA;&gt;&gt; clients will pay a higher fee than newer clients (subject to elasticity&#xA;&gt;&gt; etc.).&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 5.1.  Problem:  Pace of roll-out will be slow - Whole Ecosystem must be&#xA;&gt;&gt; considered.&#xA;&gt;&gt;&#xA;&gt;&gt; The current apparent proposal is to roll out Segregated Witness as a soft&#xA;&gt;&gt; fork, and keep block size at 1M.&#xA;&gt;&gt;&#xA;&gt;&gt; The roll-out pace cannot simply be judged by soft fork speed - which is&#xA;&gt;&gt; months at best.  Analysis must the layers above:  Updating bitcoin-core&#xA;&gt;&gt; (JS) and bitcoinj (Java), and then the timelines to roll out those updates&#xA;&gt;&gt; to apps, and then the timeline to update those apps to create extended&#xA;&gt;&gt; transactions.&#xA;&gt;&gt;&#xA;&gt;&gt; Overall, wallet software and programmer libraries must be upgraded to&#xA;&gt;&gt; make use of this new format, adding many more months (12+ in some stacks)&#xA;&gt;&gt; to the roll out timeline.  In the meantime, clients continue to contend&#xA;&gt;&gt; entirely for core block space.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 5.2.  Problem:   Hard fork to bigger block size Just Works(tm) with most&#xA;&gt;&gt; software, unlike SW.&#xA;&gt;&gt;&#xA;&gt;&gt; A simple hard fork such as BIP 102 is automatically compatible with the&#xA;&gt;&gt; vast range of today&#39;s ecosystem software.&#xA;&gt;&gt;&#xA;&gt;&gt; SW requires merchants to upgrade almost immediately, requires wallet and&#xA;&gt;&gt; other peripheral software upgrades to make use of.  Other updates are&#xA;&gt;&gt; opt-in and occur more slowly.  BIP 70 processors need some updates.&#xA;&gt;&gt;&#xA;&gt;&gt; The number of LOC that must change for BIP 102 is very small, and the&#xA;&gt;&gt; problem domain well known, versus SW.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 5.3.  Problem:   Due to pace, Fee Event not forestalled.&#xA;&gt;&gt;&#xA;&gt;&gt; Even presuming SW is merged into Bitcoin Core tomorrow, this does not&#xA;&gt;&gt; address the risk of a Fee Event and associated Economic Change in the&#xA;&gt;&gt; coming months.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 5.4.  Problem:   More complex economic policy, new game theory, new&#xA;&gt;&gt; bidding structure risks.&#xA;&gt;&gt;&#xA;&gt;&gt; Splitting blocks into two pieces, each with separate and distinct&#xA;&gt;&gt; behaviors and resource values, creates *two fee markets.*&#xA;&gt;&gt;&#xA;&gt;&gt; Having two pricing strata within each block has certainly feasible - that&#xA;&gt;&gt; is the current mining policy of (1) fee/KB followed by (2) priority/age.&#xA;&gt;&gt;&#xA;&gt;&gt; Valuable or not - e.g. incentivizing older clients to upgrade - the fact&#xA;&gt;&gt; remains that SW creates a more-complex bidding structure by creating a&#xA;&gt;&gt; second economic resource.&#xA;&gt;&gt;&#xA;&gt;&gt; *This is clearly a change to a new economic policy* with standard risks&#xA;&gt;&gt; associated with that.  Will that induce an Economic C hange Event (see def&#xA;&gt;&gt; last email)?  *Unlikely*, due to slow rollout pace.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 5.5.  Problem:  Current SW mining algorithm needs improvement&#xA;&gt;&gt;&#xA;&gt;&gt; Current SW block template maker does a reasonable job, but makes some&#xA;&gt;&gt; naive assumptions about the fee market across an entire extended block.&#xA;&gt;&gt; This is a mismatch with the economic reality (just described).&#xA;&gt;&gt;&#xA;&gt;&gt; 5.6.   Problem:  New, under-analyzed attack surfaces&#xA;&gt;&gt;&#xA;&gt;&gt; Less significant and fundamental but still worth noting.&#xA;&gt;&gt;&#xA;&gt;&gt; This is not a fundamental SW problem, but simply standard complexity risk&#xA;&gt;&gt; factors:  splitting the signatures away from transactions, and creating a&#xA;&gt;&gt; new apparently-unsigned version of the transaction opens t he possibility&#xA;&gt;&gt; of some network attacks which cause some clients to degrade down from&#xA;&gt;&gt; extended block to core block mode temporarily.&#xA;&gt;&gt;&#xA;&gt;&gt; There is a chance of a failure mode that fools older clients into&#xA;&gt;&gt; thinking fraudulent data is valid (judgement: unlikely vis hashpower but&#xA;&gt;&gt; not impossible)&#xA;&gt;&gt;&#xA;&gt;&gt; 6. Conclusions and recommendations&#xA;&gt;&gt;&#xA;&gt;&gt; It seems unlikely that SW provides scaling in the short term, and SW&#xA;&gt;&gt; introduces new economics complexities.&#xA;&gt;&gt;&#xA;&gt;&gt; A &#34;short term bump&#34; hard fork block size increase addresses economic and&#xA;&gt;&gt; ecosystem risks that SW does not.&#xA;&gt;&gt;&#xA;&gt;&gt; Bump + SW should proce ed in parallel, independent tracks, as orthogonal&#xA;&gt;&gt; issues.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; 7. Appendix - Other SW comments&#xA;&gt;&gt;&#xA;&gt;&gt; Hard forks provide much stronger validation, and ensure the network&#xA;&gt;&gt; operates at a fully trustless level.&#xA;&gt;&gt;&#xA;&gt;&gt; SW hard fork is preferred, versus soft fork.  Soft forking SW places a&#xA;&gt;&gt; huge amount of trust on miners to validate transaction signatures, versus&#xA;&gt;&gt; the rest of the network, as the network slowly upgrades to newer clients.&#xA;&gt;&gt;&#xA;&gt;&gt; An SW hard fork could also add several zero-filled placeholders in a&#xA;&gt;&gt; merkle tree for future use.&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt;&gt; ------------------------------&#xA;&gt;&gt;&#xA;&gt;&gt; bitcoin-dev mailing list&#xA;&gt;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&gt;&#xA;&gt;&gt;&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20151216/3bfa78f6/attachment-0001.html&gt;</html></oembed>