Recent Technical Developments in Bitcoin

Despite being a decentralized project, which presumably should result in faster and more efficient development, Bitcoin has been experiencing a decline in its development pace in 2015. As the project gets bigger and involves more users, it becomes harder to make changes. Recent developments in the Bitcoin core reveal technical discussions and future thoughts and implementations.

Greg Maxwell, core Bitcoin developer and one of five main devs who have full access to the Bitcoin project, deeply dove into the technical aspects of Bitcoin and explained the ongoing small projects and ideas in a recent talk at SF Bitcoin Devs, “a meetup group that holds weekly seminars and hackathons around engineering the bitcoin blockchain.” His talk took place before the recently released version Bitcoin Core 0.10.1 that fixes and addresses security issues such as eclipse attacks and fingerprinting.

Maxwell covered topics such as privacy in Bitcoin, security issues regarding Sybil attacks, as well as problems with multisignature. He proposed ideas on how we could resolve them.

Privacy

Privacy has always been a matter of debate in Bitcoin. Maxwell explains its significant importance when it comes to money, since money transactions show user’s interactions with others in the world.

Maxwell explained some ongoing projects to increase privacy, and he recommended that users run a full node, rather than run simple payment verifications (SPVs). He says:

“We have been working along to make it easier for users to run full nodes since full nodes have fundamental privacy advantages. The existing models for SPVs are fundamentally weak from a privacy perspective.”

However, it is quite painful for clients to run a 30 GB full node on their devices, and it is not practical. Therefore, devs are releasing a pruning version that brings the size down to 1.3 GB. Pruning allows users to run a full node that autonomously validates the network, and it’s still fully private, while it doesn’t store the whole blockchain. It is even practical for a Bitcoin core to be run on a mobile phone with pruning, offering more privacy.

@orionwl just merged pruning support in #Bitcoin Core! Run a (no wallet) full node with 1.3 GB storage. Thanks to all who contributed. — Pieter Wuille (@pwuille) April 24, 2015

CoinJoin, stealth addresses and other active privacy techniques could also be integrated into the core. Maxwell explained that in spite of not having CoinJoin implemented in Bitcoin, many transactions still use such services, so Bitcoin devs are working on this and they are trying to get the right fit into the Bitcoin client.

Multisignature

Multisignature is a potential solution for many security issues in Bitcoin. It eliminates a single point of failure by requesting multiple signatures from specified users before sending a transaction. However, as Maxwell argues, it is quite costly in Bitcoin.

Two-of-three multisig is a common practice, and it requires a roughly 2.5 times larger transaction size, which results in a reduction in network scalability. It has a negative impact on the decentralization of the network because the more expensive it is to run nodes in the system, the fewer the number of people who run them, and the more centralized the system becomes.

The Bitcoin development team is therefore working on finding alternatives. One would be to adopt another cryptographic digital signature method instead of the current ECDSA (elliptic curve digital signature algorithm) that is currently used. Maxwell suggests using Schnorr, which is older than ECDSA, but it could do multisignature in a simpler, more straightforward and faster way. However, it is patented. Maxwell says:

“Patenting as we have seen in the history of cryptography is a poison. Any patented system in crypto systems are actively against decentralization since it’s owned by the creator of it.”

Devs are therefore hesitant to use the Schnorr signature algorithm and are trying to find ways to implement a similar method in Bitcoin.

When it comes to Bitcoin, developers should be hesitant to deploy any new features, since doing so could directly affect many users. As Bitcoin is decentralized, even small mistakes in the calculations or in the cryptography system may cause disruptive damage. Maxwell continues by saying:

“Selecting cryptography is cryptography itself and it is a really difficult task to choose the right one”

All in all, Bitcoin development on its core layer is slowing down, which seems to be quite natural. Becoming a high-class software requires years to reach maturity, and Bitcoin is clearly getting there. As devs test new Bitcoin features in testnets (alternative blockchains used for testing), through altcoins and other methods, and the features pass requirements and are verified, they can be easily and securely implemented into Bitcoin.