Arrow of time
Arrow of time
Why I think Bitcoin and Ethereum are a bad global payment system (currently)

So, let's get some controversy going. I like Bitcoin, the ideas of blockchains and cryptocurrency. I've profited from ...

So, let's get some controversy going. I like Bitcoin, the ideas of blockchains and cryptocurrency. I've profited from them, and if you're reading this, so have probably you. But, truth be told, I think the currently popular cryptocurrencies make a terrible global payment systems, technically, economically and ecologically. If you have information which contradict these, please comment.

tl;dr: Bitcoin is mostly useful as an ideology, not as a global payment system. It's technically feeble, produces no tangible products, it's ecologically wasteful, and cannot solve social issues.

Technically

Really, any system with a bandwidth of 3-5 transactions per second is not usable as a daily payment processing system. I'm basing this on the information that the global payment processing companies like VISA and Maestro process thousands of transactions per second with a capability for peaks on the order of 50.000 each. Ethereum with it's 15-ish transactions per second doesn't solve this particular issue.

Any kind of single-ledger cryptocurrency system (i.e. where everything is written in The One Blockchain) would also generate a huge amount of data, which will soon be completely unstorable on ordinary household computers. In other words, even if the transactions-per-second performance issue is solved, the amount of data will grow so much that full nodes would be storable only in proper data centers, which clashes with the idea of decentralization: in this case, we might as well have traditional databases. For example: let's say the transactions-per-second performance is increased to 2000 per second (which is nearly what VISA has - and that's traditional transactions, not micropayments!) - with the 1 MB Bitcoin block size, this means 1 MB each second. And that means 60 MB per minute or 3.6 GB per hour, or 86.4 GB per day, or 31.5 TB per year. I sort of brainstormed on this idea.

So, it looks like at best, a future distributed and decentralized payment system will probably also be decentralized in the sense of not having a single ledger, but multiple (side-)chains, both to handle the transaction volume and the data volume. In fact, it seems like it will be very similar to how banks are organized today - with "entities", however we shall call them, including "bank branches", handling a limited number of accounts, and a system of communication between them. None of these are currently possible in popular cryptocurrencies.

And for the - quite possible - future where Bitcoin (and because of the same problem, the same goes for practically every single cryptocurrency today) becomes a system of large payments between big players, well, A) how is that different from today, and B) then what will we do with micropayments, which are kind of already a necessary thing. The ability to do new types of services (or old types more efficiency) through smart contracts is useful, so it might be that the future of a global single ledger system lays there: not as a payment system, but as a global notary+attorney system. We'll just have to see.

Economically

By definition, the "cryptocurrency economy" is currently mostly what would traditionally be called basic financial services. Everything revolves around providing service to transfer (or spend) coins. The recent deluge of new ICOs only adds to the pointlessness of spending so much mindshare and work hours to, effectively, move some bits around.

Of course, there is the stance that cryptocurrency financial services are actually realistically needed, and that we're currently building the infrastructure for the future, so maybe it's the difference of me placing more value onto the production of goods rather than the production of financial services. I've heard of just one effort where a cryptocurrency is being tied with actual production of tangible goods - I like it, let's see how it goes in the future.

Whatever your ideological position is, the reality is that we are living in a world with states, governments and banks. And humanity as a whole has worked very hard, literally tens of thousands of years, to create social and bureaucratic structures where most people (and today, this actually means the vast majority of human beings) can mostly just coast along without fearing for their lives, not doing anything special. And human beings, in general, want to live in situation where they will not be stressed out by lack of basic needs, and because of that, those entities: states, governments and banks, will continue to be supported by the majority of people. And those entities are providing (among many bad ones) some good services to the people, including a relative safeguard of the value of money. Of course, there's always a power struggle present, and sometimes, like in 2008, a small number of people get to screw over that vast majority, but here's the thing: despite that, the majority is still better off than living in anarchy, and we all know it, because we really do know what bad societies are capable of.

Anyways, cryptocurrencies could be a "changing of the guard" moment, in the sense that it creates a class of "new rich" which by definition mutualy loath the "old money", but even if that happens, nothing substantial will change for the 99%. And we know that because of the recent "Bitcoin civil war" where it was pretty obvious how big pools, and even individals, are swaying the course of history. The only difference is that they are not called "banks" but have more colorful titles, such as Bitcoin whales. Depending on your level of paranoia, those might even be individual players. Human nature produces similar behavior for similar stimulations. Expect to borrow Bitcoin with interest not from banks but from "whales."

Replacing one system with the other just doesn't seem worth the effort if the new system doesn't bring substantial benefits to the majority.

