Wednesday, 31 May 2017

A reminder of the main advantages of SegWit


As a reminder, the reason to support SegWit is because it is clearly the best blocksize limit increase proposal, based on technical merit, not because of who proposed it.SegWit is the fastest and least disruptive onchain capacity increase proposedSegWit will result in an effective onchain capacity increase of c110%, current Bitcoin fees are skyrocketing and a capacity increase is now desperately needed. The methodology used to increase capacity is literally increasing the amount of data per block, so that it is higher than the current 1MB limit. Contrary to some of the misinformation going around, SegWit does not increase capacity by improving efficiency, the only way capacity improves is by increasing the blocksize.SegWit is a faster onchain capacity increase than all other blocksize limit increase proposals. Some may argue that SegWit is slower than a “simple hardfork to 2MB blocks”, but this assumes a faster user upgrade to the “simple 2MB hardfork” client than for the SegWit client, this is a spurious comparison. On a like for like basis (for any given level of user upgrades), SegWit is a faster and larger capacity increase than a "simple hardfork to 2MB".SegWit can provide individual users an almost instant 80% fee reduction, after activation, even if no other wallets upgrade. After SegWit activates, a single user can upgrade to SegWit and their wallet will automatically segregate the witness in their own transactions, no matter what other users do, this will result in 80% lower fees, assuming all else remains equal. This almost instant benefit, is far superior to any other capacity increase proposal.With SegWit, upgraded wallets and non upgraded wallets can seamlessly transact with each other, unlike almost all other blocksize limit increase proposalsIf 51% of miners support SegWit, we will avoid a chainsplit and the creation of a new coin, unlike almost all other blocksize limit increase proposals.Third party transaction malleability fixesUnfortunately due to a bug in Bitcoin, when users send a transaction, anyone on the network can change the transaction ID, which could be the transaction that ends up getting confirmed in the blockchain. This means that if a user receives a Bitcoin transaction, it is often not reliable or safe to forward these funds on to somebody else, before the incoming transaction receives a confirmation. This is a huge problem for the user experience and sometimes results in users waiting around for confirmations, which can take longer nowadays due to full blocks. SegWit fixes this bug, allowing users to send transactions without exposing themselves to this risk. Additional advantages of this fix is that it makes implementing wallet software far easier and makes implementing payment channel technologies like the Lighting Network easier.Fixing the quadratic scaling of sighash operations bug, making a further bocksize limit increase both safer and more likleyUnfortunately, due to another bug in Bitcoin, as transactions gets larger, the amount of hashing required to verify the signatures increases in a quadratic way. For example doubling the size of a transaction can increase the verification time by a factor of 4. SegWit fixes this bug by allowing users to create transactions with linear scaling of sighash operations. Many people in the community oppose a “simple hardfork to 2MB” on the grounds that this could open up an attack vector, where a would be attacker could exploit this bug and produce hard to validate blocks. Fixing this bug therefore makes a further blockszie limit increase after SegWit both safer and more likely.Signing of input values, making Bitcoin easier for hardware devicesSegWit allows users to create transactions where the input value is hashed. This means hardware wallets can spend a transaction without needing a copy of all the input transactions and needing to hash these inputs. This makes hardware wallets much easier to develop and it makes it easier to use Bitcoin on smaller embedded devicesNot requiring wallets to download the signature data to check the transaction hashAfter SegWit, wallets will no longer need to check the signature data to check the transaction hash. This means light wallets can avoid downloading more of the signature data. This improves the scalability of the network and makes further blocksize limit increases safer.Introducing script versioning makes upgrades to increase onchain capacity even further far easierSegWit adds a version number for scripts, this means new opcodes that would have required a hardfork, can now be added by changing the script version. For example more efficient signature schemes like Schnorr signatures can be added, which would further increase onchain capacity. via /r/Bitcoin http://bit.ly/2smxpaW

No comments :

Post a Comment