I hope the above story, even though didn’t mention anything specific about how blockchain is actually implemented in practice, made some concepts a bit more intuitive. Now, I would like to discuss a few topics relating to the blockchain as we know it, starting from its security.

Security

I’ve heard people say that we should be switching from keeping money in banks to blockchain because it is more secure. While that statement is probably overall more true than untrue there are two important caveats. Switching to blockchain in search for security only makes sense if you know what you’re doing and you don’t trust your bank.

To say that cryptocurrencies are more secure than banks is like saying that cars are more safe than airplanes.

True, if an airplane crashes the probability of survival is near-zero while it is much higher during a car crash. However, there is much more strict regulation around flying airplanes and it’s always a professional crew that is in charge while cars can be driven by anyone, there’s DUI, low quality vehicles or roads. As a result, statistics clearly show that cars are a much more dangerous means of transport than airplanes (source needed).

The bank way

If someone steals my credit card, they are still far from free access to all my money. If I also give them my PIN number, they might be able to withdraw a few tens of dollars before the bank gets suspicious of my anomalous behaviour and blocks the card. And even if that happens, customer service is likely to compensate for my losses for marketing reasons.

The blockchain way

On a blockchain, the experience is quite different. You are issued a private key which is a long string of characters which, if intercepted by someone, gives them instant and irrevocable access to all your money. You could distribute funds among several accounts but that adds to the hassle of maintaining and keeping all your private keys secure. What is more, if you loose or mess with your private key in any way, that also means that all your funds are gone just like that.

If that sounds daunting there are of course other solutions. Currently there are several wallet-type products which do the dirty work for you and provide an easy to use and intuitive app for maintaining your crypto-money. One thing to bear in mind though is that it kind of contradicts the reason why you switched to cryptocurrency in the first place. It was because you don’t trust your bank (or fiat currency or regulators), remember? Whereas now you decide to trust whoever built your wallet app. You are probably also using some intermediate software rather than talk directly to the Bitcoin/Ethereum protocol.

This is not an argument pro or against cryptocurrencies but rather I’m bringing attention to the fact that it actually requires a lot of effort to operate in an environment which is truly trustless.

What blockchain is not

I am slightly confused whenever I hear of projects involving private or permissioned blockchains. The opposites, public and permissionless, sound to me like necessary (not sufficient though) conditions for that technology to exist as we know it.

That’s why my interpretation of such projects is that they offer blockchain-like data structures (immutable ledger) and mechanisms (consensus, smart contracts) in house, usually for applications working on data that could never be written to a public blockchain for compliance reasons.

My issue with that is that I feel like it’s a bit wasteful and sends a wrong message for the wrong reasons. If the blockchain is private, permissioned and controlled by a single party then by definition it is not decentralised and the ledger will never be immutable. And if instead of a simple database, we’re using blocks, cryptographic hash functions and Merkle trees doesn’t make it any more immutable.

There’s no such thing as ‘almost immutable’

Don’t get me wrong, I do think it’s useful to experiment with moving some applications that have always been centralised onto blockchain. However, we must make sure it’s clear for everyone that for a blockchain to bring about all its benefits, blocks, hashes and consensus mechanisms aren’t enough. What’s necessary (on top of the above) is an underlying peer-to-peer network — sufficiently large and decentralised.

This brings us to the next topic. If something feels a bit like blockchain but actually isn’t blockchain therefore does not enjoy any of its benefits — why bother? (Let’s put because it’s cool arguments aside for a moment.) An on-blockchain version of an application (if possible) would take 3–5 times longer than an off-blockchain one (source needed).

Why use blockchain

Perhaps I haven’t manifested it enough in this article so far — I am a huge blockchain fan and I believe there are use cases where blockchain is the only way to go. What’s more, I think it’s so fascinating that I most certainly understand people who use it just for the sake of using it and learning even though they could do without it. That is, as long as they are aware of it.

There is also the case I alluded to earlier (private chains) that uses the blockchain technology in such a way that all the benefits are gone and technological overhead remains. Examples include blockchains based on networks that are too small or centralised to be secure or leveraging a non-trusted third party.

For me there are really three aspects that make blockchain fascinating and why I think it is the next (current) big thing:

the technology itself

redistribution of resources

opportunities for machine learning (AI)

Technology

First of all, it’s the technology behind it. I tried my best to give some intuitions with The Fake News story but I’m aware that’s nowhere near enough and I do recommend reading up online, particularly some of the most important white papers. Also, I definitely recommend installing an Ethereum client and trying it yourself so you get a good feel for more abstract questions like:

