SegWit technology has long promised to improve scalability of Bitcoin
Finally, Segregated Witness (SegWit), a technology that has long promised to improve scalability of Bitcoin, and reduce the transaction fees, will deliver increasing value to a higher number of traders. The technology was first proposed in 2015, and the implementation and adoption have come after much debates including alternative technologies proposed.
The reasons why Bitcoin is still not for day-to-day payments
Bitcoin, the most popular among cryptocurrencies, have been embraced by high number of traders, due to the promise of decentralization that eliminates interference of central banks and governments. However, high acceptance of Bitcoin among traders did not automatically make Bitcoin ready for day-to-day payments and financial transactions. This can be attributed to the following reasons:
- Scalability issues, which resulted into only 7 Bitcoin transactions per second as recently as January 2018. Additionally, the average time required to confirm a Bitcoin transaction was as high as 116.12 minutes, as of February 19th 2018! Consider normal volume of credit card transactions being in the range of 1,000 per minute, at a cost as low as we have now, and you can see why Bitcoin is not used for day-to-day transactions.
- High transaction fees for Bitcoin, for e.g. as of January 2018, transaction fees for Bitcoin were as high as US $ 25. This is also related to the scalability issues, because the size of a Bitcoin block is limited to 1 Megabyte (MB), and transactions in 1 block are processed every 10 minutes. Since there is intense competition to get Bitcoin transactions through, and the users pay fees to the miners, this limitation of space has caused the transaction fees to increase.
- Bitcoin also has malleability issue. Encryption is about first converting a plain text into scrambled ciphertext. This is done using a unique encryption key, and when the ciphertext is converted back into plain text, using the same encryption key, that reverse process is called decryption. A cryptographic algorithm is malleable when an attacker can convert one ciphertext into another, which will decrypt to a related plaintext. The attacker can do this without even knowing the plain text. This way an attacker can change the content of an encrypted message in-transit, for e.g. the payable-to address or the amount of a payment transaction.
SegWit solves the above issues in the following ways:
SegWit is formally known as “Segregated Witness (Consensus layer)” and the Bitcoin Improvement Proposal (BIP) was BIP141. The solution is implemented not in Bitcoin alone, but also in Litecoin, DigiByte and Vertcoin cryptocurrencies. SegWit was activated on August 24, 2017. However, the implementation will get a new push, due to the very recent announcements from two of the largest exchanges, Coinbase and Bitfinex. Coinbase’s exchange, GDAX, and Bitfinex, both ranked within the top 10 exchanges in the world by trading volume, together account for 10% of global Bitcoin trade. Earlier, many hard and soft wallets had adopted support for SegWit, and with the two major exchanges adopting it, SegWit is expected to see a significantly higher adoption than the 10-14% range seen in early 2018.
- SegWit defines a new structure called witness, and this is committed to the blocks separately. This structure will have the data required to validate the authenticity of the transaction, but it will not have the data required to determine the transaction effects.
- Signature and redeem scripts will be moved to this new structure, and will not count towards the traditional 1 MB block size limit.
- SegWit protocol defines a new parameter, weight, and a block can have a maximum of 4 million weight units (WUs). 1 byte of the original 1 MB block is equivalent to 4 WUs. However, the formula of 1 byte of original block being equivalent to 4 WUs is not applicable to the witness structure, where 1 byte is equal to only 1 WU. This will effectively allow blocks larger than 1 MB size.
- Since the effective increase in block size is achieved by using a new parameter, and not by changing the existing rule in the protocol limiting block size to 1 MB, a hard fork is not required. Hence, the implementation of SegWit is a soft fork, and backward compatible.
- With the block size effectively increased, more transactions can fit in one block.
- The signature now moved out of the transaction data, an attacker can’t change the signature anymore even if he is able to change the transaction data. This addresses the malleability issues.