What is a Blockchain?
Considered by many to be the new type of Internet, the blockchain technology is an invention that allows for the distribution (but not the copy) of digital information and was initially devised for the Bitcoin cryptocurrency. As defined by Don and Alex Tapscott, the authors of ”Blockchain Revolution”, ”the blockchain is an incorruptible digital ledger of economic transactions that can be programmed to record not just financial transactions but virtually everything of value.”
All the information, that a blockchain contains, exists in the form of a shared database. This information is not stored at any location, which, in fact, means that the records kept are publicly accessible and can be verified with ease. In other words, the database is hosted by a network of millions of computers simultaneously, which makes it accessible to anybody with a connection to the Internet.
Since a blockchain network can be perceived as a sort of a ”self-auditing ecosystem of a digital value” and every transaction that occurs is reconciled in specific time intervals, all the data contained within the blockchain is transparent and incorruptible.
The blockchain network consists of millions of ”nodes”. A node is, in fact, a computer connected to the network via a client, which validates and relays transactions. Each node has a copy of the blockchain, which it downloads automatically as soon as it joins the network.
If we are to classify blockchains, perhaps the most general differentiation would be as follows:
– permissionless, or public blockchains, which include Bitcoin, Ethereum and so on. What is specific about them is that users have a copy of the blockchain and participate in the transaction verification process of their own volition. Users may also keep their anonymity;
– permissioned blockchains, a prominent example of which being the digital currency Ripple. In order to have a copy of the blockchain and to participate in the transaction verification process, users have to obtain permission. Additionally, with such a type of blockchains, users cannot keep their anonymity.
The Technologies behind Blockchains
Every blockchain is comprised of three underlying technologies, which are combined to ensure security of digital relationships:
– cryptographic keys;
– a distributed network with a shared ledger;
– a network servicing protocol.
1. If two persons are willing to make a transaction between one another on-line, one public and one private key will be associated with each of them. This combination of private and public cryptographic keys creates a digital identity, or digital signature. On the other hand, digital signature ensures strong control of ownership. However, the latter is not sufficient to ensure security of the digital relationship between the two persons. What is needed is a mechanism, which to ensure the transaction’s authorization. This is where the so called ”distributed network” comes into play.
2. The distributed network is the next key technological segment that comprises the blockchain. Its benefit can be explained with a simple example of ”the falling tree in the jungle”. In case a tree falls in a jungle and this event is recorded on multiple cameras, there is a great deal of certainty that the event actually occurred, because visual evidence is present. By keeping this analogy in mind, we should note that the Bitcoin blockchain represents a huge network where participants (nodes) come to an agreement that they all observed one and the same event at one and the same time, while they verify it mathematically.
We can say that the sheer size of the network, in a way, contributes to its security. The Bitcoin blockchain is massive and has attracted tremendous computing power. Currently, the Bitcoin network is secured by more than 15 000 000 TH/s (tera hashes per second), or far more than the 10 000 largest banks worldwide combined.
When the distributed network is combined with cryptographic keys, this brings about a useful form of digital interactions. For example, by using his/her private key User A announces an event of some sort (that he/she is transferring a particular amount of Bitcoins) and links that announcement to User B’s public key. As a result, a segment, known as ”block” is generated and distributed to all participants in the network. This block contains a timestamp, a digital signature as well as other relevant data.
3. Now that we explained how the first two technologies that comprise the blockchain interact with one another, one more question may arise – how is computing power brought in to service the entire network and ensure its security? When it comes to open, public blockchains, the answer lies in a process known as ”mining”, which we shall discuss later. For now, we should only mention that all participants in the network are focused on solving cryptographic puzzles and receive awards for every solution they provide.
A major objective of the network servicing protocol is to neutralize the possibility that one and the same coin of the respective cryptocurrency is used in several different transactions at one and the same time. In order to have value and be owned by users, Bitcoins and their divisible units, known as ”satoshi”, have to be unique. In order for this to be accomplished, a history of transactions is created and maintained for every single coin by all the nodes that service the Bitcoin network. What nodes actually do is use their CPU capability to vote, or they agree on new blocks that have been created, or reject blocks they consider as being invalid. As soon as most of the network’s participants reach one and the same solution, a new block will then be added to the chain. Each new block will have a timestamp and may include messages or other information.
Last but not least, we should note that every blockchain may include a different number of blocks, a different type of blocks as well as a different verification process. All these features are determined by the protocol of the respective blockchain, or the system of rules that defines what a valid transaction is and what is not, what a valid generation of a new block is and what is not.