🔥 Introducing our "How to Bitcoin" book 🔥 Beginners can easily understand the basics of Bitcoin and more - Check it out now!

    Segregated Witness: The Road To Implementation

    Kevin Cruz January 31, 2016 - Posted by Kevin Cruz on Analysis

    The Bitcoin protocol currently restricts the sizes of blocks to 1 MB. As more transactions try to fit in the block that has reached its capacity, they don’t fit and are not published onto the blockchain.  This restricts the bitcoin network to a sustained rate of 7 transactions per second (tps).

    VISA, on the other hand, handles on average around 2,000 tps. PayPal, in contrast, handled an average of around 115 tps in late 2014.

    If Bitcoin were to scale to all economic transactions worldwide, including cash, it'd require a lot more transactions than it currently handles, perhaps more in the region of a few hundred thousand per second.

    Other than changing the 1MB block size, there have been other shorter term proposals for scaling bitcoin for a larger user base.

    Pieter Wuille recently proposed a new innovation called Segregated Witness or “SegWit” in which the signature field inside of inputs becomes an empty string. By removing the signature from the transaction, the size of it decreases. He refers to Signature data as “Witness” data.

    But how will transactions be validated? It was previously believed that signatures were an integral part of block validation.

    Pieter Wuille explained how this will be implemented at Scaling Bitcoin Hong Kong conference in December:

    “...An empty signature is not going to be able to spend an actual output that requires a signature. Instead, the outputs do not push these scripts that we required to be satisfied, they would be encapsulated, it would be pushed as a piece of data. This allows us to, this effectively to every node, and every node not using this system, it's an ANYONECANSPEND. It's just an output that pushes data on the stack, the output doesn't do anything else. It's ANYONECANSPEND. In a soft-fork, we can add a new rule that restricts what's valid. We can add a rule like, whenever we see, we could say it's a new type of script that is able to instead of updating its inputs from the signature field, it takes it from the witness instead. The witness becomes a third part of the transaction in addition to the inputs and outputs of a transaction. For now it would only contain a signature.”

    The term “segregated”, then, comes from the fact that the signature data will be stored in its own, separate data structure.

    “The scheme we were using before, to make blocks commit to the witness data, is not possible because we cannot change the structure of the merkle tree because that would be a hard-fork. But we can build two separate merkle tree, one with commitments to witnesses, and one with commitments to transactions as it is now. The roots of the merkle tree would be stored in the coinbase transaction. This gives us almost the same power, except now it can be deployed as a soft-fork.”

    Old nodes and new nodes will consider transactions containing signatures in the Segregated Witness valid. Old nodes validate them because from their perspective these transactions don't need a signature at all (and there’s not one visible), and new nodes validate them due to the fact that the required signature is in the Segregated Witness section. And since both old and new nodes hash the transaction data into the same transaction ID, the result is that everyone agrees on the content of blocks and on the structure of the entire blockchain.

    In recalling up SegWit’s central inspiration, Peter Wuille said:

    “It's just a realization that, whenever we relay data to an old node, we can drop the witness. To them, the transaction is valid without it. Because the witness does not impact the Transaction ID, you can say it's not really a part of the transaction, it's just another piece of data we relay along with the transaction instead.”

    To recap some of the benefits of SegWit, Wuille states:

    “So SegWit fixes malleability, allows more Script upgrades, allows fraud proofs, allows pruning blocks for historical data, improves bandwidth usage for light nodes and historical sync, and it's P2SH compatible for old senders so that non-upgraders can still send funds. This gives us time for IBLT and weak blocks to develop, so that we can see whether the relay and propagation stuff can have time to work.”

    If all goes as planned, as soon as everyone has transferred their bitcoin to Segregated Witness-locked outputs and all transactions are using segregated witness, two or three times as many transactions will fit into a one megabyte block limit.

    Community's Opinion on Segregated Witness

    CoinGecko reached out to multiple sources within the bitcoin community for comments and opinions on SegWit.

    “I think SegWit shows Bitcoin Core's commitment to safe scaling that maintains Bitcoin's decentralization,” said Bitcoin Core developer Peter Todd. “First and foremost it's a structural improvement that enables better smart contracts that are critical to non-bandwidth scaling like Lightning by finally stamping out transaction malleability. We get a safe transactions per second bump by improving the cost accounting for transactions in a number of ways, including taking into account the high cost to the network for UTXO space.”

    Early investor Trace Meyer says, “Segregated Witness is a tremendous innovation. It makes more efficient use of the current resources which is a true scaling improvement. Additionally, it fixes many problems that have long plagued Bitcoin.”

    Blockcypher said, “Big kudos to Bitcoin’s developer contributors and Pieter for shepherding this idea, and excited to see us scale Bitcoin even further.”

    Current Stage of Implementation

    More than a month after the Scaling Bitcoin conference in Hong Kong, the beginning stages of implementation are underway.

    When asked about the current stage of SegWit’s implementation, Pieter Wuille said:

    “We're currently working hard on a segregated witness test network: a set of patches to Bitcoin Core that can be used to join a new test network that switches over to enabling segregated witness from the start. We've had a private test network running among a few developers (Eric Lombrozo, Johnson Lau, Alex Morcos, Patrick Strateman, Pieter Wuille) since December 31st. A second iteration of the network will likely be up in days, and we'll open it up to the public then."

    The immediate steps for SegWit are in motion, the future is still somewhat unclear.

    “The aim is to have the test network up very soon now,” continued Wuille. “There are a few small changes planned after that still, but the uncertain part is the review stage, which can take a long time, especially for a relatively complex consensus change like this. A large number of developers have signed a statement to work along the lines of a capacity plan that includes segregated witness, though, so many will treat it as a priority.”

    Additionally, Bitcoin Core is starting to get wallet developers on board.

    BTC China (BTCC) commented on the matter; they believe that SegWit’s current implementation isn’t in line with the general agreement established at the Scaling Bitcoin conference in Hong Kong.

    “While we do think SW is a brilliant idea and should be implemented, we disagree on the decision to start from SW and then consider a hard fork in 2017. The general agreement between the mining community and developers from Scaling Bitcoin was a 2 MB hard fork (either BIP 102 or BIP 248). Segregated Witness is being pushed ahead without enough community discussion and there are many concerns about SW that have yet to be addressed.”

    In reply to BTCC, Peter Todd said “I'd like to see more constructive collaboration between the miners and the Bitcoin Core team. While BTCC met with me personally, I'd invite them to join us in IRC and Slack and discuss their concerns with the whole team.". In general I think communication between the development community and miners has been a major issue that needs to be improved - the Scaling Bitcoin conference was very useful along those lines, but we need to continue that dialog...If anything there's been a lack of communication about progress on it because everyone is working on it.”

    It remains unknown whether the decision to implement a hard fork can find consensus-support among Bitcoin’s global network. Although SegWit is a great innovation, there still remains a lack of long-term solutions on how to scale Bitcoin for mass-adoption.

What is CoinGecko Buzz?

CoinGecko Buzz is a space for lists, guides, and insights article on Bitcoin and other digital currencies (cryptocurrencies).

Let us know what you think about this new section by sending us an email at hello@coingecko.com or tweet us at @coingecko

coingecko (thumbnail mini)
CoinGecko for iOS
coingecko (thumbnail mini)
CoinGecko for Android