<oembed><type>rich</type><version>1.0</version><author_name>npub1kf0ppcjaguxekg24yx6smgxlu73qn0k8lm0t2wrqc0scpl7u3sgsmf3f58</author_name><author_url>https://nostr.ae/npub1kf0ppcjaguxekg24yx6smgxlu73qn0k8lm0t2wrqc0scpl7u3sgsmf3f58</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-12-16&#xA;📝 Original message:1. Summary&#xA;&#xA;Segregated Witness (SegWitness, SW) is being presented in the context of&#xA;Scaling Bitcoin.  It has useful attributes, notably addressing a major&#xA;malleability vector, but is not a short term scaling solution.&#xA;&#xA;&#xA;2. Definitions&#xA;&#xA;Import Fee Event, ECE, TFM, FFM from previous email.&#xA;&#xA;Older clients - Any software not upgraded to SW&#xA;&#xA;Newer clients - Upgraded, SW aware software&#xA;&#xA;&#xA;Block size - refers to the core block economic resource limited by&#xA;MAX_BLOCK_SIZE.  Witness data (or extension block data) is excluded.&#xA;Requires a hard fork to change.&#xA;&#xA;Core block - Current bitcoin block, with upper bound MAX_BLOCK_SIZE.  Not&#xA;changed by SW.&#xA;&#xA;&#xA;Extended transaction - Newer, upgraded version of transaction data format.&#xA;&#xA;Extended block - Newer, upgraded version of block data format.&#xA;&#xA;&#xA;EBS - Extended block size.  Block size seen by newer clients.&#xA;&#xA;&#xA;3. Context of analysis&#xA;&#xA;One proposal presents SW *in lieu of* a hard fork block size increase.&#xA;This email focuses directly on that.&#xA;&#xA;Useful features outside block size context, such as anti-malleability or&#xA;fraud proof features, are not covered in depth.&#xA;&#xA;&#xA;4.1.  Observations on data structure formats and views&#xA;&#xA;SW creates two *views* of each transaction and block.  SW has blocks and&#xA;extended blocks.  Similarly, there exists transactions and extended&#xA;transactions.&#xA;&#xA;This view is rendered to clients depending on compatibility level.  Newer&#xA;clients see extended blocks and extended transactions.  Older clients see&#xA;blocks (limit 1M), and do not see extended blocks.  Older clients see&#xA;upgraded transactions as unsigned, anyone-can-pay transactions.&#xA;&#xA;Each extended transaction exists in two states, one unsigned and one&#xA;signed, each of which passes validation as a valid bitcoin transaction.&#xA;&#xA;&#xA;4.2.  Observations on behavior of older transaction creation&#xA;&#xA;Transactions created by older clients will not use the extended transaction&#xA;format.  All data is stored the standard 1M block as today.&#xA;&#xA;&#xA;4.3.  Observations on new block economic model&#xA;&#xA;SW complicates block economics by creating two separate, supply limited&#xA;resources.&#xA;&#xA;The core block economic resource is heavily contended.  Older clients use&#xA;core blocks exclusively.  Newer clients use core blocks more&#xA;conservatively, storing as much data as possible in extended blocks.&#xA;&#xA;The extended block economic resource is less heavily contended, though that&#xA;of course grows over time as clients upgrade.&#xA;&#xA;Because core blocks are more heavily contended, it is presumed that older&#xA;clients will pay a higher fee than newer clients (subject to elasticity&#xA;etc.).&#xA;&#xA;&#xA;5.1.  Problem:  Pace of roll-out will be slow - Whole Ecosystem must be&#xA;considered.&#xA;&#xA;The current apparent proposal is to roll out Segregated Witness as a soft&#xA;fork, and keep block size at 1M.&#xA;&#xA;The roll-out pace cannot simply be judged by soft fork speed - which is&#xA;months at best.  Analysis must the layers above:  Updating bitcoin-core&#xA;(JS) and bitcoinj (Java), and then the timelines to roll out those updates&#xA;to apps, and then the timeline to update those apps to create extended&#xA;transactions.&#xA;&#xA;Overall, wallet software and programmer libraries must be upgraded to make&#xA;use of this new format, adding many more months (12+ in some stacks) to the&#xA;roll out timeline.  In the meantime, clients continue to contend entirely&#xA;for core block space.&#xA;&#xA;&#xA;5.2.  Problem:   Hard fork to bigger block size Just Works(tm) with most&#xA;software, unlike SW.&#xA;&#xA;A simple hard fork such as BIP 102 is automatically compatible with the&#xA;vast range of today&#39;s ecosystem software.&#xA;&#xA;SW requires merchants to upgrade almost immediately, requires wallet and&#xA;other peripheral software upgrades to make use of.  Other updates are&#xA;opt-in and occur more slowly.  BIP 70 processors need some updates.&#xA;&#xA;The number of LOC that must change for BIP 102 is very small, and the&#xA;problem domain well known, versus SW.&#xA;&#xA;&#xA;5.3.  Problem:   Due to pace, Fee Event not forestalled.&#xA;&#xA;Even presuming SW is merged into Bitcoin Core tomorrow, this does not&#xA;address the risk of a Fee Event and associated Economic Change in the&#xA;coming months.&#xA;&#xA;&#xA;5.4.  Problem:   More complex economic policy, new game theory, new bidding&#xA;structure risks.&#xA;&#xA;Splitting blocks into two pieces, each with separate and distinct behaviors&#xA;and resource values, creates *two fee markets.*&#xA;&#xA;Having two pricing strata within each block has certainly feasible - that&#xA;is the current mining policy of (1) fee/KB followed by (2) priority/age.&#xA;&#xA;Valuable or not - e.g. incentivizing older clients to upgrade - the fact&#xA;remains that SW creates a more-complex bidding structure by creating a&#xA;second economic resource.&#xA;&#xA;*This is clearly a change to a new economic policy* with standard risks&#xA;associated with that.  Will that induce an Economic Change Event (see def&#xA;last email)?  *Unlikely*, due to slow rollout pace.&#xA;&#xA;&#xA;5.5.  Problem:  Current SW mining algorithm needs improvement&#xA;&#xA;Current SW block template maker does a reasonable job, but makes some naive&#xA;assumptions about the fee market across an entire extended block.  This is&#xA;a mismatch with the economic reality (just described).&#xA;&#xA;5.6.   Problem:  New, under-analyzed attack surfaces&#xA;&#xA;Less significant and fundamental but still worth noting.&#xA;&#xA;This is not a fundamental SW problem, but simply standard complexity risk&#xA;factors:  splitting the signatures away from transactions, and creating a&#xA;new apparently-unsigned version of the transaction opens the possibility of&#xA;some network attacks which cause some clients to degrade down from extended&#xA;block to core block mode temporarily.&#xA;&#xA;There is a chance of a failure mode that fools older clients into thinking&#xA;fraudulent data is valid (judgement: unlikely vis hashpower but not&#xA;impossible)&#xA;&#xA;6. Conclusions and recommendations&#xA;&#xA;It seems unlikely that SW provides scaling in the short term, and SW&#xA;introduces new economics complexities.&#xA;&#xA;A &#34;short term bump&#34; hard fork block size increase addresses economic and&#xA;ecosystem risks that SW does not.&#xA;&#xA;Bump + SW should proceed in parallel, independent tracks, as orthogonal&#xA;issues.&#xA;&#xA;&#xA;7. Appendix - Other SW comments&#xA;&#xA;Hard forks provide much stronger validation, and ensure the network&#xA;operates at a fully trustless level.&#xA;&#xA;SW hard fork is preferred, versus soft fork.  Soft forking SW places a huge&#xA;amount of trust on miners to validate transaction signatures, versus the&#xA;rest of the network, as the network slowly upgrades to newer clients.&#xA;&#xA;An SW hard fork could also add several zero-filled placeholders in a merkle&#xA;tree for future use.&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20151216/1c334c8f/attachment-0001.html&gt;</html></oembed>