Bitcoin’s Next Big Software Upgrade to Feature New Language for Crypto Keys

lock-key-e1497359396847
1 September 2018

Bitcoin may be hard to use even with consumer-friendly tools, while running its core infrastructure is even harder. However, this isn’t stopping efforts to change that.

The global, volunteer developer group behind the most popular implementation of the software, Bitcoin Core, is soon to debut its 17th major software release, one which puts to code a number of highly-anticipated changes. Of particular emphasis is improving the software’s default wallet, where user’s bitcoin private keys are stored.

Perhaps the most interesting update is the debut of a new “language,” initially proposed by prominent bitcoin contributor Pieter Wuille, known for designing some of the most radical changes to bitcoin in recent years (including Segregated Witness, which helped chip away at bitcoin’s scalability problem last year).

The idea behind the new language is to add important extra information to keys. Or, as Bitcoin Core contributor Andrew Chow put it, it provides a “sane” alternative to the problematic “account” system that was recently ripped out of the software. Simply put, it allows users to name their different accounts. Like labeling one “donations” and another “savings.”

One other significant use case of the language is to make it easier to move keys from one wallet to another. As it stands, if a user tries to move a key from one wallet to another, they might lose some of the information about how the coins can be unlocked and sent to someone else.

That’s not a big problem for many transactions. After all, most transactions have pretty simple instructions: the owner must sign the transaction with a secret key, proving the coins are really theirs. But that’s not true for every transaction. For example, multi-signature transactions require more than one person to approve any spending.

Lightning transactions, a faster and more scalable type of payment that’s still in its infancy, are perhaps the most exciting example of this.

With this type of transaction becoming more common (lightning is thought to be the best way for the platform to scale to millions of users), the new language aims to ensure crucial information isn’t lost more regularly.

With this in mind, Wuille’s new language aims to tags each key in bitcoin (both public and private) with a “label” that describes what can unlock it, “changing the way we think about wallets,” Chaincode engineer John Newbery said in a talk describing the upcoming release.

To be clear, though, this release is just a small step, the first code change to put this into practice, Newbery said. But developers anticipate the language will weave its way through the codebase in future software releases.

Mobile bitcoin core?

Other changes in the latest release are iterative, first steps that developers hope will lead to something more.

Partially Signed Bitcoin Transactions (PSBT) are another highly-anticipated change that fits the bill, coded up by Chow. (PSBT is a new format for transactions that are not fully signed yet that can be passed around until finally broadcast.)

This all sounds rather technical, but the thinking here is actually rather forward-looking, and could have an impact on a wide range of users.

Already, there are all sorts of hardware wallets on the market, small mechanical devices that are considered one of the safest ways of storing bitcoin, since it moves the keys that unlock them offline so they can’t be stolen by way of an internet connection.

But each hardware wallet – including Trezor, Ledger, and so forth – is kind of off in its own little world when it comes to how it engages with the software. In short, they aren’t compatible with all software wallets at once.

One of the easiest ways to use a hardware wallet is to leave it offline, but then connect it to a software wallet on a mobile device that makes it easy to actually make transactions.

It’s cool that this is possible – to get the security of hardware wallet but the convenience of a software wallet at the same time. The problem is that usually each hardware wallet only includes support for one or two software wallets. Trezor only supports the software wallet Electrum, for instance. They can’t connect the Trezor to Bitcoin Core or whatever other software they want to connect to.

And users have long been complaining about how annoying this is. BIP 174 offers away around that. It’s a standard that every wallet can use.

Though, of course, it depends on whether wallets actually indeed choose to use it. The prospects are looking optimistic so far. Even though the code isn’t officially out yet, it’s attracted much enthusiasm, with one hardware wallet, coldcardwallet implementing the transaction signing method already.

As wallets pick up this standard, it will make Bitcoin Core in particular a bit easier to use because hardware wallets will easily be able to connect to the software.

“PSBT will enable Bitcoin Core to more easily support hardware wallets and have better offline, airgapped wallet setups. I’m actually working on hardware wallet support for Bitcoin Core by using PSBT,” Chow told CoinDesk, going as far as to argue that Bitcoin Core is a much safer way to use bitcoin than other software wallets.

“[SPV wallets] carry privacy and potentially security risks as they are trusting a third party to do the blockchain verification. Once Bitcoin Core supports hardware wallets, users can use Bitcoin Core instead, and because it is a full node, the user does not need to trust a third party that the everything has been verified correctly,” he said.

But the code change opens up a lot of options, even potentially boosting bitcoin smart contracts and privacy features. “PSBT also makes things like multisigs and CoinJoins easier to do,” Chow continued.

To this end, one user tweeted: “Excited to see all the interesting ways BIP174 will be used.”

And more

These are a couple of the changes developers are most excited about, but there are dozens of other upgrades rolled into the release. One is a “dynamic wallet creation” feature.

“A few releases ago, we introduced the ability to use multiple wallets in Bitcoin Core. However that required starting Bitcoin Core configured for multiple wallets. Now, we can load, unload, and create wallets when the software is already running,” Chow said.

Meanwhile, you might have heard of Coin Selection, an improved way of plucking up the coins go into a transaction. It’s so much better than the old algorithm that it greatly improves bitcoin’s scalability as a whole, even cutting fees.

Though the main code for the new feature was already added about six months ago, the algorithm is getting a small privacy boost in the 17th release.

That still doesn’t cover everything. The rest of the changes are to be described in more detail in the final release notes, which will be released at the same time as the final, tested code.

These might seem like small changes. Especially since few people use bitcoin and even fewer use Bitcoin Core. And there’s no question why. Bitcoin’s software takes up nearly 200 GB, about the size of a laptop. Downloading it and using it is a far cry from downloading and setting up the Venmo app on a smartphone in matter of minutes.

But the goal with these major code changes is to eventually get the code to the point where it’s not such a pain to set up, so maybe one day anyone who wants to utilize the full advantages of bitcoin can do so.

Locks image via Shutterstock