Bitcoin has a new lead developer, Wladimir van der Laan, and with the ecosystem growing every day he is going to have a lot on his hands over the next year.
We asked Van der Laan what major issues affecting the bitcoin core are on his radar. Here are his four main priorities:
1. Splitting off the Bitcoin-Qt wallet from the P2P core code
At the moment, the core functions of the bitcoin client, processing new transactions and maintaining the history of old transactions, share the space as information about the wallet you set up using the client.
When you download Bitcoin-Qt, the official bitcoin software, you can help maintain the bitcoin network (i.e. run a node) and run a wallet (i.e. hold your money) from within the same program.
“Back in the day when people did not know what bitcoin was, [this] made sense,” explained Van der Laan. “One would install one program to maintain the network and to be able to receive and send those curious coins.”
This creates the risk of someone stealing the private key to your wallet and therefore your money. When you unlock your private keys in order to spend money, their plaintext form is exposed to the wider bitcoin network. This arises because of a difference in function, Van der Laan said.
“There is an inherent conflict: because of security risks it is sensible for a wallet to be online as little as possible, whereas a node should be online as much as possible for a stable P2P network.”
Separating these two functions will turn Bitcoin-Qt into a simple payment wallet (i.e. a simple piece of software for running a bitcoin wallet), which will then run the core bitcoin software optionally and separately in the background – thus keeping your bitcoin wallet safe, while also letting you contribute towards maintaining the bitcoin ecosystem.
2. Deterministic wallet
Perhaps a more troubling problem for those who manage a large number of wallets through Bitcoin-Qt, the software has a default number of pre-generated public and private keys stored when you backup your wallet. This feature allows a backup to access wallets created after the backup was made.
But the software doesn’t currently tell you when you’ve used up this store of pre-generated keys, so if you don’t regularly update your backup you can end up running wallets in the mistaken belief that the private key is saved in your backup.* Or as Van der Laan puts it, “it’s easy to end up with a sob story.”
“Because the wallet generates random keys, backup discipline is extremely important right now. For every 100 new keys, or whatever the keypool size is set to, one needs to update their backup.”
A deterministic wallet generates keys from a single seed, which allows them to be re-generated at a later date. Instead of remembering every single key, you simply remember a long and secure passphrase, which then allows you to access wallets at a later date. Therefore it is possible to retrieve funds from a wallet even if you have overwritten the original private key.
Van der Laan said:
“A single backup would be enough to recover all keys at any later point in time. This would be good for peace of mind."
3. Faster initial block download
Anyone who has tried to synchronise their Bitcoin-Qt client with the rest of the network knows well that it can take days and days. God help anyone using Mavericks who hasn’t disabled the ‘App Nap’ function. Said Van der Laan:
“The reason for this is that it downloads from one node at a time. If this is a slow node, too bad.”
A better way of downloading the blockchain would be to first get the list of blocks, and then download each block from multiple nodes simultaneously. Essentially, Bitcoin-Qt needed to be less like Limewire was and more like modern torrenting technology.
An integrated solution, Van der Laan said, could be “even faster than the BitTorrent-based workarounds [for Bitcoin-QT] currently in use”.
4. Improve developer documentation
The final issue is less exotic but still of vital importance: improve the documentation for the bitcoin protocol and infrastructure.
Referencing the Bitcoin Developer Guide owed to Saïvann Carignan, Tom Geller and David Harding and the Bitcoin Core Oxygen, Van der Laan said he intends to “get involved once things quiet down a bit.”
The power of the people
These are certainly not the only issues, and innovations, bitcoin community is working on – this discussion with Van der Laan occurred before the conversations about sidechains gained widespread attention.
In any case, Van der Laan says his job is not to direct the bitcoin project like a dictator.
“It depends completely on what people contribute. I certainly do coding myself, but as core maintainer my task is primarily to review, test and merge what is submitted by the wonderful people of the open source community.”
Program code image via Shutterstock
*Correction (22:05 GMT 12 April 2014): the article previously suggested that private keys could be overwritten. This has now been updated . Thank you to those who pointed out the error.