Developing in Blockchain: The Need-To-Know When Getting Started
Depending on who you talk to, blockchain is often either considered a game changer, or it’s viewed as the single worst thing in the world. It can be difficult to have a reasonable debate when most people are extremely tied to their respective views on the subject.
We wanted to hear what someone who stood in the middle of the blockchain love/hate debate had to say about the technology, so we reached out to Stefan Tilkov, co-founder and principal consultant at INNOQ, to get his thoughts on what someone who’s new to blockchain needs to be aware of.
Be weary of the hype in both directions
If you’re getting started with blockchain, the first thing you need to be aware of is that there is a lot of hype and anti-hype around it.
A lot of people who think blockchain is the best thing around may lead you to believe you should use it to solve every problem out there, but the reality is there are very few specific use cases where blockchain is useful.
Because of this misuse and misunderstanding of blockchain, there tends to be a lot of hate towards the technology too. If you use it in a place where there is a better solution — which there often is — then you get all of the downsides (plus more than if you used it in a fitting way) and none of the benefits.
Stefan runs a consulting company, and they’ve been extremely careful to make sure they don’t make anyone a blockchain consultant, because as soon as you identify too strongly with a particular technology — in this case blockchain — you then run into the problem of viewing everything as an issue where blockchain is a great solution and that is absolutely not the case.
Be extremely critical about the requirements of the use case
Avoid using a blockchain solution if you can — if there is any other possible solution, it’s always the better option.
Out of all the use cases out there in the world, blockchain matches about 0.1 percent of them. But if it’s that 0.1 percent, there really is not much else you could use in its place.
If you have the requirements for a blockchain solution, then even the energy wasting, proof of work, Bitcoin-style blockchain has its use case — in Bitcoin for example.
Even within the blockchain space there are very few things that have the same requirements as cryptocurrencies like bitcoin, but again, if you have those particular requirements, there is no other alternative solution.
Find the right blockchain based on trust
The number one requirement for something like Bitcoin is that you can trust no one.
On the contrary, you have to assume that everyone is out to get you — that’s very different from typical approaches.
In a normal situation, when you set up a server-side solution and set up a web server cluster or a database cluster, you set up those machines and trust yourself, and you and your team operate it securely or maybe use a trusted cloud provider.
The machines themselves that form this server solution don’t have trust issues between each other, so you don’t assume one of your database servers is trying to commit fraud and steal your money. But in a cryptocurrency like Bitcoin, that is exactly the case.
Proof of work
The way Bitcoin and similar cryptocurrencies protect you against malicious actors is through having a proof of work consensus protocol, which in short, is an energy wasting way of proving that you did something — this is the thing that Bitcoin is most criticized for, and as of now there is no mature alternative.
If you don’t want to have any trusted party — any centralized bank or server that you can trust — then you have use for this particular kind of blockchain.
But there are a number of scenarios where this no-trust approach is not needed. For example, where you have a collection of banks that want to cooperate, or a central bank that wants to issue a digital currency, then the central bank is seen as a trusted party, and so it’s perfectly fine to relax the requirements and choose a different solution.
Trust is the number one criteria for choosing which kind of blockchain technology you want to use.
If you can trust everyone, then you should not be using a blockchain. If there is no trust issue at all, then use a traditional centralized database solution because there is no point in using a blockchain.
You have a range of options, and depending on the requirements, you have different solutions.
There are a lot of cryptographical solutions, like signing stuff or validating a fingerprint or proving that you knew something at a certain point. There are tons of cryptographic operations and primitives that you can apply that don’t have anything to do with the blockchain, they just happen to be used as part of blockchain technology.
Just because you want to make sure that something is supported in a cryptographical fashion does not mean you have to use a blockchain.
A good example of this right now is the app that displays your COVID vaccination certificate on your phone. It’s got nothing to do with the blockchain.
Blockchain should only be one tool in your toolset that you apply only when appropriate.
It’s slow, painful, wasteful of energy and resources, and you don’t want to do it unless you have very valid reasons.