Sitemap

Development of Blockchain-Based Software Systems:

8 min readSep 27, 2021

--

A Development Process Centric-View.

Blockchain Image

Blockchain is imprinting its impacts on every sector, including information technology, finance, and supply chain (Colomo-Palacios, Sánchez-Gordón and Arias-Aranda, 2020). This infusion diminishes the value of the centralized management system and presents the unique decentralized network without a trust-based central authority. In the past few years, several blockchain applications have been developed for various domains; additionally, the development is carried out for applications concerned with specific aims. Now it is become necessary to investigate the existing Blockchain-based software development approaches (Casino, Dasaklis and Patsakis, 2019). An explicit, comprehensible, and legible review of the existing approaches can reveal many opportunities to implement blockchain software in various domains (Precht, Wunderlich and Marx Gómez, 2020). Approaches are required to be tailored according to its application or existing issues described in the initial problem statement. Approaches cannot be developed by considering one size fits all; it should be flexible enough to handle the real-time complexities (Ramsin and Paige, 2008). Despite numerous applications being developed using blockchain technology, these applications are based on different approaches suitable for specific problems. However, Blockchain technology bestows outstanding features to software applications; it does not solve every problem (Wust and Gervais, 2018). It is a big challenge for any organization to select an appropriate approach for the successful development of Blockchain-based applications (Precht, Wunderlich and Marx Gómez, 2020). This issue was the motivation behind this development of the evolutionary framework.

According to (Avison and Fitzgerald, 2006), the system development approach is “a recommended collection of phases, procedures, rules, techniques, tools, documentation, management, and training used to develop a system.” While blockchain applications are deploying at staggering rate, a well-presented and articulated methodology needs to be addressed. By achieving this blockchain technology adoption will become more straightforward as well as durable. A good approach formulates a foundation of the successful software development. A well-organized & finetuned software development approach can provide exceptional benefits to the system developers in the development of state of the art, efficient, and value-adding software applications instead of swinging around the questions like “How to develop?” and “what should be achieved?”; such confusions shrink the value-adding capabilities of the development and reflect poor results (Gholami et al., 2016). A framework that enlists several approaches and evaluates them based on numerous criteria provides a basis for practitioners while developing a system that generally addresses a specific issue. In this research document, we have discussed eight different approaches which were used to develop various Blockchain-based software systems.

Although various research occurred in blockchain technology, a precise, cohesive, and employable evaluation framework for comparing various approaches against predetermined criteria still needs more attention (Casino, Dasaklis and Patsakis, 2019). Some review documents developed in the past, where security issues related to blockchain technology are majorly addressed, some applications delineated its decentralization characteristics, some of them spoke more about consensus protocol, and other technical aspects like size, usability, bandwidth, scalability of the systems. Additionally, some survey conducted which describes its financial application and its offerings like security and privacy (Casino, Dasaklis and Patsakis, 2019). The above-discussed literature shortfalls show scarcity of a trailblazing and revolutionary review-based framework which describes the approaches of various modern Blockchain-based software developments and its analysis results. This necessity is considered the pilot of this research, and the following research questions are derived to support this requirement. The research question which we are trying to address through this research are as follows,

Question 1] Which are the different approaches used to develop a Blockchain-based software system?

Question 2] Up to what extent the following described approaches satisfy the predetermined criteria?

Question 3] What are the results of the comparison of various approaches concerning different criteria?

Get Tejas Pawar.’s stories in your inbox

Join Medium for free to get updates from this writer.

This article is structured as follows: Section 2 discusses the background and etymology of this research. Section 3 describes the existing challenges in blockchain adoption. Section 4 presents an approach applied in the development of a blockchain-based application system, there are eight different approaches described in this section. Section 5 develops the evaluation of the framework based on different criteria. Section 7 discusses the analysis of results. Finally, Section 8 and Section represents discussions and future work.

2. Background

The first scientific literature regarding cryptography discovered in 1976 this paper enlightened the area of cryptography and introduced the concept of distributed ledger (Diffie, Diffie and Hellman, 1976; Sarmah, 2018). As development progressed in cryptography, in 1999 a paper published, which discussed the concept of data timestamping. (Haber and Scott Stornetta, 1991) Wai Dai’s other concept of “b-money” was based on peer-to-peer networks (Sarmah, 2018; Dai, 1998).

The etymological study is informative, as in other modern fields of study (Gholami et al., 2016). This is presented in this segment to offer more insight as to what the Blockchain-based application means in the area of system development. Later, this section identifies key terminologies in blockchain adoption.

2.1 Etymology

