Alin Iftemi is Co-Founder of Modex, a research & development company specialized in delivering enterprise-level solutions that make blockchain technology affordable, fast, and easy to adopt for end-users/developers
It has been more than 17 years since I had my first job as a software developer, and have gained a lot of experience in applying technology trends in real-life enterprise software products.
Developing production software for industries like construction engineering, telecom, shipping, banking, and fintech, I became passionate about the technological trends that shaped the last decade, including big data, machine learning, and A.I. – however, I have spent the last 4 years looking very closely at Blockchain and how this technology can be applied at its best potential in enterprise software development.
In my opinion, blockchain technology will revolutionize the data protection industry, giving back the control of “personal data” to every citizen or company, because blockchain has enormous potential to enhance the way that individuals, governments and businesses interact, by enhancing trust between these entities.
Blockchain – the Developer’s Perspective
I am sure all tech readers know blockchain is, but the reality is that it is not how non-technical people see it.
My technical background and my profession does not allow me to look superficially at software products and I always dig for HOWs, for WHYs, and if it is possible. I get my hands dirty and try to look under the hood.
However, lay people, including business leaders often don’t approach new technology like this – they lack technical skills and rely on the media to lead on technology – and unfortunately, the mainstream media tend to focus on buzzwords, unconfirmed opinions, and assumptions based on irrelevant experience. Without being exposed to technical details, non-developers and business leaders may not have the right source of information or the opportunity to dig in for more insights.
Just as when the internet first appeared, there was great confusion between email and the internet, Blockchain technology is intensively associated with cryptocurrencies and all the grey shades around this industry – in technology, it seems that history always repeats itself!
Of course, the answer to the internet is: “the internet is the infrastructure. Email is the service that uses the infrastructure!” This, of course, answers the blockchain confusion as well.
“Blockchain is the infrastructure and cryptocurrencies are the applications built on top of it”. To prove this conceptual association I will come up with a small history lesson.#
There is a very long list of rumors spread around blockchain technology:
- Blockchain is a speculative technology, a hard to predict asset which can generate huge financial losses
- Blockchain is a slow technology, due to mining and also due to its high resource hardware stack required
- Blockchain is used in the dark web and it goes hand in hand with illegal activities
All these quotes are wrong, they may apply to cryptocurrencies but they are not at all specifics of blockchain technology.
The history of the Internet and Blockchain
The origins of the Internet date back to the 60s when the US DoD wanted to enable time-sharing of computers.
Cryptographer David Chaum first proposed a blockchain-like protocol in ‘82 in a paper called “Computer Systems Established, Maintained, and Trusted by Mutually Suspicious Groups”. Further work on a secured chain of blocks was described in ‘91 by Stuart Haber and Scott Stornetta.
The primary precursor of the INTERNET, the ARPANET, initially served as a backbone for the interconnection of regional academic and military networks in the 70s.
Ray Tomlinson is credited as the inventor of email; in 1971, he developed the first system able to send emails in the same form that we are doing it today.
The first blockchain was conceptualized by a person (or group of people) known as Satoshi Nakamoto in a white paper in 2008 and one year later, in 2009 Bitcoin was released as open-source software and as the first production software built on top of blockchain technology.
In conclusion, Blockchain is an infrastructure built on a conceptual technology and cryptocurrencies are applications built on blockchain technology.
So…what is blockchain?
A blockchain is a growing list of records, called blocks, that are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data.
Why all of this hassle? Why store information in this strange data structure?
The purpose is to create a digital dependency between these blocks of data. The data tag can contain anything – a list of records, any regular strings, or financial transactions. The hash function is applied on the entire block which includes both the data and the previous block hash. Having the block fingerprint/signature included in the next block will determine a chain of mismatches in case some data is altered.
For example, if we change the data in the first block, the block fingerprint is going to be different from the fingerprint stored in the next block. If we change the hash value in the next block, then the next block’s fingerprint is going to be different, and so on. So in order to obtain a valid chain of blocks, after you have modified historical information, you must recalculate all the hashes for all blocks on top of your modified block. Which of course, is not necessarily a hard task to do, especially if you are a well-trained programmer. But how long will that take? Even if the time necessary for doing this is not necessarily relevant, you will see why blockchain has made this process very difficult.
The immutable chain is not saved on a standalone server but is replicated on a large number of machines also called nodes. The blockchain infrastructure is actually a network of nodes, where each node contains a copy of the chain of blocks and a software client which is also known as a network client or blockchain client.
How does a Blockchain software client work?
A blockchain software client will use consensus algorithms to ensure a valid synchronization of blocks across the network, it will read/write data from blocks and it will expose programmable APIs to developers willing to interact with the chain, but it will also determine modified chains or chains whose data don’t match the other nodes data. In such cases, the network will ban such a node and no data will be synchronized on these nodes until a correct blockchain is provided.
Suddenly, the modification of a chain of blocks is not sufficient to trick the system, so an attacker must gain control of several nodes and perform all the chain modifications on many machines, machines which most probably are deployed at different cloud providers, with different security rules and are maintained by different people so the job is getting more than difficult, but most probably close to impossible.
The term blockchain comes from the actual chain of blocks, but today, when blockchain is mentioned, most probably there is a reference to a blockchain infrastructure.
How blockchain helps with security
Another particularity of blockchain technology is the way that security access is maintained. Traditional enterprise software solutions are using centralized database tables to store users’ credentials, and all system users are saved in databases where access is by default granted to developers, DBA’s or in some cases to operators as well. This led in the past to many leaks and security incidents. Blockchain uses public/private key couples, for both authorization and authentication mechanisms, and these keys are maintained by the users, also the keys are not stored anywhere near the infrastructure. You can use these keys as digital signatures to provide non-repudiation and authentication or you can use them to encrypt block data, but no matter how you use them, it is important to remember that apart from traditional systems this technology offers solutions-oriented for end user security as well.
What are the benefits of blockchain?
Data immutability & data integrity is achieved with the chain dependency and data access security is provided by the public/private keys of blockchain users. The fact that we do have a network of replicated functionality makes blockchain a scalable and a distributed system, and having all data available on every node makes blockchain a decentralized engine with high availability as well.
By design, blockchain offers trust to parties that aren’t comfortable with information sharing, and transparency in regards to the operations being executed on the transactional data.
Blockchain offers a list of benefits which look very good – and from experience, we know they work great! The Bitcoin blockchain network has been live for 11 years and to this day I haven’t met or read about the DevOps team that maintains it, and most likely I will never do because it does not exist. In my line of business, having a live product with this uptime and with no continuous support is something very cool – but this is just half of the story. There is a long way from seeing a technology live in production and understanding its benefits, to the actual implementation of the same benefits in real live enterprise products or in existing software development processes.
How does blockchain work in practice?
At Modex, we took this challenge and we looked deeply into this matter. We noticed the technology’s benefits, we followed up with the technical developments in this direction and we also watched very closely how and where this technology can help enterprises and what businesses actually want from blockchain.
First of all, I want to introduce the term blockchain engine. A blockchain engine is a software product, of course in the form of a blockchain infrastructure, designed to facilitate block data immutability, consensus, data synchronization, basically the full stack of functionalities and benefits I have explained earlier. There are several players on the market developing blockchain engines, each one with its pro & cons.
When it comes to business software development, enterprise software development, we must not forget about a few important things: the need for structured data, fast data access mechanism with multiple indexes, reporting, and BI, so shortly said: DATABASES. One of the major problems with blockchain, apart from being hard to get (and costly at some point), was how to use it! How to make use of these benefits in existing software products, how to make it easier to adopt for developers, and how to combine it with database engines which are by far vital components of software products.
What is BCDB from a technical point of view?
Our challenge was to combine these two architectures (blockchain & databases) in an efficient way. In order to achieve that, we started from the traditional client-server architecture.
We separate the application server from the database, and we position our core between them. We also bring the blockchain client and the chain in the picture, in such a way that our core becomes the middle piece between all these parts. The application server will always have the possibility to access directly the database, to execute reports, or to interrogate data, but doing this via Modex BCDB, will enable a full set of benefits such as data immutability, data reconstruction, integrity checks, and many others, guaranteeing the total protection of the valuable or sensitive information.
The BCDB product allows you to store data encrypted out of the box, no matter what engine is installed under the hood, and no matter if the installed database engine supports encryption or not. Furthermore, an architect can choose what data should be stored in an encrypted format and what data can be stored in plaintext.
The permission mechanism of Modex Blockchain Database, which includes data sharing, also benefits the data owner. Each party inserting records will have the possibility to specify record visibility in the system, public records will be seen by everyone, protected records will be seen by everyone but will only be visible based on permissions granted by the owner, and of course, private records are available for the data owner only. Also, BCDB will reconstruct the information automatically but it will also offer the option to perform the reconstruction manually, based on configuration, especially because these kinds of frauds might require detailed forensics.
So is blockchain the answer for every project?
The answer is NO.
This technology does not apply to all software products, it can be technically adopted anywhere – however. for some solutions, it just does not make sense.
Nonetheless, it’s important to recognise that Blockchain is all about trust and it is up to us whether we choose to embrace a transparent future – not just developers, it is up to all of us, business leaders included, to decide if we want to look at a future where software products are actually designed with people’s interests and data privacy in mind.