Ecologically

If the current trend holds, by virtue of using Proof of Work, by 2020, more electrical energy will be used to make non-productive (in the sense that they don't produce tangible goods) calculations for cryptocurrencies, than what is used by the entire country of Denmark. That's pretty atrocious as far as ecology is concerned.

Since the majority of Bitcoins is mined in China, the electricity comes from very dirty souces, mainly coal. Yes, an increasing percentage of this energy will be produced from "green" sources, which is the trend globally, but still - every single Bitcin transaction consumes more than an average US home for a whole day! Think about it! Does it not seem perverse? Isn't there a better way to use this energy? For example to ship food to Africa? And that's with the current, extremely low rate of 3-5 transactions-per-second and with an economic utility which isn't actually benefiting the world as such.

Wasting gigawatts of energy continuously just to ensure the blockchain's strength from manipulation, and increasing this consumption as new miners are added, is in my mind an ecological disaster.

Of course, there are some proposed solutions. Proof of stake is one of them, but I think that one will cause non-trivial social pushback, as it basically encodes the current state of "the rich get richer by default". It's a good technical solution, but it remains to be seen if it will be accepted. Another is Proof of authority, but that seems even more similar to the current system, where "special" entities create money. You know, like central banks do.

So, as long as proof of work is in place, every time you make a Bitcoin transaction, you have effectively caused as much energy to be wasted as would power 1.6 average US homes for a day. Please, let that sink in.

No conclusion

There are actually very good reasons why the system of banks has evolved like it has, and practically all of them have to do with implicit optimization of energy use, the psychology of crowds and social stability. There is a familiar principle in physics which says that a reaction will only happen spontaneusly if the products have a lower energy than the raw materials. I suspect that, whetever (if any) solution comes out of all the cryptocurrency and blockchain research which is being done, will very much resemble the existing system. Hopefully, it will also be at least in some ways better than it. But do not fool yourselves - what I am very much sure of, is that social structures (dominance hierarchies, power pyramids, the rat race, the exploitation culture, whatever you wish to call them) will be re-built under new names. The future whales are already among us.

As I said, I like the idea of cryptocurrencies, I've done some actual work with them, I've helped some altcoins happen. But because if that, I'm really, really skeptical of the current crop of technologies. Perhaps future will bring better solutions.


The "Daisy" private blockchain

I've recently finished a "preview" - or an early alpha version of my idea on how to create a private ...

I've recently finished a "preview" - or an early alpha version of my idea on how to create a private blockchain. I've called it "Daisy" because... it's sort of like a daisy chain :) I've created it in Go, and Daisy is available at GitHub. The major idea here is that blocks do not necessarily need to be created by every single user of the system, they can just as easily be created by a few...

Read More
How to organize a successful hackathon

As I'm typing this I'm involved in a hackathon part of the Google.IO eXtended event in the ...

As I'm typing this I'm involved in a hackathon part of the Google.IO eXtended event in the beautiful town of Zadar on the Adriatic coast, and that's as a assistent organizer, mentor and a member of the jury, so it's been a very hands-on experience. Since this is a very hands-on experience in the details of organisation, I'd like to write down, among others for my own future use, what makes a successful...

Read More
So my Skype account was hacked today

About an hour ago I got a message from a friend that my Skype account has sent a suspicious-looking link ...

About an hour ago I got a message from a friend that my Skype account has sent a suspicious-looking link to Baidu. As I wasn't signed into Skype, and I only use Skype a few times a year (when scheduled via e-mail), that sounded strange. But it was true - after logging in into Skype, I was greeted by an "unread messages" count of a few dozen. And that was doubly strange as, since...

Read More
How beautiful the PostgreSQL planner can be

Just wanted to share how beautiful the PostgreSQL query execution planner can be. Here is a query where I want ...

Just wanted to share how beautiful the PostgreSQL query execution planner can be. Here is a query where I want to find out both the minimum and the maximum of the id field, which is a sequential primary key: explorer2=# explain analyze select min(id), max(id) from expl_iocombined;...

Read More
Supercapacitor experiments #1: just a LED

When I was a young student (in a third world country, mind you), around Y2K, we learned about capacitors in ...

When I was a young student (in a third world country, mind you), around Y2K, we learned about capacitors in pF, nF and uF ranges, that's pico-, nano- and micro- Farads, i.e. 0.000000000001 F, 0.000000001 F and 0.000001 F. All these are useful and used in practically all existing electronics. They are also very small amounts of Farads. Consequently, one whole Farad was considered ginormous, an almost mythically high capacity. I remember one student...

Read More
Introduction to Go for Python / Django developers

This is a gentle introduction to Go for primarily meant for Django developers. Admittedly, it is in some ways like ...

This is a gentle introduction to Go for primarily meant for Django developers. Admittedly, it is in some ways like comparing apples and oranges. Since Go is a language (with a batteries-included standard library) and Django is a web application framework, this guide will make some choices on how to make Go useful for web application development. There is a very large number of Go libraries, frameworks and micro-frameworks out there, and more are developed...

Read More
C++ Atomic Types / Memory Barrier Performance (or: do we need CPU caches?)

A friend of mine, a computer scientist working on memory consistency models theory in C and C++, has relayed to ...

A friend of mine, a computer scientist working on memory consistency models theory in C and C++, has relayed to me an extraordinary claim, which boils down to this: "using memory barriers in code for each read and write does not have an impact on performance." Now, this claim is something he's heard second hand, and since he is an extreme example of a theory-oriented guy, the validity of this claim was not something he...

Read More
TIL: How do bicycles (and cars) turn?

It occured to me while driving a car that the act of turning direction is actually non-trivial. Reducing the case ...

It occured to me while driving a car that the act of turning direction is actually non-trivial. Reducing the case to a bicycle, consider this: You are pedaling your bike, and driving in the forward direction (of course). You now have certain speed and acceleration vectors pointing in front of you. You stop pedaling, and decide to turn left, 90 degrees to your current direction. You turn the wheel. Depending on the angle of the wheel and...

Read More
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...

Read More
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
Using Go for web app development

Last year I've been considering and experimenting with learning another compiled programming language, which would supplement Python which I ...

Last year I've been considering and experimenting with learning another compiled programming language, which would supplement Python which I normally use for, well... almost everything nowadays. There's really only one objective reason for this: performance. With Python, it simply never gets better, and Python 3 is a mess, with basically non-existent PyPy support. Sure, I could write performance-sensitive parts in C (or C++) and use them from Python, but... no, just no. The things I...

Read More
Developing Bitcoin services - general notes

For some time now I've been developing back-end stuff with Bitcoin, and here are some things I wish I ...

For some time now I've been developing back-end stuff with Bitcoin, and here are some things I wish I could have learned the easy way: If analysing the blockchain (for whatever purposes), it's all fine and breezy until about block 200,000 - that's where the fun starts. Don't test your code with earlier blocks, since compared to the more recent ones they are trivially small. Python is fast enough, PyPy is faster. If you're using bitcoind RPC,...

Read More
Story: Court of the Red King

1946. On an almost black and white day in November, the plaza was full of solemn people. Tens of thousands ...

1946. On an almost black and white day in November, the plaza was full of solemn people. Tens of thousands of them, in fact, had gathered under the gray sky, in the semi-circular theater surrounding the huge podium, in the middle of the busy construction project of the Great Hall. It was said that, once completed, the monster building would take two hundred thousand people, all watching and enjoying the power of their Reich....

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
Why do you need an Encrypted Notepad?

If you are like me, you probably have dozens (or even hundreds) of passwords for various services and systems which ...

If you are like me, you probably have dozens (or even hundreds) of passwords for various services and systems which you either don't want to "remember" in your web browser, or the services are not (shockingly, I know!) browser-accessible. You have probably already remembered to search for an application for your mobile phone, or your desktop, a laptop, or whatever, which would to the job of remembering "7i48!fac3" for you. And then, like me, you've realised that there...

Read More
Why FreeBSD's pkg sucks

A not too long time ago I was a big FreeBSD user, with dozens of production installs. Gradually, I've ...

A not too long time ago I was a big FreeBSD user, with dozens of production installs. Gradually, I've been using it less and less and now I feel I must describe why, in a hopefully productive and positive fashion. In short: it's all about the packages and ports. An operating system is useless without its applications, and the currently blessed binary package management system, the pkg is seriously broken. I was very enthusiastic about pkg (then called Read More


Installing Django on Windows

Though it is obviously a blasphemy, sometimes it is actually necessary to run Django on Windows - mostly due to a ...

Though it is obviously a blasphemy, sometimes it is actually necessary to run Django on Windows - mostly due to a client having based its infrastructure around the Windows ecosystem. The "blasphemy" part comes from Django being a really nice framework which evolved on and for a Unix-like system, and it relies heavily on features like WSGI, FastCGI, and command-line tooling which are foreign to the Windows environment. Luckily, the compatibility is improving, by features...

Read More
  • 1
  • 2