Eight standards to assess a blockchain program
Note: Zhang Lei is the author this article. As a blockchain developer, he now turns to the online education of blockchain developments. You may find his contact info at the end of this translation.
In 2017, the Blockchain is on the rage, where there has been numerous programs based on it, thus reflecting the acceptance and implementation of the blockchain in the public. As the researcher and practitioner who has been working in such field for years, we are supposed to be more conscious to ask ourselves “What real value(s) can the blockchain provide in terms of the social governance and the enterprise operation?”.
According to what I know, there are many blockchain-related programs being at the level of “Proof-of-concept”, while even some of them are irrelevant to the blockchain at all. In terms of the software architecture technology, the classic“relational database” technology fits better with those programs (e.g. Enterprise-level products like Oracle, and SQL Server; lightweight products like MySQL, and PostgreSQL, etc.). In other words, straightforwardly:
It will be way too foolish to use the blockchain technology if a program can be achieved by using the relational database.
And some of you people may ask me why based on that quote. Basically, it is because that the data systems, like Oracle or MySQL, have been developing for decades, as well as being deployed in more than millions of servers globally with more than trillions of queries day by day. Since these systems have been through the detailed test/evaluation and performance optimization, it would be just a “lemon squeeze” thing for them to process thousands of transactions within one single second. Besides, these programs are supported by tens of thousands of software engineers and system engineers. Actually, mature solutions based on database technology could be found for our daily software or apps.
Although the Bitcoin network, as the most representative technology in blockchain, which has been in operation for eight years, is still facing challenges in terms of its stability and reliability. Considering other blockchain platforms, which is not the case I really want to mention, have either just started or been in the Alpha pace.
Instead of talking about the uselessness of blockchain, what I am trying to indicate is the fact that the development of the entire blockchain technology is still at initial phase. If we were using the technical route of blockchain, we should have concerned a series of its limitation conditions at the very beginning of IT planning part. Before those conditions are taken care of, it is required for you to come back to the database domain. And this move may help you define the program more accurately, or even save more time and cost, in some aspects.
Alongside the ideas which are illustrated above, there are EIGHT fundamental conditions/standards for individuals who want to make a utilization of blockchain.
If you want to set up a blockchain-related program, you should design it as a database-based program. Technically, the blockchain could be deemed as a kind of “shared database”.
Briefly, the relational database is typically the data which is stored with multiple tables, while the relatively fashionable NoSQL uses the file system to manage data storage. (Theoretically, the NoSQL database is just one of the subsets of the relational database.)
The data in the blockchain, take the bank statement we frequently described as an example, could be demonstrated as a table within the database. To be specific, each line is linked with a certain bank account. And there are three columns in each line, namely representing: 1) account ID, e.g. The sole unique bank account number; 2) asset type, e.g. China Yuan, or U.S. Dollars, etc.; 3) the quantity of acquired/owned assets.
Basically, the simple operations on the data can be completed through SQL commands, while the complicated transaction operations can be completed through “Stored Procedure” function. The stored procedure is a combination of multiple SQL commands, which should be entirely operated successfully, or entirely failed. For instance, if there is a transaction command, the quantity of assets in a certain line will decrease, while the other line’s will increase simultaneously.
2、Requiring for multiple “Write Operators”
In terms of the data operation types, there are basically two types, namely the “Read Operation” (query command in database) and the “Write Operation” (increment operation, Modification Operation, Deletion Operation). Therefore, acquiring the access of “Write Operation” means having a complete control capacity of data.
The blockchain could be considered as a shared database involving multiple write operators. In other words, the transaction command can be initiated by numbers of users. And the users can modify the data in blockchain as well. Do you know who these write operators are?
Within the blockchain network, these write operators usually are those operators/runners of the “Blockchain Node(s)”. All of them own various blockchain data backups, and they also transmit the transaction commands via P2P approach.
Many users can also initiate the transaction, however, they do not own the nodes. So they have to indirectly modify the blockchain data via other nodes. For example, there is a blockchain-based payment system being maintained and supervised by several banks. Although it involves millions of end/terminal users, these users still have to keep contact with their own bank system.
3、“Lack of Trust” Issue
If the blockchain data is modified by multiple users, some certain level of distrust relationship will occur. Therefore, the blockchain is also a type of database technology supporting multiple mutually distrustful write operators.
Apparently, you may think that the distrust relationship only exists among discrete organizations, such as the trade/deal among a number of banks within a certain international market. Furthermore, besides the external distrust, the internal distrust will occur simultaneously in some aspects, for example, it happens among different departments under different vice presidents’ administration.
Considering the Distrust in data, all of the users are not willing to have their data modified by others, let alone the data conditions report from others (they will not trust the data unless they search out). The reason is that everyone holds a diverse interest appeal, or represents a different value proposition.
4、Decentralization (or Dis-intermediation)
So far, we have covered that the blockchain can deal with the operation issue from multiple distrustful subjects. In terms of this issue, actually, we have an extra solution everyone knows, AKA finding an intermediary which/who everyone trusts. That is to say, although all of those users mutually distrust each other, they trust the intermediary agent.
This solution has been widely utilized, for example, the bank statement system has been using that intermediary method. Individuals seem to check and modify their accounts based on the data, but in fact, they do not directly make these actions on the database. Instead, they authorize a database user in the bank’s background system to help operate. And the vital reason, as well as the fundamental function, is that we trust the banks which help ensure the transaction’s validity and the account’s security.
The implant of blockchain could help get rid of the dependence on the intermediary, that means all of the users can directly initiate the transaction, and complete the operation on data. By the way, all of these transactions are examined by the blockchain nodes with the authorization verification and validity verification.
Puzzles also come with the convenience after the introduction of blockchain. Questions like “Why not find a reliable and trustable intermediary?”, “Why we have to achieve decentralization?”, have always been bothering the public.
5、The Interaction among the Transactions
As is mentioned above, a blockchain system involves multiple operators, it does nott need to be trusted and decentralized, etc., but this is not the real reason to deploy the blockchain system. If you need to deal with the interaction relation among multiple transactions, then the blockchain is a good choice.
What is the interaction between multiple transactions? Simply, there is an interdependence among the transactions initiated by different operators. For example, A initiates a transaction to B and B initiates a transaction to C. And in this case, B depends on the transaction of A. if it does not verify the legitimacy of transaction A, it can not verify the legitimacy of transactions B
Furthermore, there is a feature of blockchain, that is, the transaction can be initiated by multiple users (triangular debt or multi-party debt), and either party does not need to take risks. This is the reason why interbank settlements can safely be operated via blockchain, and does not require the participation of intermediary structure.
There is also an example in the identification system, a customer’s identity information can be independently verified by different aspects of the main body. For example, the public security departments verify household registration information, the banking sectors verify financial information, hospitals verify medical information. Although these verifications are independent of each other, the blockchain provides a mechanism to unit these information.
6、The Need of Developing Transaction Rules
This is not a condition of using blockchain technology, but rather an inevitable result of using blockchain. When multiple subjects which do not trust each other and initiate different transactions, then there is a need for some kind of built-in trading rules to constrain these transactions.
The constraint rule in this block chain is different from the constraint rule in the database. The constraint rules in database is mainly to check the database state at a specific time; the constraint rule in transaction of the block chain is to verify the legitimacy of the transaction. Each blockchain node uses these rules to verify each transaction, and the result is: the transaction is rejected or passed to the next node, and then, continue the verification.
In the block chain of financial systems, a basic trading rule is to prevent transactions can create assets out of thin air. The rules ensure that the total amount of assets must be the same after each transaction.
7、The Need of Choosing the Transaction intermediary
The requirements above focuses on the data level, and in terms of the transaction organization, the role of the block chain is the transaction intermediary — it is an authoritative transaction results log/journal. If your project needs to choose transaction arbitration, then the block chain is a good solution.
Why do you need this log/journal?
Firstly, when a new node is added to the blockchain, it can download all the transaction history from source, and there is no need to download information from other untrusted nodes.
Secondly, some nodes may have missed some transactions due to a system failure or a network failure. If you do not have these logs, it will lead to a separation between a node and other nodes in the database, which will undermine the goal to share the database.
Thirdly, two transactions may occur at the same time, but only one transaction is accepted. A typical example is the “double consumption”, he assets in a blockchain are simultaneously paid two different subjects, because the blockchain transmit the information by P2P. Different nodes can have different views on the transaction , So it is necessary for the transaction to “confirm” the block, to ensure that different nodes can achieve a unified decision.
Finally, in the Ethereum-style blockchain platform, the order of the transactions played a crucial role, because each transaction affects the next transaction. In this case, no transaction can not be processed without blockchain.
The blockchain, literally, is multiple blocks make up a chain, and each block contains a number of confirmed transactions. So who will decide which transaction should be entered into which block? It needs that some nodes in the blockchain network become the role of “arbiter”, which is the “miner” in the bitcoin. They can create new blocks and ensure the legitimacy of these blocks with digital/electronic signatures.
An essential difference between an arbiter and an intermediary is that the intermediary has much less authority to operate the data, and they can not make a false transaction or violate the rules to modify the data content. In the case of a financial system, the arbiter can not spend money on others or change the total amount of the asset.
There are three options for selecting or specifying an “arbiter” in an enterprise-level blockchain project: 1) control multiple nodes under organization; 2) set up a core group to maintain the block chain; ) All nodes.
8、Anchor the Real Assets
The consideration we have on the blockchain, inclines to be as a “shared database” instead of the “shared billing” which people often discuss. As a technical factor, the range of blockchain’s application extends way too wider than the tracking problem of those financial assets. Although the blockchain is so almighty, it is just designed as a simple and natural application/approach to solve asset bill managerial issues. And it is due to the development of bitcoin.
A core question for the blockchain-based financial asset management is “Who sign the endorsement for the transaction data in blockchain?”. In other words, if I have ten units asset in blockchain, who is(are) able to help us redeem/switch them with ten units real asset. Otherwise, if there is no one that will help me deal with it, and then who should I sue or claim for compensation?
Certainly, the answers of those choices are totally diverse according to various cases. In terms of the monetary assets, we can imagine that those custodian banks accept the pro-forma currency, and then share the depositors’ account information on the blockchain. Therefore, the custodian banks is taking the responsibility of the agiotage of assets in blockchain. Concerning the commerce financing, the credit voucher and the lading bill will be supported respectively by the importer’s bank and shipping company. In addition, someday in the future, the companies can directly issue bonds via blockchain to make it as a brand new financing tool, based on the finished endorsement within blockchain data.
Like what I have mentioned at the very beginning, if one certain program do not tend to achieve those EIGHT standards above, and then the blockchain technology should be not considered to be put into utilization. And keep in mind: 1) the regular file/data storage; 2) the centralized relational database; 3) the Master-Slave database replication technique; 4) the user subscription mechanism based multiple database system.
If your program meets the first FIVE standards/conditions, you should consider the way to set up transaction rules within the application as well, and you need to feel confident on the intermediary you have chosen. And at last, before anchoring one type or multiple types of financial products for your developed blockchain system, finding the agency that help you to deal with the endorsement should be taken care of.
If you happen to come up with a real suitable case being related with the blockchain, please contact me via cell phone or Wechat (18601078890), so that we could have a wonderful and detailed discussion.