The blockchain is the underlying technology behind bitcoin, the cryptocurrency everyone is talking about right now. However, contrary to bitcoin and all the controversy surrounding it, the blockchain is a technological innovation per se that has proven its reliability. It is quite ironic that bitcoin can be used to pay for all sorts of illicit or illegal trade activities but thanks to the blockchain it is not possible to carry out these transactions with fake bitcoins. Furthermore, and most importantly, blockchain technology can be used for a wide variety of applications other than creating a cryptocurrency.
What is the blockchain?
A blockchain is basically a shared public ledger that keeps a record of all transactions between participants or network nodes, or to be more exact blocks of transactions that make up the chain:
- In chronological order: each block has a unique id and contains a reference link (hash) to the previous block.
- Immutable: once a block has been validated and added to the blockchain it can never be removed or modified
- Shared: each network node possesses an identical copy of the blockchain: also known as a "distributed ledger"
- Decentralized: no single network node can act as a "trusted third party" that holds a master copy of the blockchain
- Transparent: every transaction recorded in the blockchain is visible to all network nodes
- Impossible to forge (tamper-proof): It is extremely difficult or virtually impossible to insert a fraudulent transaction or even just a transaction error in the blockchain.
This leads to a number of questions that we are going to try and answer in the rest of this article:
- How is a new block added to the blockchain?
- How is the irrevocability and reliability of transactions that are registered in the blockchain guaranteed
- How is the anonymity of participants guaranteed?
Last but not least, what can it be used for? Let us first provide a brief answer to this key question.
What are the possible uses of a blockchain?
In order to understand the possible uses of the blockchain, we need to start with the notion of the transaction. A transaction or a transfer is an exchange that occurs between two parties requiring the presence of a trusted third party who can attest to the validity of the transfer, i.e. between two parties who basically have no reason to trust each other mainly because they do not know each other.
The transfer is used to broadly refer to a pre-existing asset or right that is transferred from one party to another, or to the creation of an asset or right of which the transfer consists in certifying that the person is the only initial holder:
- Transfer or proof of ownership: currency, securities, real estate etc.
- Transfer or proof of entitlement (right of ownership): identity, copyright, vote, etc.
- Transfer or certificate of commitment: renting, lending, sharing of material, etc.
In all the above examples, the validity of the right is endorsed by a trusted third party: bank, central securities depository (csd), registrar, registry office, trading marketplace, lawyer, copyright organization, municipality etc. that keeps an up-to-date registry of ownership rights.
The blockchain cancels the need for a third party presence, while maintaining the essence of the function, i.e. trust. It allows for ledger sharing or distribution among all parties in a decentralized manner that guarantees the authenticity of the information it conveys.
How does the blockchain work?
What does a blockchain look like?
As with all information systems, the block chain infrastructure is based on an information storage system (database) and a software data processing layer:
- The storage system or database itself is quite simple as it consists of a chain of blocks, each containing its own unique identifier or hash (we will come back to how the identifiers are generated at a later stage) and information linking it to the hash of a previous block. Computer programmers are quite familiar with this type of information organization in the form of chains or “pointers”.
- Each block contains several transactions in order to optimize the quantity of information the network nodes exchange every time a blockchain is updated.
- Open-source software that is maintained by a community of developers as in the case of bitcoin and other so-called "public" blockchains may be used, but private blockchains that are distributed and maintained by profit-driven companies also exist now.
- Everything (the blockchain itself) as well as the software that it operates on is shared among all the network nodes: all the participants hold a complete record of all transactions ever made on the entire blockchain.
How are these transactions validated?
Transactions are validated by means of the double public/private key underlying cryptography. Each participant of the blockchain owns a public key that is a unique identifier shared in the blockchain but also owns a unique private key that he alone disposes of. In order to sign a transaction, the participant, for example Dorothy, enters the text information that requires signing as well as her own private key in the "Sign" function which in turn sends back a "Signature", which is a unique byte stream:
Sign ("I sold my bike to Jane, dated 02/02/2016", Dorothy’s private key) = "Signature"
Dorothy can now enter the new transaction in the blockchain with her signature and her public key. Whoever wants to check that the transaction has indeed been issued by the owner of the public key enters the transaction, the issuer’s public key and the signature in a second function "Validate". If the signature and the public key "match", the function answer is "True" otherwise the answer is "False":
If Validate ("I sold my bike to Jane, dated 02/02/2016", Dorothy’s public key, "Signature") = "True"
Then we can consider that Jane is now the new owner of the bike
Please note that this system also respects the confidentiality of the participants. The public key is simply allocated in a unique manner by the system but does not reveal the identity of its owner
How is a transaction validated?
As we have just seen carrying out a transaction is extremely simple, all you need to do is enter the text of the transaction, generate the signature by means of a private key and post it all on the network: all the nodes are immediately informed that "Dorothy sold her bike to Jane on 02/02/16". Everyone can verify that Dorothy’s signature is authentic by means of her public key. So if Jane then wants to transfer her bike to Mary, the participants will accept the transaction.
Yes but... what stops Dorothy from posting a message the same day that she has also sold a bike to Laura? Or if it concerns bitcoins what can stop her from double spending the same quantity of bitcoins?
To prevent this, the order in which the transactions are entered in the blockchain must be immutable so that they can be verified any time by checking the records that Dorothy does indeed hold the quantity sold – which in this case would mean that she would have to own TWO bikes (or bitcoins, or shares of a particular company etc.) – at the moment of the transfer.
The transaction will be considered valid if all the network nodes reach consensus. The confirmed transaction will then be added to the blockchain definitely and immutably.
How is consensus reached? Method 1: Proof of Work
As and when transactions are created, they collect in a new block while waiting for validation. Special network nodes known as miners are in charge of validating transactions. As we noticed it is relatively simple to carry out. But then again it remains to be proven that the work has been carried out correctly and in an honest way! In order to do so the miners will be:
- Competing with each other
- Motivated by the validation results
The competitive procedure consists of work carried out by the miners to solve a complex mathematical problem. In practice, it involves the use of a cryptographic 256-bit hash function called the SHA-256 to generate a byte stream that will make up the next block’s identifier, which contains the hash of the preceding block and a test number. It also requires that the resulting chain commence by a pre-determined number of zeros
SHA-256 (hash block n, test number) = hash block n+1 (which must be preceded by x number of leading zeros)
The SHA-256 function behaves in a totally unpredictable manner and it is impossible to turn a hash back into its original string. Miners have no choice but to generate random numbers continuously, until they find a winning one that satisfies the arbitrary condition.
The first one to successfully create a hash can validate the block, post the new identifier or "proof of work" on the network and earn a reward…bitcoins! This is the system’s incentive and that is how bitcoins are created
Establishing consensus requires an enormous amount of computing power. Consensus can be trusted as long as:
- No one in the network can control more than 51% of total mining power
- The cost of acquiring this control largely outweighs the resulting benefit
What happens if two blocks are validated at the same time?
If this happens, there will be a fork in the chain, meaning the two blocks that have been created carry the reference of the previous block, which is undesirable as two versions of the same story are being written. In this case an essential operating rule will be applied: if at a given moment two chains appear, accept the longest available chain to validate the block. At worst, during a brief moment the miners will work at the same time on the two versions but very rapidly one of the chains will become longer than the other. The shorter chain will be ignored and the remaining transactions it contains will have to be validated once again.
This means as time goes by, more and more blocks will be added to the blockchain and it will become more and more difficult to reverse a valid transaction, as the computing power needed to do so would be insurmountable.
As stated in the original paper by the legendary Satoshi Nakamoto: "The system is secure as long as honest nodes collectively control more CPU proof-of-worker than any cooperating group of attacker nodes".
Theoretically it is interesting to note that the blockchain "solves" the well known "Byzantine General’s problem" (please refer to the bibliography where you can find further information on the theoretical aspects) but this solution is not really one as it is a "practical" solution and we are still left with the theoretical problem!
The weak points
In its original version Nakamoto’s consensus protocol is extremely robust but has major disadvantages:
- It is not very efficient. Because block validation requires an enormous computing effort in order to be reliable, the network adjusts the difficulty of the number of zeros to be found according to the number of participants, so as to ensure that the average time needed to generate one block remains equal to 10 minutes. This means that theoretically the bitcoin network validates seven transactions a second, whereas Visa processes on average 2000 transactions per second!
- It burns an outrageous amount of energy. For example a server farm in the State of Washington burns 240 kwh per mined bitcoin. Although the blockchain is based on libertarian concepts, one cannot say that it is very environment-friendly!
Method 2: Proof of Stake
This is why another consensus protocol is being developed. One that is not based on "proof of work" but rather on "proof of stake". Basically this time a large number of users is not required to validate a block, a single network node is sufficient (but everyone can still control the validity of the work). Instead of earning a small amount for a valid result, a block generator stands to lose a lot if he posts an invalid result! He must prove that he owns a sufficient proportion of assets (money, securities, rights) managed by the blockchain.
The major advantage of this method is that it is a lot more efficient in saving both time and energy when processing transactions. However it does present some weaknesses especially concerning the level of security. But, it all depends on how the blockchain is used. A "private" blockchain that functions with a limited number of participants who more or less know each other "in real life" (for example banks) could in fact benefit from this method.
An interesting option: the "smart contracts"
Up until now we assumed that the blockchain was the platform behind a succession of relatively simple transactions such as "at a given moment A transferred to B an x quantity of a certain asset). A promising blockchain application could store "smart contracts", i.e. protocols that are capable of triggering actions based on their current state and a triggering event.
An example from everyday life could be: "if the lender is late in paying his car installments, hand the ignition key over to the bank…" In finance it could be "if the swap’s intermediate due date is reached, trigger the interest payments and calculate the new rate "…
Blockchain technology in finance
Blockchain application in capital markets
We concentrated quite a lot on the multitude of possible blockchain applications in the preceding chapters. In the near future you can expect to see more and more articles on the subject, even in mainstream publications. This is already the case in the English press.
However, considering that this is a website dedicated to finance we need to go into more detail concerning the possible applications in this field.
A system that could be trusted by all concerned to manage transactions seamlessly and securely would obviously not go unnoticed among the financial actors for very long and that is exactly what is happening right now. There is a proliferation of projects involving mostly "proof of concept" testing of the blockchain and distributed ledgers. Not one day goes by without some press release mentioning the subject. Here is a brief overview of the various areas of application:
- Blockchain technology could provide tremendous headway in the transparence and securitization of OTC derivatives and financial securities transactions (repos and securities lending and borrowing). Basically, the blockchain itself would be the "trade repository" that is able to identify who owns what contract at all times, the stuff that financial regulators dream of (EMIR, Dodd-Franck)
- The post-trade value chain in securities markets: In this field everything depends on the pivotal role a central depository plays in keeping the only record of the number of outstanding securities. Blockchain technology would eliminate the need for a central depository and the ensuing series of intermediaries needed to carry out transfer of ownership following the purchase and sale of securities.
- Trade finance. In Trade Finance the complexity lies in the storage and access to trade documents proving that goods are in a given port of destination and also information concerning the transport. All the information could be stored in the form of "smart contracts" on a blockchain.
- Private capital funding or debt financing for companies: The blockchain can be used to register and trade shares of growing businesses that are as yet unlisted.
Banking and the blockchain: a contradiction in terms?
Originally bitcoin and its blockchain technology was an eminently ideological venture. Its underlying ideology is that of American libertarians who campaign for the demise of the state. The blockchain was created so that bitcoin could function (and in fact functions) for users in a satisfying way that bypasses state control, central banks and …merchant banks!
The role of a "trusted third party" is at the core of the banking business, not only as far as monetary exchange is concerned but also for all types of financial contracts, securities, debts, derivatives etc.
It therefore follows that bank strategies can be understandably defensive and they will opt to ride the waves of change to avoid being engulfed by them. It’s a safe bet to say that the most interesting initiatives will not be coming from the banks themselves or the post-trade infrastructures such as clearing houses etc. because that would mean cutting off the branch they are sitting on, but instead from new market players.
And that’s where key players like regulators, who are following these technological developments with great interest, come in. Of course they could nip progress in the bud if they felt it was contrary to financial security and stability but on the other hand they may provide strong encouragement to fuel their cause. (See what we mentioned previously concerning OTC derivatives).
It is also advisable to take into account acceptability of this type of solution by the users, individuals or companies for the banks, capital market investors. Who should we trust the most:
- A single intermediary, the bank, that is well established, overseen by supervisory authorities and an army of auditors but that is also likely to harbor a rogue trader capable of jeopardizing the bank by trading on its capital worth several times over?
- Or rather, a large network of individuals, totally unknown and potentially more or less honest but none of which is able to take control of the system alone?
I leave it up to you to answer this intriguing philosophical question.
A word of advice: use Google alert to keep track of new publications concerning the subject…and plan to spend some all-nighters reading them all!
NB: links valid at time of publication, August 3, 2016
With reference to finance
- But not necessarily completed!
- As per the American researchers, Diffie and Hellmann in 1976
- Special but (as far as bitcoin is concerned) anyone can become a miner if he so wishes! In practical terms miners set up “farms” for increased efficiency. Plus anyone in the network can confirm that the miners do their job well!
- in view of the vigorous method employed the term “solution” seems slightly exaggerated here
- Here the author hazards a personal opinion concerning this question!