Many of the people I meet believe that bitcoin is bad and will fail. It’s rare to meet anyone who says that it could change the world and will succeed. But I’ve found one and he happens to have written a very good blog about it: Akin Fernandez, Entrepreneur Developer of Azteco.
It’s a long read, but worth it if you want to be informed.
TL;DR If you have software that does something that is valuable, it will sell itself once people hear about it. What other people are doing wrong does not impact your software.
There are some interesting and sportsmanlike debates happening around software properties and philosophy in the area of Bitcoin and the Blockchain. There are two distinct camps in this fascinating debate; the software developers and the non software developers.
The non software developers can be characterized as Statist Sceptics. On top of not understanding how Bitcoin works, they do not like Bitcoin in principle, because they are Statists, and they are doubtful (without reason) that it can gain traction and spread globally. They have been Moving the Goalposts (a Fallacy) for several years in debates about Bitcoin, and have had to concede humiliating defeat many times as Bitcoin resists all their baseless nonsense and hopelessly bad predictions.
First they said Bitcoin was a Ponzi Scheme, then they said it was only for “techies” then they said it was a bubble, then they said some other nonsense about it. Now, no one says any of those things, and they are onto the next iteration of their FUD; for example, the transaction rate is “not fast enough”. They have conceded that Bitcoin works exactly as specified, and are running out of novel attacks. The rumblings of complete capitulation are starting to be written, and its a distinct pleasure to read them.
Compounding the anti-Bitcoin proponent’s frustration are voices that they recognize as deeply authoritative (IBM), saying that, “The underlying technology could change everything”. Those that are retreating into that camp now say, “And also Bitcoin” when they talk about “Blockchain Technology” as the latest way to try an diminish the world changing effect Bitcoin will have.
All the Bitcoin detractors have several characteristics in common.
1 They do not develop software
2 They do not understand or use cryptography
3 They do not have the language to describe cryptography
4 They have a quasi religious belief in the necessity of the State
5 Their only way in to the software world is by analogy
Without an understanding of cryptography, it is not possible to understand why Bitcoin works. Without an understanding of Austrian Economics, it is not possible to understand why Bitcoin is limited to 21 million units. Without an understanding of software and its history, it is not possible to predict the future course Bitcoin will take.
If you do not understand cryptography, specifically, Pretty Good Privacy, it will be difficult to understand the idea of a cryptographic signature, and its properties. Bitcoin is not a system of “Smart Contracts”; it is a system that uses cryptographic signatures to verify that a piece of text is now “locked” to the owner of a private key, who has the sole power to unlock that text and sign control over it to another owner of a different private key. All of this takes place on a public ledger.
This is not at all like a contract, and neither is it “smart”. In order to “send” Bitcoin to another person (N.B. sending and receiving Bitcoin never actually happens, you simply sign an entry in the ledger and your balance, the number of entries you can sign, changes which is represented as a number), you must use your private key to sign a message that is verified by the network. The system that controls this and verifies that the same signature on a piece of text can only be assigned to one key at a time is the breakthrough in The Double Spending problem, the explicit reason that Bitcoin was developed.
This system can be used for other purposes that require registration of signed text, that is certain, but the Blockchain was developed specifically to facilitate the creation of a system of money that is free from government control, and immune to inflation. This idea, the idea of sound money, is anathema to Statists. They love government money that robs the poor and is the source of many of the troubles we face today.
Do you see what I did there?
I described what Bitcoin is, without using any poor analogies and stating only the facts. This is important, and I will come back to it later. Bitcoin does what it is designed to do. It does it very well. It will do it even better in the future, and this is something that non software developers do not understand; software is not fixed. The Bitcoin network we have today is not the same as the Bitcoin network at its start. There will be improvements in every area, including the speed at which the network runs. In the past, downloading the entire Blockchain was needed for every peer. Now you can download a pruned version that is smaller, and there are clients that do not require downloading the entire Blockchain at all. Anyone who presents a Straw Man Argument that Bitcoin cannot work because it takes “too much” time to confirm transactions, or the transaction volume is small compared to SWIFT or some other centralized system clearly cannot think, and doesn’t know anything about software or its history.
In the past before the global software precedents, they could have been excused for doubting the spread of any particular software or hardware, as the infamous Clifford Stoll did when he said the web “would never take off” but now, in 2015, we have numerous examplesof devices and software that spreadglobally and that scale. The flash drive, which used to hold 64MB,now holds 64GB in the same form factor. There are one thousand and twenty four megabytes in one Gigabyte.That means in the picture below, the top drive has one thousand times more storage space than the bottom drive.
I have no doubt that these same people, had you enthusiastically said to them, “Your 64MB flash drive will hold a 64GB in a few years and cost less!” would have scoffed at the idea. The same thing is happening with Bitcoin. Men who know nothing about software are scoffing at the idea that Bitcoin can change and improve. Its an a-historical perspective, to use parliamentary language. On IRC, they simply say, “DERP!”.
Often these people group the Blockchain and Bitcoin with tangentially related projects like Ripple, leaving out the crucial details that allow you to distinguish one from another and make a proper judgement, either by deliberate omission or ignorance. Ripple is very different to Bitcoin. It is a “pre mined” currency where all the tokens are created at once, by the developers. Bitcoin on the other hand, is designed quite differently. Its money creation mechanism follows a predictable curve, and is achieved through the process of competition between miners. This was done to keep the expansion of money supply under control until all the Bitcoin is generated, and is a direct result of the correct ideas in Austrian Economics.
There is no boss, thankfully
It is entirely right to say, “Bitcoin is controlled by no one”. When this construction is used, it is meant to distinguish between Bitcoin and tools like Ripple, which is centrally controlled. Clearly, the Bitcoin miners control their own hardware and software, and the Bitcoin reference client is under the supervision of the man who is currently responsible for it. At the same time, the network requires consensus for it to operate properly, and it cannot be corrupted or gamed by a single entity. This is exactly what is meant by, “controlled by no one”. It is not controversial to say this, and it is an accurate description of how the Bitcoin network operates.
What the Statists do not like about Bitcoin not being under central control, is that its success is a strong, undeniable signal that control by democratic government is not needed for essential societal functions like money, and that there are better ways to organize every aspect of society that do not require government. The idea that money will no longer be the special preserve of the State and its corrupt central banks is deeply disturbing to these men, and so, they do anything they can (which is precisely nothing) and say anything they can (which is too much) to undermine the idea that Bitcoin does not need to be centrally controlled.
Comparing any centralized service, like Ripple, which maintains a definitive central ledger in its offices, to Bitcoin is absurd. These two softwares are in completely different categories, and this bad comparison highlights the naked computer illiteracy of the men who make this febrile comparison. Ripple tokens, the way they were generated, who controls them and the software are all crucial pieces of information that you need to grasp before you can make a judgement about it or compare it to Bitcoin. Once you have a grasp of these, you can clearly see that Ripple is nothing at all like Bitcoin. Bitcoin, if you need to make a comparison to existing software, is more like the BitTorrent Protocol. Once again, if you have used BitTorrent, you will know what I am talking about. If you have not, you will not.
There is nothing stopping anyone from making clear, detailed distinctions between different software projects. We can say that Ripple is nothing like Bitcoin, and X software is like Y software. This is useful, and shying away from the details is not; in fact, omitting the details of how software works only causes confusion, and helps spread uncertainty. GPG users and promoters are very used to the computer illiterate characters who will say things like, “Yes! but I’m sure the government can read PGP messages, there is no way that they can’t; they can do anything!” without any evidence or knowledge of what they are talking about. It is only now that Edward Snowden has confirmed that GPG is beyond the reach of the NSA, that their ignorant anti GPG nonsense is forever dispelled as garbage. Once again, this is the Faulty Appeal to Authority fallacy; GPG works because it works, not because someone says it works. The same is true of Bitcoin.
No matter what software you are talking about, you need to make the case as to why it should be adopted by a user. If there is nothing like it to do the job your software can do, your sales pitch is easy. Bitcoin has this advantage; there is nothing like it in terms of what it does and its scale. Other software projects, have a harder case to make.
Imagine for yourself, a new software project, that wants to leverage a new technique. In order to sell the project, the facts about it need to be explained, and the software demonstrated. Anyone with experience in testing new software knows how these pitches go. They are very short and terse in the text (just as the Bitcoin White Paper is) and you are invited to run the software yourself. The install process is simple, and then the software either does what it developers claim it does, or it does not. Its all simple and straightforward.
If the explanation is too long, and the software essentially unusable, then you have an indication that something might be wrong. Couple with that, the fact that it doesn’t solve an outstanding hard or easy problem, and the second level alarm bells start ringing.
BitTorrent and Bitcoin solve two very hard, distinct problems. BitTorrent solves the problem of how to share files to many people without a central server to distribute them serially. In the past, if you wanted to download a large file, you had to line up behind other people who were downloading the file one person at a time.
With BitTorrent, the file is broken up into pieces and distributed out of order for re-assembly at the destinations in parallel. It is much faster than a serial download, and each person with a full or partial copy of the file can share the parts of it they have with other people who do not have those parts. Its all coordinated automagically in the software.
BitTorrent is a breakthrough in how files are distributed, and was the result of many years of thought on the problem of how to distribute files without a central server. There had been other attempts at solving this problem, and it took several iterations before BitTorrent was developed by one man: Bram Cohen.
Bitcoin has a similar history. For decades developers have been trying to solve the problem of creating an efficient intangible money token. After several attempts, the main problem, how to stop people spending the same token twice (a problem of synchronization) was solved in the form of Bitcoin.
In each of these cases, the explanation is simple, the software solves a big problem, and you can download it and use it immediately to solve that specific hard problem. Its clear, unambiguous and instantly beneficial.
Now back to our imaginary software project. This project does not solve an outstanding problem. It is designed to be a database like MySQL or PostgreSQL, usable by any organization that wants to store data. This project is trying to re-purpose the Blockchain software to do the common and simple task of a database of a kind that runs on commodity hardware and free software. There is an explicit rejection of Bitcoin by its developers and promoters and the use of Bitcoin in this project, and most importantly, they have not figured out how to create a Blockchain without Bitcoin; they try to hide it in a sea of text and jibes describing what they are doing.
What is wrong with this picture?
This imaginary software that I describe is not trying to solve a real problem. Any organization can download MySQL, hire some developers, not even top flight ones, and create extremely fast applications that do everything they could imagine they need.
If they have an extra requirement of being able to audit who wrote what to the database and when, by adding cryptographic signatures to all entries and changes, they could have a completely audit-able and 100% reliable system where who did what and who owns what entry could be infallibly known. I will divert quickly to describe how it could be done.
In a trusted organization that requires verifiable database entries, it is possible to use GPG signatures to stamp each entry in a way that makes them unforgeable and tamper evident.
To do this, you issue everyone with write access to the database, a GPG Keypair that they use to sign entries and changes. Each signer will have a GPG Keypair, and a separate machine will automatically sign all entries with its own keypair, for time stamping and authenticating entries. To understand how this works and why it is infallible, you need to understand what GPG does, what a cryptographic signature is, and how it can be used toauthenticate text, enable non-repudiation of a promise and the integrity of entries that are passed through this tool.
Creating a system as I describe here does not require a breakthrough in software or theory. It is doable now, and can scale, and the tools are well understood and secure. The vaunted infallible, incorruptible public ledger features of this system can be had without using the Blockchain or an experimental derivative of it. If you want a database that is filled with entries that are not corruptible, you do not need a Blockchain to achieve it, you need infallible digital signatures precisely of the kind provided by GPG.
One of the tell-tale signs of what we call “Snakeoil” are features that have no meaning. Imagine a software project that made the claim that they have, “made Blockchains controllable” That doesn’t mean anything. All software is controllable by default, by the developers who write it. This is not a new feature or a breakthrough, it is simply the way things already are.
It is very suspicious that a set of men attack the idea of Bitcoin, rather than expound the value of their own offering. The world needs more software. This is a fact. If you have something that is good, then by all means promote it. Saying that another piece of software, that by your own admission does not even overlap with your use case is a bad thing, quite rightly raises serious questions and suspicions about the true motivation behind such statements, and detracts from the thing you are claiming you are trying to sell.
Bitcoin is not, “just a database” anyone who says this does not understand what a database is, or the achievement of solving the Double Spending Problem. Databases are everywhere, common, and have been for decades. Bitcoin is causing global excitement precisely because it is not “just a database”, it is profound and new breakthrough.
Bitcoin users do not have a common objective, but use a common means to achieve their objectives. Saying that Bitcoin users have a common objective is like saying people who use the fiat dollar or web servers have a common objective. Clearly they do not; web servers are used to serve web pages. The objectives of the people publishing pages are expressed in the text and images the users post for the world to see. Bitcoin is nothing more than a tool, just like any other tool, and nothing can be implied or imputed onto its users simply because they use it.
The Bitcoin designer had a specific aim in mind, and part of his genius was to predict the human reaction to a money that is sound. As the true nature of money is further exposed by Bitcoin’s spread, more people will come to distrust and reject fiat money issued by central banks, and the creator of Bitcoin’s mission will be complete.
Bitcoin is designed to be decentralized. The miners and software maintainers do not have “limited supervision” over the network; it is ordered by its operation and doesn’t require supervision or control. To say that it does, demonstrates a profound misunderstanding of how Bitcoin works. The only way you can claim that Bitcoin is supervised is to change the meaning of the word “supervised” and this is another thing that Bitcoin detractors do; they change the meaning of words to confuse and distract anyone who is trying to understand Bitcoin’s operation as a newcomer or computer illiterate that can be swayed by bad arguments because they cannot distinguish the truth and lies about Bitcoin.
Blockchains are run on software. They could also be run with pencils and paper and the mail. Blockchains are data. It is wrong to say however, that if you write the rules that you want expressed that they will “do exactly what we tell them to do”. This is false. The Blockchain works precisely because the rules that govern its operation are finely tuned. The rules that govern its operation is the breakthrough. You cannot simply wave your hands, shout, “die Bitcoin die” at the top of your lungs and command that a Blockchain start exhibiting a set of features you desire. That is nonsense on stilts. Problems do not fall to the mind of man on demand. This is why they are problems. The Blockchain and by extension Bitcoin, if it were “just a database” or a simple matter of telling computers to “do exactly what we tell them to do” would have been invented at the same time that the database was invented. Blockchains are not just databases, they are something very new, and novel, and clearly, very hard to understand for some.
You cannot, bearing this in mind, “obtain the benefits of the Blockchain” without Bitcoin. This idea, that you can have a Blockchain whilst entirely stripping away Bitcoin by simply writing some software should send up a giant red flag.
It is entirely legitimate to desire and imagine and then write any manner of software you want. It may even be possible to create software that seems to be irrational on the surface, but which works. But there are some things thatcannot be done, and even if they can, do not need to be done.
As I described above, there is no need to use a Blockchain to secure database entries, make them infallible and trustable, and to extend that trust outside of the organization that holds the central database. No new techniques need to be developed to do this, so the question that immediately comes to mind is…
Why are they doing this?
Recording a cash deposit is easily done on a true database like MySQL, enforcement in a breach of contract is done by courts all the time. You cannot have software enforcement of a payment of money without the valuable token that can be confiscated by the software contract, so removing Bitcoin from your novel offering doesn’t make any sense. You need the valuable token to ensure that both parties do what they promise to do. But if your philosophy is that the State should be the sole arbiter in disputes, there is no need for Blockchain contracts; paper ones will do. It is only in the scenario that you want to replace Government courts as arbitrators in disputes, and lawyers to draft and interpret the law that Blockchain contracts have real, revolutionary utility. Adding an extra layer of complexity to the existing monopoly courts and banking system that even the promoters of the bad idea cannot explain coherently and convincingly is not a good business idea.
You cannot simply “choose to look at Blockchains as an open source database”. First of all the term “Open Source” refers to software licenses, not to the license that covers the content stored in them, and the Blockchain is not a simple database; it is far more than that, as I have explained.
The entire idea of Blockchains and Bitcoin is that the transactions areirreversible. It is not a beneficial feature to create a Blockchain that hasreversible entries on it. If you want that, you use PostgreSQL or MySQL not a hacked version of the software that runs the Bitcoin Blockchain.
It is not practical from a business perspective to use tools for something other than what they were designed for, especially when there are mature tools that do exactly what you need without any risk. Take that into account and then superimpose the Procrustean idea of reversible Blockchain transactions, and essentially you are demonstrating that you have entirely missed the point and innovation of the Blockchain.
The Blockchain was designed specifically to bring into being a new form of money. It literally is a money printing press. The form of money it generates is clean, ethical, anti-centralization and anti-State. This is why it rankles so many people who are invested in the idea of the State, and who are its certified gatekeepers.
There is no right way to do any sort of software. Software is written to meet the needs of its users. If you want to use a database to store pictures of your navel, that is a correct use by default. There is no wrong way to use software, but there is a wrong way to use it if your goal is very specific.
If you want an efficient database to be used internally in a corporation or enterprise, you do not need to re-engineer the Blockchain to remove Bitcoin from it to do so. You simply use MySQL or PostgreSQL. You use the right tool for the right job, and you do not force a tool on to a problem simply because the words that describe it are hip and fashionable.
The Blockchain was specifically designed to allow Bitcoin and its properties to exist. By definition, that is the correct use case for that software; to create a decentralized, peer to peer digital money substitute without the Double Spending Problem. If you have another novel use case and you re-purpose the software used to create the Blockchain, that is good; but if you do not have a novel use case, you do not need to use the Blockchain.
The Blockchain does not need anyone to be right about it, and it does not need to be defended, any more than arithmetic needs to be defended; it justis, and that is all there is to it. Its use and growth is its own defence. Its logic is its own defence. Its utility is its own defence.
Most rational people do not have an objection to any software being re-purposed or re-designed. It simply doesn’t matter what people choose to do with their time and what software they want to release. Software cannot attack other software. It is irrational violent men who attack other men for holding the “wrong” ideas, and of course, the anti Bitcoin men are very eager to physically attack Bitcoin users simply because they use Bitcoin. This is the stark difference in ethics of the evil men who are against Bitcoin and the men who are natural and normal.
Software doesn’t care about what view you take. It only executes as it is instructed to execute. Either your product works and achieves your aims or it does not. If it does, then you have to convince someone that your offering is worth risking their data and business on. This is the simple truth.
A Blockchain is demonstrably not like any other database software. The superficial advantages that the Blockchain offers in terms of proving that something has happened at a certain time or that someone has the keys to unlock an entry, can be trivially replicated on MySQL or PostgreSQL with a GPG layer. Propagating messages in a verifiable way is easily done with SSL and GPG without a central server, using BitTorrent as the transport layer. Anyone familiar with GPG and the Web of Trust knows this. Permissions in MySQL are mature and reliable. If cost savings (and risk savings) are your aim, you would be far better off using the standard tools in an organization, which by its nature is centralized and where accountability and privacy are needed.
The Blockchain is for a different purpose; its aim is to move accountability to the network and out of the hands of a central authority. If you are selling something to an organization that requires central authority, you do not need the Blockchain and its guarantees, because these are achievable by compulsion, and verification done by digital signatures.
Transparent audit logs are achievable by other means than a Blockchain, and organizations more often than not, like to keep the details of their internal databases private, as they contain business sensitive data. Spreading out the database task into the public onto servers not under the control of the corporation is not something that is desirable. A product that does this is a solution to a problem no one is trying to solve looking for a client that does not exist; the complete opposite of Bitcoin and the Blockchain, which is a solution to a real problem that has been sought after for decades, that everyone needs.
You do not need a consensus mechanism in a company where everyone is under centralized control. The board is the consensus mechanism. Computers today are so powerful, and storage so inexpensive, large databases can run on laptops without any problem. Distributing the load over many machines is something that is required only in “Big Data” Scientific applications, where the idea of the Blockchain and its record keeping abilities are simply not needed.
There is a demonstration floating about from one of the “Blockchains not Bitcoin” companies, where they claim to have replicated Netflix on their software. Not only is this use case an example of piracy of copyrighted material, but this function is already efficiently done with BitTorrent on a global scale.
These new Blockchain derivative products do not know what they want to be, and of course, Netflix does not want a distributed system in the way they devise, they want a centralized system so they can profit. The only thing they could want in terms of distributed architecture is the use of BitTorrent to stream films to their customers. Everything that is Blockchain is worthless to them…unless they start taking Bitcoin for on demand viewing of films, which of course, makes the case for Bitcoin as a transformative “tech”.
Someone said that Google could reduce their server costs with a hacked Blockchain. This is absurd. Hardware is very cheap. Re architecting Google’s infrastructure to use a Blockchain offers them no advantage whatsoever. Google’s needs are simple; they would pay billions for a very fast high level loss-less compression breakthrough. This would mean that their existing infrastructure could instantly have greater capacity with no hardware retrofitting. Apple just had something similar happen to them; a software developer wrote a novel image compression algorithm – they bought it and are incorporating into their software. That is real innovation; solving specific problems that are well defined, with a novel approach.
Uber, AirBnB, Spotify and the vast majority of companies all need simple databases to run their services. The true innovation that helps them is Bitcoin. It reduces the cost of processing payments, and eliminates the risk of fraudulent payments completely. This is not something to be sneered at; it is a revolution in how people pay for services, and it will completely destroy the Credit Card industry forever.
What sort of man could possibly be against this?
Or claim that it is anything less than one of the most profound beneficial breakthroughs in the history of computers and software?
No Straw Man, Faulty Appeal to Authority, corporate gibberish or FUD can stop Bitcoin. Its use case is too obvious and compelling, the savings too great, the elimination of payer fraud too seductive.
Bitcoin is real. It is not vaporware. It is here now, you can use it, benefit from it and you don’t have to ask anyone’s permission to do so. The permissionless nature of Bitcoin is an offence to the Statists, who openly say that every new technology or software should be exposed to scrutiny and regulation by the State, no matter what it is. Bitcoin, being immune from that sort of anti-Americanism, doesn’t care what you think, or recommend; it simply is, it will do what it is meant to do, like BitTorrent does, and nothing can stop it.
You are not required to like it, integrate with it, use it or even talk about it, and lying about it will not dissuade people from using it. The benefits are obvious to anyone who can think, and those who think instinctively like to save time and money and resent lining up and showing ID to use their own money. Setting up a Blockchain wallet takes literally five minutes and once its done, and you fund it, you have hand-held global access to the entire world market, as a bank, where you can send and receive an unlimited, unrestricted amount of money to anyone, anywhere, instantly. That’s a good thing.
This is the core of the reason why Statists dislike Bitcoin. It sets people free to do as they like with their own money. Unfortunately for them, its too late to stop Bitcoin. All the vaporware, wishful thinking and FUD in the world can’t stop it. Years of bad press written by ignorant men have not stopped its growth, and every day that it grows it is going to become harder to retard.
By all means, continue to write your own software, but do not believe for an instant that anything you say can stop Bitcoin. Only software can stop Bitcoin, and to do that, its function needs to be a better Bitcoin than Bitcoin, not any coin that is in any way crippled. Bitcoin has unleashed an idea into the world that will never ever go away. The world has changed. You can either deal with it, or leave it.