what would miners do if people suddenly stopped submitting transactions?

why can the outside world talk directly to smart contracts and not vice versa?

what would it actually take to implement sending Bitcoin or Ether by means of a post on social media, a phone call or as a result of an arbitrary real-life event?

Redistribution of resources

Secondly, think about redistribution of resources. If I were to set up a financial transaction with a farmer in Venezuela or a truck driver in Russia, all potential benefits would be negligible compared to the cost of actually making it happen. Not to mention the fact that we would never have a chance to get to know about one another’s existence in the first place.

Think about a global registry of resources and a system for their efficient management. That’s a perfect use case for blockchain because I cannot imagine a body which could be solely entrusted with handling it. We would like to be able to freely redistribute resources among individuals, businesses and states on a global scale. It must be impossible to tamper with the redistribution algorithm, yet it must be fully transparent — a perfect use case for a smart contract. I personally think it could be a use case for machine learning algorithms continuously being retrained on data they gather along the way. This brings us to the last aspect which in my mind makes blockchain special.

AI

Blockchain is the platform which could allow machine learning (AI, if you will) to flourish freely. It’s been no secret for a number of years now that machine learning is actually all about data.

If I were to choose between state of the art model + little data and terrible model + lots of data, I’d always go for the latter.

It’s no wonder that Google let’s you use Tensorflow for free, Amazon gives you computing power almost for free. As long as it is them who have the data, they win.

Now on to some less concrete and more science-fiction-sounding ideas (inspired, among other things, by these blog posts). Currently, there are many cryptocurrencies, coins, tokens available on Ethereum. (Some people say this is precisely because it’s so easy to launch them.) That means there is room for trading and speculation — opportunities to make a bit of money or loose a bit more money. But there is also room for models trained to do algorithmic trading. All data on the blockchain is there, begging for someone to mine it (pun intended) and train some 7-layer-deep convolutional neural network with dropout, max-pooling, embeddings pre-trained on ImageNet, MNIST, Wikipedia corpus — all the good stuff.

It is not impossible that I do manage to train a model that would learn to exploit people’s mistakes and make some fairly regular profit. Blockchain seems to me like a dream environment for training models — all data is public, all data is structured (contract ABIs, protocols, events) and, increasingly, there’s lots of it. So let’s imagine I did manage to train a fairly decent model and on top of that I managed to implement it in Solidity. Of course in that case I would need to go less fancy (not to mention gas cost) but, as machine learning practice teaches us, usually you can get 90% there with, say, a simple logistic regression with well designed features.

So this is how it would work. My smart contract is given some Ether to start with, then sits there, listens for events* (see image description below), featurises them, feeds into our logistic regression model and translates its output into actions it should take (buy/sell tokens, borrow/lend money, clone a slightly different version of itself which would try to make some money and bring profit home).

*As it is not possible for a smart contract to ‘listen for events’ in a strict sense, that would need to happen via an off-chain service calling into the contract. On the other hand there would be actions that is users and other contracts calling in. Machine learning model (trained offline) would be expressed by means of variables stored in the contract and logic of how to react to calls (by users, smart contracts or off-chain services) and update model variables accordingly.

I glossed over a tonne of detail but there’s nothing that makes that scenario fundamentally impossible. Now, what happens if my smart contract, during its lifetime does generate steady profit? You guessed it — it slowly devours all the money available in the ecosystem. Based on the rules we’ve just defined there is no other option but for it to eventually be all gone.

Where is it gone to though? Nobody stole it. I don’t have it, even though I launched the contract (unless I had set up a backdoor which allows me to withdraw it). It hasn’t disappeared either. It’s in possession of the smart contract, an etheric entity which lives by paying people to let it materialise itself on their computer for a few milliseconds and be gone again. And by materialise I mean perform some computation on their CPUs. The only way to stop it would be to try to force people to stop transacting with it or shut down the blockchain. But haven’t we just spent all that time designing it such that it’s impossible? As long as there are economic incentives for users to maintain it, it will live on. That’s the genius behind blockchain which does sometimes bring about considerations of such slightly concerning scenarios.

As a final thought I would like to briefly go back to The Fake News story and the power of consensus and decentralisation. Those concepts are definitely at the heart of what some of the pioneers of blockchain development think about in terms of the future. Maybe in 5, 10, 20 or 50 years it will be unheard of for any piece of news to get published without some sort of consensus-based decentralised review?

Is that a dream come true since all manipulation and propaganda are gone forever or did we just relinquish all control to an all-powerful entity that is impossible to stop?

Have a think about blockchain. It definitely has the potential to transform the world as we know it.