Arrow of time
Arrow of time
Bitcoin works exactly as intended, get over it

There have been some alarmist articles recently which basically boil down to "Bitcoin is doomed! Abandon ship!", and while I ...

There have been some alarmist articles recently which basically boil down to "Bitcoin is doomed! Abandon ship!", and while I agree with some of the points given, I think that almost all of them, together with most of the current users of Bitcoin, are a bit missing the point of its existence.

Here's my take on it.

Blockchain itself is independent from the networking part, and it works fine

The blockchain is basically a way of storing data, a database format if you'd like. Though it appeared very successfully in Bitcoin, and can be considered it's One Big Innovation, it's not really tied to Bitcoin, or even to cryptocurrencies. It can be used to store literally anything - and it makes sense to use where the data set regularly grows in size and where it's beneficial to ensure immutability of historical data.

With a different take on what the transactions really mean, and another interpretation of what the public key signatures mean, the blockchain can be (and is) used for distributing random authenticated data.

The networking part is the one which is "broken" the most

Almost six years ago (in 2010), VISA reached a burst capacity of 24.000 transactions per second. I imagine that the current numbers are at least trippled. On the other hand, Bitcoin can handle an average of 7 transactions per second and a burst of somewhere in the vicinity of 2000 (which would currently fill a whole block). There are a couple of reasons for that:

  • The block size is fixed (currently at 1 MiB), as is the timing of block generation (1 per 10 minutes), both of which are changable parameters.
  • New transactions need to be flooded into the network. Or actually they don't, they only have to reach the miners, but in reality they do, since there's no sure way to know which node is a miner. This means that the entire P2P network should be getting flooded with about 8 Mbit/s of data traffic. There are still ISPs in the world which don't deliver that fast a service. This is not fixable without radically changing the protocol.
  • In any case, by any means, transactions need to get themselves, or a signature of themselves, into blocks, by traveling through the P2P network. If a cryptocurrency is to reach the level of spread the current credit card companies have achieved, there is no way that buyers will wait several minutes (or even several seconds!) until their transactions are confirmed. It just won't happen if the transaction latency is so high.

The requirement to transfer every single point of data over the P2P network, by, what amounts to, a flooding protocol, is what's preventing Bitcoin from becoming a CC replacement. Even if someone makes a transaction in the US, he has to wait until this transaction is visible all the way in China before it can be acted on.

As the transaction rate is configured now (approx. 7 transactions per second), Bitcoin can only be used as a sort of an inter-banking or large-transaction protocol (e.g. for transferring billions of dollars in value between large wallets).

The Bitcoin economics is also broken

Here I'm not even thinking about the secrecy of who holds what amounts of money (because the same is true, in practice, in real life), even if there are voices to whom this is of the most concern (going so far to speculate on the posession of the original early-mined coins). I'm not even thinking about the "he who has money, makes more money" mechanism by which it takes significant investments to become a large miner node (which is again true in the real world).

The two things which are economically broken in Bitcoin is the whole "upper limit on the number of coins" thing, and the current implementation of transaction fees.

The upper limit on the number of coins was intended to make Bitcoin strictly deflationary, completely disregarding that the actual value of money is tied to what you can buy with it, which is in turn tied to its spread / adoption by the users, and does not happen by a decree. As it stands now, it's only a psychological incentive to hoard coins instead of doing everything possible to make the whole currency more wide-spread.

The transaction fees are currently discretionary, with the intent that, if a client wants his transaction to be accepted into a block fast, he will include a large-ish fee in the transaction. This simulates scarcity of blocks, either by size or by generation time, and introduces competition between clients about who wants to spend more on the fee so his transaction goes in faster. On the other hand, if transaction fees were to be "flat", i.e. a fixed amount per transaction, miners would be incentivized to include as many transactions as possible. If halvening is done fast enough so that transaction mining is the sole source of new coins, the miners would be incentivized in the right direction naturally.

What's the point of Bitcoin?

Bitcoin is an incredible experiment, and it resulted in a huge amount of new research on cryptocurrencies, the blockchain, and related algorithms. Large-scale innovations such as Proof-of-Stake mining, smart contracts, etc., have been inspired by the existence of Bitcoin.

On the other hand, Bitcoin does is doing exactly as well as it should. The transaction rate cap was surely known by even Satoshi. Same for the (in)effects of the "deflationary decree". It's all going according to plan, which is to make the first successful cryptocurrency experiment.

