Bitcoin's Segwit Explained - Simply!!
The Bitcoin community has been dealing with a lot of ‘SegWit mania’ lately. It’s a fairly technical term that many don’t understand, and instead only seem to be hoping that it would pass and not impact Bitcoin’s value. Unfortunately, that isn’t the best way to go about things. Which is why we’re here — to simplify and explain SegWit for you. Let’s begin.
The Technical Basics
Bitcoin transactions are represented in a peer-to-peer network of systems as a blockchain. These systems, known as nodes, administer all the bitcoin transactions. A copy of every transaction is virtually sent to all the nodes in the blockchain.
A Bitcoin transaction is a data that consists of inputs and outputs. Inputs, in layman terms, are the information of the sender and the outputs are the information of the recipient. This information is the public address of the sender and the recipient. It also contains a signature, which verifies whether the sender has the required funds to complete the transaction. So, if A is a sender, he would initiate the transaction by sending the Bitcoins to a certain public address, that is, the receiver B. Once this transaction is verified by all the nodes, the transaction is included in a block and added to the blockchain for public access.
Problems arise when these transactions are very large in number like they are currently. With more and more transactions, more blocks are needed to store them. However, these blocks are constrained to only 1 Megabyte (1 MB) size. They can hold only a limited number of transactions. After every few transactions, new blocks are piled in the blockchain. This weight of transactions, represented by blocks, is congesting the network and making it slow. Sometimes a transaction may take hours for confirmation.
To solve this problem, the method of Segregated Witness (SegWit) was considered. It intends to decrease the size of each block and was proposed by Dr. Pieter Wuille. What exists in a block is the information of a transaction, in the form of a script and signature data. The signature data contains the digital signatures of the client who is sending the money to the receiver while script would include all the information such as transaction ID, amount, and receiver address etc. The digital signature is a unique key assigned to every client to perform transactions and is used to verify whether a user has the amount of money he is transferring and the validity of his account, thus taking up most of the space in a block. All the transactions must necessarily contain a digital signature, which also makes it virtually impossible to hack the operations.
What does SegWit Do?
Under the proposed system of Segregated Witness, an extended block must be created alongside the main block. This extended block would contain the signature data of the transaction. The system proposes that the main block is divided into two, one with just the signature data, and the other with just the record of the occurrence of the transaction.
This would substantially reduce the space occupied per transaction in the main block and would enable the recording of a greater number of transactions without piling up more and more blocks frequently. This would also reduce the weight per block in the blockchain of transactions, which in turn would reduce congestion and ensure that the network does not slow down. Thus, transactions could be verified much quicker than they are being currently.
Almost 95% of the Bitcoin community has accepted the SegWit proposal. For this, it is required to sign off for the Bitcore Core client for at least two weeks, before SegWit can be activated.
Breaking Down Hard Forks & Soft Forks
A hard fork is a permanent divergence from the blockchain. It is an absolute change in the protocol of the system. It can make the old transactions and blocks invalid or valid. A hard fork requires users to upgrade to the latest protocols. It creates paths in the main blockchain — one which follows the users with the upgraded software, and the other which allows the users to follow the old path for a short period of time, during which they can upgrade to the newer software.
A soft fork, on the other hand, requires only a majority of the users to upgrade. It invalidates the previously valid transactions. Hence, the old users can now upgrade to the newer versions and start afresh. It hence creates a bridge between new and old software.
SegWit is a ‘soft fork’. That means it is compatible with the old code as well and can be implemented on the entire blockchain. Unlike a hard fork, which creates an entirely new currency aspect with effect, SegWit can be implemented for all transactions from a date in the past. For example, all transactions from 2013 can be used and SegWit can be implemented on them.