Blockchain is a technology that was born in 1991 with the publication “How to Time-Stamp a Digital Document” by S. Haber and S. Stornetta with the idea of creating a mechanism to immutably and reliably record all kinds of multimedia files on the Internet.
Since then, the technology has been extended to wider applications and uses. Currently there are several open source options such as Hyperledger, Corda, EFW or Multichain where you can download the blockchain application and program the string to your liking, deciding who you want to participate and under what rules transactions are regulated.
You can also create federated environments by forking a public network, such as Ethereum, thus creating your own custom network. That’s why, on many occasions, the code generated by the developer community can be and is reused.
As an example, in Github you can find the Ethereum or Hyperledger repositories, which are perhaps the two most used software to establish new Blockchain networks.
When designing a solution based on a blockchain network, you can start by taking into account the following:
Blockchain is not a cryptomoneda.
Bitcoin, the first and most successful cryptomontage, used blockchain technology to create a network in which anonymous people could make non-trust currency transfers without the need for intermediaries. After the birth of Bitcoin, many other crypto currencies began to be launched using blockchain, now numbering more than 2,000.
Beyond the criptomedas, the success of the blockchain technology to generate consensus, work in a decentralized way and resist hacking attempts with its immutability condition, motivated the entrepreneurial community to consider it as an attractive option to build digital solutions at government and business level.
Once it is understood that blockchain is not a criptomoneda but a decentralized record of information that is stored in the form of transactions that are grouped into blocks, questions arise such as what are the transactions? or what are the participants and how do they interact with the network?
So what are the key elements of blockchain to design a solution?
First, it is worth recognizing that not all blockchains are the same. In general, we can classify the different types of blockchain into four groups: public, private, federated and “Blockchain as a service” (BaaS). Its main differences are the model of administration, the level of decentralization or the degree of transparency, among other characteristics.
The most common option when developing digital solutions with social impact value are federated networks, which allow companies and government institutions to use blockchain technology to generate consensus and increase security. The example we will give in this blog corresponds to a blockchain of this type.
However, there are certain ingredients that almost all blockchains have in common by default. The three key elements in the blockchain’s function are its participants, assets, and transactions.
The participants are all those collectives that are going to play a role in the digital solution with blockchain. These include from the companies that manage the network (if there are any) to the ordinary users, through auditing entities, financial institutions, etc..
To measure the role of each participant, it is worth asking yourself: What are the permissions you will have on the network? How will you interact with the system? Will you have access to a copy of the whole chain? Will you be able to see only the transactions in which you participate or will you have access to more information? Which are the transactions you will be able to carry out?
Depending on the answers to these questions, participants may or may not receive a copy of the entire chain and may or may not have permissions to view and/or validate transactions.
Only the participants who have a copy of the chain are considered nodes, according to the definition given in our document. The rest, which will generally be accessed through a web service or mobile application, are simply users.
Once we are clear about who the participants are going to be, we need to know what they are going to exchange through the blockchain network. The way to understand this group is to think that when participants make a transaction, they are often transferring something. That “something” is the asset, and it can be a document, a certificate, a report, a token, a digital currency, etc.
It is also important to point out that heavy documents are not stored in the blockchain but in databases connected to the blockchain, which also allows their modifications to be recorded. This is motivated by efficiency issues, since all nodes have an updated copy of the chain and the inefficiency is directly proportional to the weight of the chain.
The third element is transactions. Although we already know who is going to “play” (the participants) and what the “toys” are going to be (the active ones), we still need to define what the rules of the game are going to be.
Transactions are the way in which any modification in the blockchain is registered, from the change of permissions of a user in the system, to the issuance of a certificate or the sending of an economic transfer.
They can also be seen as the operations by which participants create, exchange, modify or destroy assets.
Blockchain to monitor an international supply chain
So let’s go with the example. Suppose a Uruguayan company wants to export a shipment of meat to Mexico. The Mexican government demands that the meat be certified as free of foot-and-mouth disease and that it not exceed a certain temperature along the entire route.
With this objective in mind, there will be a periodic control of the temperature, let’s say every 15 minutes, in the container in which the meat travels. If the meat arrives in Mexico having the certificate “free of foot-and-mouth disease” and without having exceeded the required temperature, it is desired that the Mexican government make the payment agreed to the Uruguayan company.
What would a blockchain solution look like here? What are the participants, the assets and the transactions?
- Participants: The Uruguayan exporting company, the government of Mexico, a financial entity that will hold Mexico’s money while the shipment travels, an IoT device that will send periodic information on the temperature of the container, a certifying entity that verifies that the shipment is free of foot-and-mouth disease and issues the corresponding certificate and a possible auditing entity that oversees the entire process.
- Assets: The assets here could be the certificate that the goods are free of foot-and-mouth disease and the temperature evolution history measured by the IoT device, which is issued only if the temperature has not exceeded the desired threshold.
- Transactions: Transactions could be notification of shipment from Uruguay, notification of deposit of payment, issuance of certificate of absence of foot and mouth disease, information on the periodic measurements of the IoT, notification of arrival of the shipment and notification of payment.
At the bottom, it shows how of the five participants, only the Uruguayan company and the Mexican government have access to all the information in the blockchain while the IoT device, the financial institution and the health inspector only have access to the information they have to provide to the chain of blocks.