— Blockchain adoption. The Blockchain is a continuous chain of interlinked data blocks stored in a catalog on each participating node. The next block is inserted using a consensus mechanism to validate the block activity and bind it to the existing chain.(Sharples and Domingue, 2016) The prime properties presented by the blockchain adoption are certitude transparency in transactions, tamper-proof, more secure, and robust nature of the system (Casino, Dasaklis and Patsakis, 2019). According to the date of occurrence & intended audience, the blockchains are categorized into three generations (Colomo-Palacios, Sánchez-Gordón and Arias-Aranda, 2020; Casino, Dasaklis and Patsakis, 2019). Blockchain 1.0 includes such applications which are equipped with digital cryptocurrencies transaction systems. Blockchain 2.0 consists of smart contracts and several Blockchain applications beyond cryptocurrencies (Casino, Dasaklis and Patsakis, 2019). It is considered as this generation commenced with the release of the Ethereum blockchain (Colomo-Palacios, Sánchez-Gordón and Arias-Aranda, 2020). Blockchain 3.0 expanded Blockchains’ span beyond prior generations and delineates its potential in the supply chain, IoT, and government applications (Casino, Dasaklis and Patsakis, 2019). Blockchain 4.0 is still in developing stages, but literature outlines its future developments. This generation includes artificial intelligence to decrease the inferences that occurred due to human interaction (Colomo-Palacios, Sánchez-Gordón and Arias-Aranda, 2020). If we consider the current blockchain system’s taxonomy, then majorly, these systems will be classified into three types, Consortium Blockchain, Public Blockchain & Private Blockchain. The core difference in these three types is that public Blockchain has a completely decentralized nature. Consortium blockchain is partially centralized, and private Blockchain is totally centralized and controlled by predetermined miners or nodes (Wang et al., 2018).

— Smart Contract. A smart contract is a digital contract enabling tamper-proof and self-enforcing terms via automated execution based on decentralized consensus. It is an executable code running on the Blockchain to enable, execute, and facilitate the agreement among untrusted parties. The primary function of a smart contract is to automatically enforce the terms of the contract once the established conditions have been met. Therefore, smart contracts offer low transaction costs compared to traditional models involving a trusted third party to implement and enforce the terms of the agreement (Alharby and Moorsel, 2017). They effectively facilitate the economic exchange, property, and everything else of value, maintaining full transparency, eliminating the services, and corresponding charges of the intermediary, and eradicating the issue of trust between the parties. A smart contract specification contains the terms and conditions agreed by the parties and transaction details registered in the Blockchain, a distributed, decentralized public ledger. A smart contract does not represent a legally binding agreement in practice (Alharby and Moorsel, 2017). Some constitutional experts argue that smart contracts are not legal agreements but rather methods of executing obligations resulting from other contracts, like technical means for the automation of payment obligations involving in the transfer of tokens or cryptocurrencies (Christidis and Devetsikiotis, 2016). A smart contract may also be considered a secure storage process because its implementation and formalized results. It is immutable after a transaction with particular contract information which is stored in a blockchain or public ledger

— Consensus Mechanism. Consensus protocols are a vital part of blockchain technologies. It ensures the error detection, security, and fault tolerance of blockchain networks. Consensus protocols widely used in most blockchain networks can be divided into two categories that are absolute-final and probabilistic-final consensus protocols.(Wang et al., 2018) Consensus protocols in blockchain implementations allow mistrustful peers to agree on the global state of the blockchain. However, most of the current consensus processes are limited by low performance and high energy usage.

[I] PoW [Proof of Work]. PoW is a standard consensus algorithm used by cryptocurrency networks, such as bitcoin and Litecoin. It allows the user node to show that the work performed and completed by the participant entitled them to add new transactions to the blockchain. This is a bitcoin mining mechanism that requires a considerable amount of energy and long processing times (Chaudhry and Yousaf, 2019). PoW selects a node to develop a new block in every round of consensus by large computational power. The competing nodes must solve a cryptographic puzzle during the competition. The node that first addresses a puzzle has the privilege to create a new block.

[II] Proof of Stake [PoS]. Because of the high cost of mining, more effective methods of consensus processes have been explored. Proof of Stake [PoS] is considerably cheaper than PoW, as it does not need powerful devices to achieve performance (Panda et al.,2019). The distinction from PoW is that nodes do not need to change a hash value for several cycles; instead, the number of stakes is the way to solving this puzzle. PoS is also an energy-saving consensus protocol that utilizes a way to stimulate the internal currency instead of using many computing resources to achieve a consensus.

[III] Practical Byzantine Fault Tolerant [PBFT]. PBFT protocol provides less algorithm complexity and high functionality in distributed networks. The primary node sends the users’ messages to the other three nodes. In case that node 3 fails, one message travels through 5 phases to reach a consensus between these nodes. These nodes eventually respond to the user to accomplish a round of consensus. PBFT meets an objective of high consistency and thus results in an absolute-finality consensus protocol (Panda et al.,2019).

— System Development Life Cycle [SDLC]. This research is regarded with software development approaches that consist of complex system development procedures which specifies the development activities and their orders. System Development Life Cycle [SDLC] closely defined as “it is a list of stepwise entities which comprises mechanisms to ensure that software is accomplishing determined requirements.” (Kumar and Dubey, 2013) SDLC comprises of five prime phases: I] requirement analysis, II] requirement specifications & assumptions, III] architectural design, IV] implementation & testing, V] analysis & evaluation (Wang et al., 2018). An optimum approach should define each of these steps clearly and provide precise description (Ramsin and Paige, 2008). Requirement analysis is the phase of collecting clients’ thoughts and structure them in proper documentation. Phase requirement specifications and assumptions next phase in the cycle and provide an explicit and comprehensive description of the system to be developed. The next phase is SDLC, where the transformation of requirements into a detailed structured design is carried out. The output of this phase is the solution to the problem statement defined in the initial phases. Implementation is the phase where the monitoring of the application of the plan is performed. The testing part is to know the results of the implementation. Analysis and evaluation are necessary to ensure the high-quality results of the software before its final release.

--

--

Tejas Pawar.
Tejas Pawar.

Written by Tejas Pawar.

0 followers

Software Developer