What is a Segregated Witness?
Segregated Witness (SegWit) is a protocol upgrade for the Bitcoin blockchain that was first implemented in 2017. The primary goal of SegWit was to address a major issue with the Bitcoin network: the limited transaction capacity of blocks. SegWit improves the efficiency of the network by separating the signature data, or witness data, from the transaction data in each block. This change increases the capacity of each block, allowing more transactions to be processed in a given time period.
Before SegWit, all the data in a Bitcoin transaction was included in a single data structure, the transaction. This structure included the signature data, which can be quite large in size, along with other data such as the inputs and outputs of the transaction. The total size of each transaction was limited by the maximum block size, which was set at 1 megabyte. This created a bottleneck for the network, as the number of transactions that could be processed in each block was limited.
With SegWit, the signature data is separated from the transaction data and stored in a different structure, called the witness. The witness structure is not included in the calculation of the block size, effectively increasing the capacity of each block. This allows more transactions to be processed in a given time period, improving the efficiency of the network.
Another benefit of SegWit is that it provides a fix for a vulnerability in the Bitcoin network known as transaction malleability. Transaction malleability refers to the ability of a malicious actor to modify the signature data in a transaction, making it appear as though the transaction never took place. This could be used to interfere with the processing of transactions, leading to double spending and other types of fraud. SegWit addresses this issue by making the signature data a separate structure that is not included in the calculation of the transaction hash, making it much more difficult to modify.
Simplified Example
Segregated Witness (SegWit) is like having two different drawers in your school desk. One drawer is for pencils and pens, while the other is for erasers and rulers. In the same way, SegWit separates the important information in a Bitcoin transaction into two different parts.
One part contains information about how much Bitcoin is being sent, and the other part contains additional information, such as the signature that proves that the person sending the Bitcoins is allowed to do so. By keeping these two parts separate, SegWit makes it easier for the computers processing the transactions to do their job quickly and efficiently.
Think about it this way: If you have to dig through all of your desk to find a pencil, it takes longer and it's more difficult. But if you can go straight to the drawer with pencils, it's much faster and easier. SegWit does the same thing for Bitcoin transactions.
Who Invented the Segregated Witness (SegWit)?
The term "Segregated Witness" (SegWit) was officially introduced in Bitcoin Improvement Proposal (BIP) 141, published on December 14, 2015, and authored by Eric Lombrozo, Johnson Lau, and Pieter Wuille. However, the conceptualization of separating transaction signatures from transaction data for enhanced scalability and security predates the official BIP. Pieter Wuille is often acknowledged as the originator of the SegWit idea, which he presented at the Scaling Bitcoin conference in December 2015. Hence, while the formal term "Segregated Witness" finds its roots in BIP 141 and its authors, the foundational concept was conceived and advocated by Pieter Wuille.
Examples
Increased Transaction Capacity: Segregated Witness (SegWit) is a protocol upgrade for the Bitcoin blockchain that increases its transaction capacity by separating signature data from transaction data. This allows for more transactions to be processed in each block, reducing the size of each transaction and making the overall blockchain more efficient. SegWit also solves the problem of transaction malleability, which is a vulnerability that could allow someone to alter a transaction before it is confirmed on the blockchain, causing problems for users and exchanges.
Improved Script Functionality: SegWit also improves the functionality of the Bitcoin scripting language, enabling new types of transactions and allowing for the creation of smart contracts on the blockchain. This opens up new possibilities for innovation and experimentation, and provides the infrastructure needed for new decentralized applications to be built on the Bitcoin blockchain.
Lower Transaction Fees: SegWit also reduces transaction fees for users by increasing the overall efficiency of the blockchain. With a larger transaction capacity and smaller transaction sizes, the competition for block space is reduced, and users are able to send transactions at lower costs. This makes Bitcoin more accessible for everyday transactions and helps to further its adoption as a medium of exchange.