In the past few months I’ve been involved in several activities whose subject was one of the most trending and discussed topic in the tech world: Blockchain.
To be honest, the first time I was asked to work with this “new” technology my first thought has been:
Blockchain? That stuff behind the hacker crypto-currency? COOL!
Obviously I had no clue of the technology behind Bitcoin and my knowledge at that time was based on some lectures and chats with colleagues.
Actually many people talk about Blockchain thinking to have a clear vision and awareness about it, but the (sad) truth is that most of them have just a slight knowledge built on internet. Well, just to clarify, I’m not saying that I am an expert or that only experts can talk and discuss about it, but keep in mind that complex topics, like Blockchain, require at least a basic learning which is, in my opinion, more then reading blogs or websites on internet.
Why this post
The reason why I've decided to write a blog post about Blockchain is not because I want to add a(nother) quick-start or easy explanation of the technology into the internet archive. So why should you continue to read it?
As I said before, I’ve had the chance to study, work and learn from the field what this technology may offer (a lot of potential opportunities) but of course also when it would be better to invest in something different.
So my goal is to give you some food for thought and to feed your curiosity sharing my honest feedbacks and thoughts.
The Five Ws
Ok so, let’s start the discussion using the journalistic rule of the Five Ws which, I hope, will give us a more critical approach:
The first questions you should ask when start studying or working with a technology are:
Who decided to use it?
You and your team, both technical and business, are the only one to be responsible into the difficult decision on which technology to invest, and to use, during the analysis and architecting process. Generally even if you or someone in your team is not 100% confident with the technology chosen there’s a common though that everything is mutable or replaceable; well, consider that if you’ll take the decision to remove or replace the Blockchain components from your ecosystem you will probably need to reinvent end re-engineer your whole ecosystem. So yes, you can break your relationship with Blockchain, but it will be an expensive divorce :)
Who is going to use it?
The most simple and abstract definition of a Blockchain is “ a distributed database of transactions where each transaction (or block) encapsulates some information from the
previous transaction, forming a chain of transactions“. Keep in mind that even if the literature definition contains the database word, a Blockchain is built to be an irreversible database! The most correct term to use is Ledger and the “ Right to be forgotten” is incompatible with the immutable laws of ledgers! So be sure that the utilizer of your system agrees with these laws.
Looking at the second “Who” question you will probably better understand why it’s crucial to have a deep knowledge of what exactly Blockchain is before to start any project which is more than an experiment. So here's a list of questions you should be able to answer:
What is hashing?
What is a Ledger?
What is a distributed database/ledger?
What is a shared (and shared) database/ledger?
What does it means mining?
What is the consensus?
If you can’t answer to all the questions above, in a detailed way, it’s clear that you need to study more and deeper this topic.
Blockchain is not so young as you may believe! The first work on a cryptographically secured chain of blocks was described in 1991 and the most famous public Blockchain project (Bitcoin) was conceptualized in 2008. This is just to say that if you feel some pressure about timing or you can’t wait to start because tomorrow“ it will be too late”, let’s relax and take your time to have a complete envision and to avoid bad situations. Remember that it’s never too late to make the right decision.
When talking about a technology like Blockchain, distributed and decentralized, it’s obvious (at least for me) that the best place where to deploy it’s on Cloud. If you think to design and distribute a Blockchain on your computer or your local server, you are probably wasting your time in the worst way I’ve ever seen :)
Furthermore all the most important Cloud providers are investing so much in this technology, and you should invest in cloud too because it will let you save a lot of time and energies!
Another important consideration is that Blockchain solutions are more than just Distributed Ledger Technology, which would be actually just one piece of the whole puzzle! Imagine for example all the involved components of a supply chain scenario like below:
So when you ask “where” it’s very important to imagine where to place your whole system, and I think that Microsoft has one of the best Blockchain solution approach on the market.
And here’s the last, but not least, question: why should I use Blockchain?
Before to show you a very useful graphic I want to share with you the most important think I’ve learnt in these months: even if you are able to use the Blockchain in every market industry, this does not mean that it’s always the best choice! So, how to make the right decision? Try to check how many of the following requisites you need for your project:
I hope you enjoyed my post and I'm open to your feedbacks and opinions. As I've already said before, the goal of this discussion is to share with you my experience and, hopefully, to give you some hints about this topic.