8 Problems for the Bitcoin Community to Solve Before Block Size - Jeremy Rubin
Recently the debate around block size has been getting a huge amount of attention, and it is easy to think this is the most important issue for scaling Bitcoin. For context, currently the Bitcoin network can process only a few transactions per second.
A proposal suggests increasing this 20 fold. While Bitcoin should eventually be able to handle increased volume, there is much debate about how and when to make this increase. It’s certainly an important issue, but it’s not as pressing as other issues.
Here’s a list of 8 problems that are more important to solve than block size, and why I think so. My hope is that this article will provide the Bitcoin community with fresh targets for discourse on issues which are not getting the attention they deserve.
1: Privacy
Privacy is fundamentally important for the freedoms of Bitcoin users. While a globally public ledger is useful for certain applications, broader privacy guarantees are critical for Bitcoin’s success as an empowering tool for both the developed and the developing world. Technology which is private-by-default with opt-in publishing is under development.
This is more important than block size because, while it would be nice to support all of humanity’s transactional volume in Bitcoin, it is meaningless if that information can easily be stolen as we’ve seen with the numerous data breaches over the last few years or if that information can be weaponized against the population.
2: Testing & Simulation
Developing more robust and accessible methods for testing and simulating the Bitcoin protocol and extensions to it is paramount because it gives us assurances that the software is doing what we intend for it to do. We can talk all day about what we would like the protocol to do, but without rigorous testing and simulation we can’t be sure that it actually does what we want.
This is more important than block size because many of the properties we like to talk about are incredibly hard to reason about. Good simulation would allow for more evidence of behaviors under game theoretic conditions, and testing would allow us to be sure that a desired change does what we like. An upsizing to 20mb is not even guaranteed to be 20mb if a bug prevents this size from actually being utilized.
3: Formalization
Formalization is a similar goal to testing, but in a more rigorous sense. Under formalization, code can be mathematically proven to be correct. Advancements in formalization technology today allows for code to be structured with mathematical proofs to be computer checked and extracted into executable programs.
With formally proven code, the need for testing is drastically reduced as failure is essentially impossible. While it might be difficult to formalize all of Bitcoin, decomposing the code into a more modular form would allow for certain components, such as the script processing engine, to be proven. Formalization, while difficult, can reduce the friction in the development of patches as they can be authoritatively shown to not modify other functionality.
While it may be premature to fully prove, refactoring the code base to be more amenable to such proofs is a vastly important goal as it will ensure a path forward for a more robust Bitcoin. These major restructuring changes will be much more difficult to accomplish in the future as more software is written and platforms built which expect Bitcoin to behave in a specific manner, which is why it is more important than block size.
4: Usability of Crypto
Bitcoin heavily relies on users properly managing their crypto; the basis of its guarantees is digital signatures. However, managing keys is basically unusable for the end user. As a result of this usability fault, Bitcoin has seen the rise of services which “own” the private keys of their customers.
Some of these services seem benign, such as Circle or Coinbase, others are infamous for violating their user’s expectations such as Mt. Gox. Developing more friendly interfaces for key management is critical for Bitcoin because otherwise use of the network will be mediated by these companies and user freedom will be all but eliminated.
Non-Bitcoin companies such as Facebook have recently made great strides by supporting PGP keys as a profile attribute. Bitcoin companies like BitGo make a nice middle ground, where valuable features and services are added without taking custody over a user’s assets. This is more important than block size because otherwise Bitcoin isn’t much more interesting than PayPal.
5: Developer Education & Resources
Bitcoin development is centralized to a select few with an immediately apparent lack of diversity. This is not through any fault of the community being inherently exclusionary, however access to the education necessary to be competent enough to meaningfully contribute is not widespread.
Focusing on lowering the barriers to entry and getting more diverse participants is more important than block size because otherwise major design decisions will be made in a prescriptive sense rather than getting to the root of what would actually be best for society at large.
6: Systematization of Knowledge
There are a lot of amazing ideas floating around in Bitcoin. It’s largely what makes the community such an incredible place. The development of these ideas is ill documented and needs a better platform. Not only would more accessible and systematized knowledge go a long way in terms of providing better educational resources, whose need has already been established, but it would also help address a major existential threat to Bitcoin: patents.
Recently, several patents have been filed in the cryptocurrency space which has greatly upset the community, and there has been some outlash at the organizations which are pursuing them. While I understand the sentiment, software patents are majorly flawed, there needs to be a better response than anger. What is needed is for the community to defensively patent the algorithms behind Bitcoin so that innovation will not be blocked by patent suits.
The development of these patents would serve a dual purpose in also making high quality information more accessible. Without this process, large corporations would be able to lob suits against fledgling startups cutting them off from the market completely or otherwise draining their funds with legal fees.
7: Mining Decentralization
Bitcoin is touted as a fully decentralized protocol, and to an extent it is. One of the major points of centralization in Bitcoin is the mining process. Mining is the process by which new bitcoins are generated and the network is secured. In Bitcoin’s original conception, this was decentralized because the only way to mine was to have a computer and all computers were essentially equal.
However, special purpose hardware was developed which is many orders of magnitude more efficient and more quick than general purpose computers. The supply chains to produce this hardware are limited, so mining is controlled by a much smaller group of individuals than is desirable.
Furthermore, it is desirable for miners to pool their resources together to reduce the variance in the amount of reward they get. This is problematic because these miners or pool operators could be more easily censor behavior they, or their governments, dislike.
It is also problematic because Bitcoin is a fixed supply asset, which means that mining (which is the only way to make “new bitcoin” supports the centralization of value and economic power (perhaps a fixed supply asset is not best for a decentralized economy). There is some work which provides very interesting solutions to this centralization conundrum such as Peter Todd’s Treechains proposal, which is explained nicely here. As I’ve written about previously, control over mining presents a significant centralization bottleneck which can severely limit the freedoms of users.
Increasing the decentralization of Bitcoin mining is an important goal, and deserves to be addressed before Bitcoin sees significantly more adoption, otherwise it will entrench the small number of current players.
8: Fork Support Protocol
Forks are the process by which new features make there way into the Bitcoin protocol. There are two main classification of fork, a hard fork and a soft fork. The main difference is that a soft fork is backwards compatible whereas a hard fork is not. Soft forks are easier to roll out, but harder to implement. Currently, soft forks are the preferred way to roll out changes. However, it is still a very difficult process. There has been work done recently which proposes a robust way to perform soft forks. Even though soft forks are preferred, hard forking cannot be ignored.
For instance, if a crucial security vulnerability is exposed such as a faulty signature algorithm it would be imperative to quickly fork as clients running the old code would be able to be fooled and Bitcoin could be stolen. It is important to understand that forking, soft or hard, is not so much a technical problem as it is a political problem.
Forks which are favored by a minority of users will have a difficult time being adopted. Even if they add very desirable features, much of the task is in educating all users neutrally about what the pros and cons are of supporting such a fork. Putting some thought behind new mechanisms for understanding and managing forks is more important than the block size debate because the block size debate is a proof that the current process is subvertible.
These aren’t the only issues or problems worth looking at. I selected them because they are a real issues and take a higher precedence in my book than block size. The number of transactions that can be confirmed per second will, eventually, go up.
What is being debated is how, and when these changes take place. There are many important factors to take into consideration. But if we, as a community, can’t agree on increasing the block size right now, let’s cut out the circular debates and focus our energy on fixing these higher precedence issues before making moves to push global adoption.