SegWit For Bitcoin Is Finally Locked In!
Yes, you read that correctly Steemians! Segwit for BTC is finally here! BIP91 will lock in this period and we will officially have SegWit on Bitcoin! Cheers to the BTC and crypto community! Below I attempted to explain some of the issues SegWit was implemented to fix, how it fixes them, and who benefits from this implementation. Enjoy!
The Malleability Issue
For starters, you need to know that each individual BTC transaction is identified with a 64-digit hexadecimal hash called a transaction identifier (TXID). The TXID is based on two inputs: the coins being spent, and who will be able to spend the results of the transaction.
Unfortunately, the way the txid was previously quantified allowed anyone to make minor changes to the transaction that would not change its meaning, but would change the txid. This is called third-party malleability. BIP 62 (dealing with malleability) attempted to address these issues, but was too complicated to implement as consensus checks had been withdrawn.
Before SegWit, users would submit a transaction with a specific txid to the network. After submission, some users would find that a third-party (usually a node on the network relaying your transaction) had modified the transaction slightly. The miner who included your transaction in a block could also be responsible for the txid change. The modification could result in the user's transaction spending the same coins and paying the same addresses, but being confirmed under a completely different txid.
SegWit is able to prevent third-party and scriptSig malleability by allowing Bitcoin users to transfer the malleable parts of the transaction into the transaction witness, which segregates that witness so that changes to the witness do not affect the calculation of the txid.
Who benefits?
- Wallet authors who track spent bitcoins: SegWit makes it easier to monitor the status of your own outgoing transactions. Simply look them up by txid.
- Anyone spending unconfirmed transactions: For example, if Bill pays Jim in transaction 1, and Jim uses that payment to pay Alex in transaction 2, then Bill's payment gets malleated by a third party and confirmed with a different txid. Now transaction 2 is now invalid because of the change in txid and Alex has not been paid. If Jim is trustworthy, he will reissue the payment to Alex; but if he isn’t, he can simply keep those bitcoins for himself. SegWit eliminates this issue.
- All Blockchain users: micropayment channels, and anticipated new smart contracts, become less complicated to design, understand, and monitor.
I hope this post helped some of you better understand the reasoning behind why SegWit was implemented and what it means for BTC users!
Best wishes Steemians,
NV_Trader