I am not a technical person. So I am still confused about SegWit. I have still no clue what actually it is. The only thing I know that it helped the BTC value rise. Can anyone describe easily what SegWit actually is?
The very short version of the story is this:
- When people send their coins to someone else, that's a "transaction".
- They "sign" the transaction to prove to the network that they have the right to spend the coins.
- Before SegWit, transactions and signatures were sent out as part of the same document.
- After SegWit, they're sent out separately - like signing the back of a piece of paper instead of the front.
Why does this matter? It turns out it's useful for letting the Bitcoin network process more transactions per second. Right now there's a limit on how many transactions can be processed per second, because everyone has to double-check whether the transactions are 100% correct, and we want to make sure they can keep up.
It turns out, moving the signature out of the transaction itself helps that in two ways:
1) Partial Verification
Part of what makes double-checking transactions a slow process is that they have to be sent to you before you can start to check them. Moving the signatures means that Alice can check the transactions, and then start forwarding them on to Bob right away, even before she's had a chance to check the signatures (she can tell Bob later should the signatures turn out to be bogus). This means less
latency in passing along transactions - they travel faster - and so a block can include about half again as many transactions as used to fit inside.
2) "Fixing Malleability"
The way Bitcoin has worked up to now, since the signature is part of the transaction, changing the signature changes the transaction's identity. Even though all the same coins are being spent in the same way, it's a "different" transaction than before. And it turns out anyone can "smudge" a signature slightly, such that it's still valid, but it's "changed" enough to trigger this situation.
This made it harder to write more complicated chains of transactions - where the transactions depend on each other.
One example of these "complicated transactions" is a "payment channel". The idea here is that if Alice and Bob send coins back and forth a lot, they can compress all of their sending back and forth into two transactions - one to "open" the channel, and one to "close" it and settle up. This saves everyone the hassle of double-checking all of Alice and Bob's payments individually; they can just check that the settling-up at the end was valid. (If you've heard the phrase "lightning network", it's basically just a much more advanced version of this same idea.)
With signatures stored inside their transactions, this was really hard to set up correctly, because if the transaction that "opens" the channel gets its signature smudged, the "settling-up" can't find that transaction anymore, so the coins will be left in limbo.
But with SegWit, the signatures aren't inside the transactions. So even if the signatures get smudged, the "settling-up" transaction can still find the "open" transaction, and the technique works.
Together, in theory, (1) and (2) can significantly increase the amount of Bitcoin transactions that can be sent per second. And that means transaction fees go down, and Bitcoin gets cheaper to use. And at the same time, (2) increases the number of interesting things you can
do with your bitcoins.
Since both of those make Bitcoin more valuable, the price goes up. ^_^