And it's succeeded! Cheers, Satoshi, and without a doubt you'll get a Nobel if you come out!

That the coin was misunderstood and used for monetary speculation has nothing to do with all of this. Wall Street speculates on almost anything, and human individuals gamble on everything else.

What a next-gen coin (whatever it's called) needs to do

While I don't know of a system which currently has these features, it doesn't stop me from enumerating them:

  1. It needs to start with 2000 transactions/s globally (remember - that's 2010 VISA performance) and allow for easy (soft-fork or easier) upgrades to faster rates. Who's to say that the difficulty cannot decrease if the transaction pressure gets too large.
  2. It needs to have a slight inflation built-in, both to aid in preventing hoarding (by forcing the money to circulate to maintain its value), and to satisfy the psychological need of "having more" - people tend to feel happier with large numbers attached to money.
  3. Any other rewards, such as transaction fees, need to be set up such that they incentivise the number of transactions, and with that, the number of users. Once the number of transactions becomes the goal, miners will invest in the spread of the coin's popularity.
  4. While in theory anonymity is great, in practice it attracts the attention of both "real" criminals and the the taxmen, and those bring in even more politics and in-fighting. I don't want to say anonymity has to go, but it looks like I may have to.

The performance (transactions/s) problem could be solved by introducing "super-nodes" (or mini-VISAs) which would process and mine their own (regionally speaking) transactions. A top-level blockchain could include just the results and balances of the lower-level ones (and I even think I see how it could be done with Bitcoin as-is).

The others are more a matter of policy and people-work. I would love to hear about alternative proposals.


Why Oculus Rift is not the future of VR, and Cardboard is?

Because of availability. Thank you for reading, and good night, see you again sometimes, don't be a stranger! Explanation ...

Because of availability. Thank you for reading, and good night, see you again sometimes, don't be a stranger! Explanation I didn't think it needed an explanation util I talked with a collegue of mine who almost completely disagreed. Here are four reasons why I think that, unless corporate shenanigans fuck things up, a descendant of Google Cardboard will still exist in 5 years, while currently hyped darlings like Oculus Rift, Samsung Gear and others will be forgotten. #1: VR...

Read More
How are successful open source projects started and what keeps them going?

I've been thinking about what drives the core developers of successful open source projects, or in other words, what ...

I've been thinking about what drives the core developers of successful open source projects, or in other words, what keeps the projects going. These are just my own thoughts, they may or may not be correct or applicable for any purpose, YMMV. Being done by human beings, open source projects depend on those people being motivated. In general, people are motivated by similar things, and those, I think, are in open source projects...

Read More
Go: methods, receivers and benchmarking

One interesting feature of Go is how easy it is to write tests and microbenchmarks for it. In fact, tests ...

One interesting feature of Go is how easy it is to write tests and microbenchmarks for it. In fact, tests and microbenchmarks roughly folow the same syntax. Another interesting "feature" of Go is how it introduced subtleties in language which can be tarpits for beginners and those familiar with other languages. Take for example the Go equivalent of classes. There are no classical classes here, but a way of doing things which is similar to...

Read More
Trying out Nim, D, Go and Rust - part 1

Currently, if I want to describe myself as a developer, I say I'm a "C and Python guy." What ...

Currently, if I want to describe myself as a developer, I say I'm a "C and Python guy." What I mean by that is that I like to work best with C and Python, and seek such opportunities - but it didn't start like that. I basically grew up on BASIC and Pascal and counting by LOC I've probably written the most in PHP. I also have experience with C++, assembly, Java, C# and JavaScript,...

Read More
We should replace asm.js with Rust

I can't be the only one to think there is something horrible about today's JavaScript. It is like ...

I can't be the only one to think there is something horrible about today's JavaScript. It is like a Lovecraftian programming language from outer space - it is here to stay, and if you follow certain forums it looks like it's spread absolutely everywhere and absorbed every other language, but at the same time it just seems so damned indescribably icky. It was a toy language that went nuclear. With just...

Read More
Dear Google, make me a Phone

Dear Google, please make me a Phone which lasts 24h. Heck, even 18h would be a marked improvement since no ...

Dear Google, please make me a Phone which lasts 24h. Heck, even 18h would be a marked improvement since no phone that I've used lasts me even 12h. You see, I actually use my devices, they are not sitting in my pocket among the lint. Also, I don't use them for playing games or mining Bitcoin, but for reading and communicating. Please, dear phone industry, get your collective heads out of your asses and make a phone which: Has a CPU...

Read More