Bitcoins coolest trick is its voting mechanism, it incentivises playing according to the rules and creates trust. We should reinvent the principle for smart Machine Learning Algorithms. This will allow us to introduce ‘facts’ about the real world into our Systems
In the 1st and 2nd part, I described how Bitcoin organizes Miners so they play by the Rules and how the Principle could be re-used for Machine Learning Algorithms to create a network that converges against the facts.
A neural network can detect a car, many neural networks with the right incentives will establish the fact there really is a car. Then we record the fact into the Blockchain and our smart Contracts rewards a false parking ticket.
‘So, what about Blockchains, Smart Contracts and all these other Consensus Mechanisms? Are you saying this is all Nonsense and all those smart guys working on it totally missed it - did you even read, save alone understand all that stuff you arrogant p@&k ?!?’
Blockchains give an entire Industry a Name, I also use the word. While actually … they are just another way of storing data. Take an average IT Project, would you name it after those Database Tables you set up? I never saw that, you can do that as long as you don’t mistake the means (your data model) as the value your project delivers.
The Bitcoin Blockchain is one of the means to avoid double spending your coins, it does that together with Proof of Work, Merkle Trees, a chain of hash fingerprints and probably other things I even missed noticing.
If you are looking for other added value than security and immutability you have a different data model. Of course ! No big deal at all, if you are interested in Machines acting Intelligent you better give them an opportunity to learn from past mistakes and successes.
If you hold regular competitions in your network, if a player played foul, you better store the answers the participants gave. So, you create a labelled data set: this scene actually was a foul and this was not according to friendly Neural Network ‘xyz’. To bootstrap the System, you will need some human referees to classify a foul. But after a while your neural networks will learn.
Do you want to know, if players from certain nations, age groups or height are better in making a successful dribble? Make sure you have this data in your set from somewhere, make sure the networks can learn from what was classified before hands as a ‘cool dribble’. For whatever question you ask the network, you ensure your data set supports that learning curve.
Distributed Systems are pretty merciless as to who can compete in competition. If you send a Block not generated according to the rules in the Bitcoin network you have no chance to win. If you want a different Data structure in your network to support solving the problems you are interested in, you mandate participants to provide the data you want, otherwise they are excluded from the Competition, easy. As long as you incentivize them accordingly (that actually raises a number of questions not considered, namely if you would want to introduce a cryptocurrency ‘ the fact-coin’ to offer incentives for Neural Networks), they will play along your rules.
There is no limit here, you define the data sets as you like it and supports your use case. Call it smart Blockchain or Smartchain, just forget about the Blockchain or just use the word and be mindful Data structures are the least of our problems because we just make up what we need.
Let’s bash some Satoshi legacy hunters! Now, this is completely exaggerated of course, because these platforms have valid use cases and great achievements to offer. But bashing is always fun and exaggerating helps to drive home a point. These little insults will drip off like water off a duck’s back, if those guys even read this.
For someone used to conventional Databases the idea to secure a number of transactions with a hash fingerprint, and even run the hash over the fingerprint of the previous transaction sets, is a nice trick to ensure no one meddles with your data. Not exactly new, and the reason why the data set is ‘iron — hard’ and you really can’t tamper with it is the Proof of Work Mechanism used in a large network. Nothing more exciting about Blockchains or Distributed Ledgers than with any Data model. If someone gives you too marketing buzz, you run as fast as you can or laugh as loud as you want. There are smarter guys than me making a joke over Blockchains which are in reality just distributed databases.
Smart Contracts, Ethereum: If you are a referee deciding for a penalty you 1st ask if there was a foul. If there a foul, the action ‘penalty’ — that what the smart contract does — is rather obvious. Sure, the referee might be a fool, bribed or coerced. But with a 100% established fact ‘foul’ the ‘smart contract’ doesn’t leave too much wiggle room. There are probably more complex legal contexts, where a smart contract can play an important role. But any smart contract will go astray if we haven’t fed the right facts. The fundamental problem is the facts. If you have the facts secured there are specific contexts where you would want an immutable verifiable code executed on a smart contract platform like ethereum. But are there actually so many?
For a lot of applications the data is fundamental. Algorithms and rules in code are often commodity, subject to legal governance and market forces and that often works just fine. Take a case where someone sets up an application running statistics over all world cup games. It will re-use what neural networks established as facts and is recorded and publicly available in a Blockchain. Players, Fans, Journalists and Coaches can get an account for a small fee. Use whatever technology you like and you can sell. It’s about the right data and the user experience, stupid! The rest is commodity, no magic rules and smart contracts required. If you misinterpret the data or your user experience is bad, your competitor will take over the client.No world computer needed — it sounds scary centralized. And frankly, I need to see some convincing use cases for smart contracts, before I become a believer.
‘Technical Consensus’ I call Consensus Mechanism that fulfill certain technical needs but throw over board the Bitcoin ambition to eliminating middle men.
Some typical technical criteria for Consensus Mechanisms are Consistency (all nodes produces the same valid output), aliveness (all participating nodes eventually produce a result) and fault tolerance (recovery from failure of one node). This is a list of criteria similarly as you ask databases to be ACID (atomic, consistent, isolated, durable).
This is ‘just’ technology! Where is the decentralization, where is the evil middleman we eliminated? I miss the drama here, this is boring ! Hyperledger Intel’s Poet for example is a consensus mechanism that suggests a lottery executed by an Intel hardware. Did they just say that? So we get rid of the banks and let Intel take the middle — man? IBM says Consensus are so ephemeral to their hyperledger fabric that they consider it interchangeable.
Just the opposite of what I say: the Consensus Mechanism is the point of the whole story, without it Bitcoin would be completely different. No question, these are smart engineers with good reasons for what they do. But while such Consensus Mechanisms will support the use cases they are designed for, I do say that they don’t have any of the subversive decentralizing power a mechanism like Bitcoin’s Proof of Work can have.
Like with any masterpiece (Bitcoin is a piece of art !), everyone has its own interpretation and that only proves the point, how amazing the invention is.
It’s about VOTING FOR THE TRUTH, bitch! For me, Bitcoin is interesting fore mostly because it creates the notion of trust in a distributed System without reverting to a middleman like a Bank. It does this via its consensus mechanism, so that mechanism matters a lot, while Blockchains don’t matter so much more than any other data structure. And Smart Contracts can be useful only if you feed them with facts.
Bitcoin transactions really have a very narrow area to cover: they just say this transaction happened then, before and after that one between those two public keys. These Transaction facts do not say a lot about the real world. Machine Learning however can simulate, how humans classify the world. Imagine you could combine that!
My suggestion is to do-it-like-Satoshi: It’s about voting of a lot of participants that have skin in the game. Because the best strategy to be on the majority side is to be honest and list the facts. With the right incentives we can leverage this, just like Bitcoin already does it, and get some real world facts into our Systems.
If you are looking at Learning Systems to list the facts, you should not get into muddy water and say things like ‘code is law’. If the code I wrote in my life was law, it would be complete chaos. Code is buggy, learning algorithms learn. At the end of the day, we need to trust ourselves and hope we find these bright referees, smart and untouched. They do exist.
But there is no harm automating some of the stuff they do and there would be some pretty exciting use cases out there, if we manage that. All I am saying is: Mashing AI Algorithms with Consensus Algorithms for Distributed Systems and mixing it with some game theory is a great area for research.