<oembed><type>rich</type><version>1.0</version><author_name>npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_name><author_url>https://nostr.ae/npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-12-07&#xA;📝 Original message:The Scaling Bitcoin Workshop in HK is just wrapping up. Many fascinating&#xA;proposals were presented. I think this would be a good time to share my&#xA;view of the near term arc for capacity increases in the Bitcoin system. I&#xA;believe we’re in a fantastic place right now and that the community&#xA;is ready to deliver on a clear forward path with a shared vision that&#xA;addresses the needs of the system while upholding its values.&#xA;&#xA;I think it’s important to first clearly express some of the relevant&#xA;principles that I think should guide the ongoing development of the&#xA;Bitcoin system.&#xA;&#xA;Bitcoin is P2P electronic cash that is valuable over legacy systems&#xA;because of the monetary autonomy it brings to its users through&#xA;decentralization. Bitcoin seeks to address the root problem with&#xA;conventional currency: all the trust that&#39;s required to make it work--&#xA;&#xA;-- Not that justified trust is a bad thing, but trust makes systems&#xA;brittle, opaque, and costly to operate. Trust failures result in systemic&#xA;collapses, trust curation creates inequality and monopoly lock-in, and&#xA;naturally arising trust choke-points can be abused to deny access to&#xA;due process. Through the use of cryptographic proof and decentralized&#xA;networks Bitcoin minimizes and replaces these trust costs.&#xA;&#xA;With the available technology, there are fundamental trade-offs between&#xA;scale and decentralization. If the system is too costly people will be&#xA;forced to trust third parties rather than independently enforcing the&#xA;system&#39;s rules. If the Bitcoin blockchain’s resource usage, relative&#xA;to the available technology, is too great, Bitcoin loses its competitive&#xA;advantages compared to legacy systems because validation will be too&#xA;costly (pricing out many users), forcing trust back into the system.&#xA;If capacity is too low and our methods of transacting too inefficient,&#xA;access to the chain for dispute resolution will be too costly, again&#xA;pushing trust back into the system.&#xA;&#xA;Since Bitcoin is an electronic cash, it _isn&#39;t_ a generic database;&#xA;the demand for cheap highly-replicated perpetual storage is unbounded,&#xA;and Bitcoin cannot and will not satisfy that demand for non-ecash&#xA;(non-Bitcoin) usage, and there is no shame in that. Fortunately, Bitcoin&#xA;can interoperate with other systems that address other applications,&#xA;and--with luck and hard work--the Bitcoin system can and will satisfy&#xA;the world&#39;s demand for electronic cash.&#xA;&#xA;Fortunately, a lot of great technology is in the works that make&#xA;navigating the trade-offs easier.&#xA;&#xA;First up: after several years in the making Bitcoin Core has recently&#xA;merged libsecp256k1, which results in a huge increase in signature&#xA;validation performance. Combined with other recent work we&#39;re now getting&#xA;ConnectTip performance 7x higher in 0.12 than in prior versions. This&#xA;has been a long time coming, and without its anticipation and earlier&#xA;work such as headers-first I probably would have been arguing for a&#xA;block size decrease last year.  This improvement in the state of the&#xA;art for widely available production Bitcoin software sets a stage for&#xA;some capacity increases while still catching up on our decentralization&#xA;deficit. This shifts the bottlenecks off of CPU and more strongly onto&#xA;propagation latency and bandwidth.&#xA;&#xA;Versionbits (BIP9) is approaching maturity and will allow the Bitcoin&#xA;network to have multiple in-flight soft-forks. Up until now we’ve had to&#xA;completely serialize soft-fork work, and also had no real way to handle&#xA;a soft-fork that was merged in core but rejected by the network. All&#xA;that is solved in BIP9, which should allow us to pick up the pace of&#xA;improvements in the network. It looks like versionbits will be ready&#xA;for use in the next soft-fork performed on the network.&#xA;&#xA;The next thing is that, at Scaling Bitcoin Hong Kong, Pieter Wuille&#xA;presented on bringing Segregated Witness to Bitcoin. What is proposed&#xA;is a _soft-fork_ that increases Bitcoin&#39;s scalability and capacity by&#xA;reorganizing data in blocks to handle the signatures separately, and in&#xA;doing so takes them outside the scope of the current blocksize limit.&#xA;&#xA;The particular proposal amounts to a 4MB blocksize increase at worst. The&#xA;separation allows new security models, such as skipping downloading data&#xA;you&#39;re not going to check and improved performance for lite clients&#xA;(especially ones with high privacy). The proposal also includes fraud&#xA;proofs which make violations of the Bitcoin system provable with a compact&#xA;proof. This completes the vision of &#34;alerts&#34; described in the &#34;Simplified&#xA;Payment Verification&#34; section of the Bitcoin whitepaper, and would make it&#xA;possible for lite clients to enforce all the rules of the system (under&#xA;a new strong assumption that they&#39;re not partitioned from someone who&#xA;would generate the proofs). The design has numerous other features like&#xA;making further enhancements safer and eliminating signature malleability&#xA;problems. If widely used this proposal gives a 2x capacity increase&#xA;(more if multisig is widely used), but most importantly it makes that&#xA;additional capacity--and future capacity beyond it--safer by increasing&#xA;efficiency and allowing more trade-offs (in particular, you can use much&#xA;less bandwidth in exchange for a strong non-partitioning assumption).&#xA;&#xA;There is a working implementation (though it doesn&#39;t yet have the fraud&#xA;proofs) at https://github.com/sipa/bitcoin/commits/segwit&#xA;&#xA;(Pieter&#39;s talk is at:  transcript:&#xA;http://diyhpl.us/wiki/transcripts/scalingbitcoin/hong-kong/segregated-witness-and-its-impact-on-scalability/&#xA;slides:&#xA;https://prezi.com/lyghixkrguao/segregated-witness-and-deploying-it-for-bitcoin/&#xA;Video: https://www.youtube.com/watch?v=fst1IK_mrng#t=36m )&#xA;&#xA;I had good success deploying an earlier (hard-fork) version of segwit&#xA;in the Elements Alpha sidechain; the soft-fork segwit now proposed&#xA;is a second-generation design. And I think it&#39;s quite reasonable to&#xA;get this deployed in a relatively short time frame. The segwit design&#xA;calls for a future bitcoinj compatible hardfork to further increase its&#xA;efficiency--but it&#39;s not necessary to reap most of the benefits,and that&#xA;means it can happen on its own schedule and in a non-contentious manner.&#xA;&#xA;Going beyond segwit, there has been some considerable activity brewing&#xA;around more efficient block relay.  There is a collection of proposals,&#xA;some stemming from a p2pool-inspired informal sketch of mine and some&#xA;independently invented, called &#34;weak blocks&#34;, &#34;thin blocks&#34; or &#34;soft&#xA;blocks&#34;.  These proposals build on top of efficient relay techniques&#xA;(like the relay network protocol or IBLT) and move virtually all the&#xA;transmission time of a block to before the block is found, eliminating&#xA;size from the orphan race calculation. We already desperately need this&#xA;at the current block sizes. These have not yet been implemented, but&#xA;fortunately the path appears clear. I&#39;ve seen at least one more or less&#xA;complete specification, and I expect to see things running using this in a&#xA;few months. This tool will remove propagation latency from being a problem&#xA;in the absence of strategic behavior by miners.  Better understanding&#xA;their behavior when miners behave strategically is an open question.&#xA;&#xA;Concurrently, there is a lot of activity ongoing related to&#xA;“non-bandwidth” scaling mechanisms. Non-bandwidth scaling mechanisms&#xA;are tools like transaction cut-through and bidirectional payment channels&#xA;which increase Bitcoin’s capacity and speed using clever smart contracts&#xA;rather than increased bandwidth. Critically, these approaches strike right&#xA;at the heart of the capacity vs autotomy trade-off, and may allow us to&#xA;achieve very high capacity and very high decentralization. CLTV (BIP65),&#xA;deployed a month ago and now active on the network, is very useful for&#xA;these techniques (essential for making hold-up refunds work); CSV (BIP68&#xA;/ BIP112) is in the pipeline for merge in core and making good progress&#xA;(and will likely be ready ahead of segwit). Further Bitcoin protocol&#xA;improvements for non-bandwidth scaling are in the works: Many of these&#xA;proposals really want anti-malleability fixes (which would be provided&#xA;by segwit), and there are checksig flag improvements already tendered and&#xA;more being worked on, which would be much easier to deploy with segwit. I&#xA;expect that within six months we could have considerably more features&#xA;ready for deployment to enable these techniques. Even without them I&#xA;believe we’ll be in an acceptable position with respect to capacity&#xA;in the near term, but it’s important to enable them for the future.&#xA;&#xA;(http://diyhpl.us/wiki/transcripts/scalingbitcoin/hong-kong/overview-of-bips-necessary-for-lightning&#xA;is a relevant talk for some of the wanted network features for Lightning,&#xA;a bidirectional payment channel proposal which many parties are working&#xA;on right now; other non-bandwidth improvements discussed in the past&#xA;include transaction cut-through, which I consider a must-read for the&#xA;basic intuition about how transaction capacity can be greater than&#xA;blockchain capacity: https://bitcointalk.org/index.php?topic=281848.0 ,&#xA;though there are many others.)&#xA;&#xA;Further out, there are several proposals related to flex caps or&#xA;incentive-aligned dynamic block size controls based on allowing miners&#xA;to produce larger blocks at some cost. These proposals help preserve&#xA;the alignment of incentives between miners and general node operators,&#xA;and prevent defection between the miners from undermining the fee&#xA;market behavior that will eventually fund security. I think that right&#xA;now capacity is high enough and the needed capacity is low enough that&#xA;we don&#39;t immediately need these proposals, but they will be critically&#xA;important long term. I&#39;m planning to help out and drive towards a more&#xA;concrete direction out of these proposals in the following months.&#xA;&#xA;(Relevant talks include&#xA;http://diyhpl.us/wiki/transcripts/scalingbitcoin/hong-kong/a-flexible-limit-trading-subsidy-for-larger-blocks/&#xA;)&#xA;&#xA;Finally--at some point the capacity increases from the above may not&#xA;be enough.  Delivery on relay improvements, segwit fraud proofs, dynamic&#xA;block size controls, and other advances in technology will reduce the risk&#xA;and therefore controversy around moderate block size increase proposals&#xA;(such as 2/4/8 rescaled to respect segwit&#39;s increase). Bitcoin will&#xA;be able to move forward with these increases when improvements and&#xA;understanding render their risks widely acceptable relative to the&#xA;risks of not deploying them. In Bitcoin Core we should keep patches&#xA;ready to implement them as the need and the will arises, to keep the&#xA;basic software engineering from being the limiting factor.&#xA;&#xA;Our recent and current progress has well positioned the Bitcoin ecosystem&#xA;to handle its current capacity needs. I think the above sets out some&#xA;clear achievable milestones to continue to advance the art in Bitcoin&#xA;capacity while putting us in a good position for further improvement and&#xA;evolution.&#xA;&#xA;TL;DR:  I propose we work immediately towards the segwit 4MB block&#xA;soft-fork which increases capacity and scalability, and recent speedups&#xA;and incoming relay improvements make segwit a reasonable risk. BIP9&#xA;and segwit will also make further improvements easier and faster to&#xA;deploy. We’ll continue to set the stage for non-bandwidth-increase-based&#xA;scaling, while building additional tools that would make bandwidth&#xA;increases safer long term. Further work will prepare Bitcoin for further&#xA;increases, which will become possible when justified, while also providing&#xA;the groundwork to make them justifiable.&#xA;&#xA;Thanks for your time,</html></oembed>