Blockchain is software designed to create decentralized databases.
The system is fully open source, which means that everyone can see, edit and propose changes to their underlying code base.
Although it has become more and more popular thanks to the growth of Bitcoin, it has been around since 2008, about 10 years old (old in computer terms).
The most important point about the "blockchain" is that it was designed to create applications that do not require a centralized data processing service. This means that if you use a system built on top of it (ie Bitcoin), your data will be stored on thousands of "independent" servers around the world (which do not belong to any central service).
The service works by creating a "big book". This registry allows users to create "transactions" with each other – the contents of these transactions being stored in new "blocks" of each "blockchain" database.
Depending on the application that creates the transactions, these must be encrypted with different algorithms. Because this encryption uses cryptography to "scramble" the data stored in each new "block," the term "crypto" describes the process of cryptographic securing of all new blockchain data that an application can create.
To fully understand how it works, you must understand that the "blockchain" is not a new technology – it just uses technology in a slightly different way. The core of it is a data graph called "merkle trees". Merkle trees are essentially ways for computer systems to store "timelines" of a set of data, allowing them to manage continuous upgrades of that data.
This is important because the current "data" systems are what could be called "2D", which means that they have no way of tracking updates to the basic dataset . The data is essentially kept as is, with all the updates applied directly to them. Although there is nothing wrong with that, it is a problem in that it means that the data must be manually updated or very difficult to update.
The solution proposed by "blockchain" is essentially the creation of "versions" of the data. Each "block" added to a "string" (a "string" being a database) provides a list of new transactions for that data. This means that if you can link this feature to a system that facilitates the data transaction between two or more users (mail, etc.), you can create a completely independent system.
That's what we saw with Bitcoin. Contrary to popular belief, bitcoin is not a "currency" in itself; it is a public registry of financial transactions.
This public ledger is encrypted so that only transaction participants can see / edit the data (hence the name "crypto") … but even more so, the fact that data is stored and processed by Thousands Servers around the world mean that the service can operate independently of all banks (its main attraction).
Obviously, beside the problems related to the underlying idea of Bitcoin, etc., the service is based on the fact that it is essentially a system running on a network of processing machines (called "minors"). All use "blockchain" software – and are working to "compile" new "block" transactions that keep the Bitcoin database as up-to-date as possible.
While many people have blindly committed to the blockchain, it actually has a number of vulnerabilities, including the fact that it relies almost entirely on the encryption algorithms used by its different applications. If any of these algorithms fail or the users are compromised in any way, any infrastructure "blockchain" could suffer.