Optimizing SegWit: How Bitcoin’s New Software Is Giving Scaling a Boost

welding-robots-e1505876751547
20 September 2017

SegWit may be live on bitcoin, but the work to realize its potential isn’t over.

Even after the bitcoin blockchain upgraded to support Segregated Witness (SegWit) last month, ending perhaps the network’s most heated debate on direction to date, the optimization has yet to leave much of a mark.

To date, only just over 3 percent of transactions are actually taking advantage of the upgrade.

But, though transactions are scarce so far, adoption is likely to grow as more wallets and bitcoin services move to support the change. At that point, SegWit will likely have more of an impact, increasing the block size to support more transactions and paving the way for more advanced scaling solutions like Lightning Network.

In an effort to work toward that goal, the developers behind Bitcoin Core, the most widely used version of the cryptocurrency’s underlying software, have been mobilizing to help boost the effort.

At least, that’s what it looks like from the latest version of Bitcoin Core 0.15.0, released last week. The release notes outline a range of improvements that focus on performance, which are at least partly geared towards laying the groundwork for wider use of SegWit.

A focus on performance

During a presentation in San Francisco a couple weeks back, Blockstream CTO and one of the most active Bitcoin Core developers Greg Maxwell seconded the notion that 0.15.0’s focus had to do with preparing bitcoin for a SegWit-enabled capacity boost.

Maxwell explained:

“With SegWit coming online, we knew the blockchain would grow at an even faster rate, so there was a desire to squeeze out all of the performance gains we could to make up for that.”

Several of the improvements are aimed at reducing the time it takes to create a bitcoin full node, which many predict will become even harder with SegWit activated, since the change increases the blockchain‘s block size (the amount of transaction data that can be stored in each block).

Full nodes are particularly important for the bitcoin community since running one is arguably the best way to use bitcoin without trusting a bank or another third party, and is what many see as the whole point behind the digital money.

So any effort to make that easier, and the network run more efficiently, is welcomed. Hence, “performance” (how long it takes to download and use the software) is a problem developers try to chip away at in nearly every Bitcoin Core release (roughly twice per year).

But SegWit just added more of a reason to focus on optimization and speed.

Maxwell said:

“As always, but especially with 0.15.0, we had a big push on performance.”

Among the notable upgrades in this area is the way in which data on unspent transaction outputs (UTXOs) is now stored, creating less computational burden on users who want to download a bitcoin full node. According to the release notes, 0.15.0 downloads bitcoin’s transaction history at a 30–40 percent faster rate and uses 10–20 percent less memory.

Other technical upgrades introduced to speed up the software include non-atomic flushing (which could pave the way for further performance gains) and script validation flushing (which makes grabbing certain transaction information faster).

This focus on performance shows a Core development team intent on making bitcoin more manageable ahead of SegWit, or before a significant number of people start using the transactions made possible by the upgrade.

Not yet witnessed

Today, most bitcoin wallets have yet to support SegWit, but that might not be the case for long.

In this way, it’s not so surprising that, while 0.15.0 focused on performance upgrades to prepare for SegWit, the new software itself doesn’t support SegWit transactions. Bitcoin Core developers argue it’s safer to wait and see if SegWit works before rolling out transaction support within Core. However, the release notes say, more “complete” support for the change will be included in “a next version” of the bitcoin software.

When that time comes, users will be able to create SegWit transactions with the Core wallet, and get the benefit of SegWit’s nearly half price transaction fees.

Other bitcoin wallets might have the same wait-and-see strategy. And, if and when they actually push it through, the optimizations in 0.15.0 might be more noticeable.

Disclosure: CoinDesk is a subsidiary of Digital Currency Group, which has an ownership stake in Blockstream. 

Welding robots image via Shutterstock