Architectural Patterns For Blockchain Systems
Architectural Patterns For Blockchain Systems
sciences
Article
Architectural Patterns for Blockchain Systems and
Application Design
Fouzia Alzhrani 1, * , Kawther Saeedi 1 and Liping Zhao 2
1 Information Systems Department, King Abdulaziz University, Jeddah 21589, Saudi Arabia;
[email protected]
2 Computer Science Department, The University of Manchester, Manchester M13 9PL, UK;
[email protected]
* Correspondence: [email protected]
Abstract: Blockchain technology has gained popularity in various applications, including finance
transactions and beyond. However, developing blockchain application systems is challenging due to
stringent quality requirements, such as performance, scalability, and security. Software architecture
plays a critical role in realizing key quality requirements. Nonetheless, little work has been performed
on software architectures for blockchain applications since blockchain application development is still
a new field. This paper proposes twelve architectural patterns for blockchain application software
architectures based on 400 cross-industry real-world applications available on the Internet. We
determine the key components of each application guided by a blockchain application taxonomy we
developed. We then identify typical architectural patterns from the interactions of these components
guided by well-known software patterns, such as peer-to-peer, layered, pipe-filter, and access control.
Based on the roles of these patterns, we organize them into four architectural views comprising
four structural, two interactional, four transactional, and two security patterns. We describe each
pattern in detail using a standard form and demonstrate the patterns through a real-world blockchain
application. The use of patterns can be valuable in addressing blockchain’s unique challenges, but
creativity remains essential in crafting innovative solutions. Mixing architectural patterns according
to varying requirements can help developers communicate effectively.
2. Related Work
There have been several attempts at developing architectural patterns for blockchain
systems. This section provides an overview of these attempts. The International Organiza-
tion for Standardization (ISO) has published a standard for Distributed Ledger Technology
(DLT) systems, where a blockchain system is a type of such a system [18,19]. The archi-
tecture has six layers: the non-DLT systems, user, Application Programming Interface
(API), platform, infrastructure, and cross-layer functions. It provides a framework for
the adoption of DLT solutions while ensuring their compliance with global standards for
security, privacy, and interoperability.
Xiwei et al. [20] proposed a taxonomy of architectural design decisions to classify and
compare blockchain systems. The taxonomy captures the impact of principal design deci-
Appl. Sci. 2023, 13, 11533 3 of 22
sions about quality attributes on the architectural characteristics of blockchain systems. The
decisions are related to decentralization, storage and computation, infrastructural configu-
ration, and other issues. In the context of blockchain-based IoT systems, Yánez et al. [21]
proposed a catalog of architectural tactics and design primitives for specific quality at-
tributes. The catalog consists of 12 design decisions that are systematically derived from
the literature for security, scalability, performance, and interoperability.
A study by Wöhrer et al. [22] discussed blockchain integration. The study elaborated
a number of architectural design options related to operational and integration design
aspects of public permissionless blockchain applications. Liu et al. [23] proposed a refer-
ence architecture for the governance of blockchain systems, focusing on how governance
fits within the development and use of the blockchain. The proposed reference architec-
ture consists of four layers: infrastructure, platform, API, and user layers. Within each
layer, the study suggested a set of design patterns to address governance-related issues in
blockchain systems.
Another four-layered architecture was proposed by Zhang et al. [24] to analyze data
privacy threats and protection methods for blockchain applications. The layers are transac-
tion, consensus, network, and application. The architecture was derived from the layered
architecture mode of Open Systems Interconnection [25]. Weber et al. [26] proposed a
multi-tenant blockchain platform architecture to ensure the data integrity of permissioned
blockchains while maintaining privacy and performance isolation. This was achieved
via anchoring the consensus state of each permissioned blockchain periodically to a pub-
lic blockchain.
Aiming at identifying a common vocabulary for the blockchain domain, Wan et al. [27]
proposed a layered architecture of blockchain platforms derived from four platforms: Bit-
coin, Ethereum, Corda, and Hyperledger Fabric. The architecture consists of five layers:
a P2P network, consensus, virtual machine (VM), API-VM programming language, and
application layers. This reference architecture was used to capture and categorize the
discussions among programmers about blockchain technologies. For Healthcare 5.0 ap-
plications, Gupta et al. [28] proposed a drone delivery scheme based on the blockchain to
facilitate the delivery of medical supplies. The architecture consists of three layers: data
dissemination, data communication, and consumer. It integrates the blockchain and drones
through the 5G-enabled tactile Internet to allow the monitoring and tracking of the delivery
among stakeholders.
On the other hand, few attempts have explicitly focused on analyzing industry-
developed blockchain applications. Min et al. [29] analyzed blockchain game trends
in Ethereum and EOS applications. The study provided a block diagram architecture
that provides a high-level view of the interactions between game players and blockchain
networks through smart contracts. Qasse et al. [30] examined the consistency of five
blockchain application repositories in terms of schema and content. A basic three-layered
architecture was proposed consisting of application, contract, and service layers. It is a
refinement of the two-layer architecture presented in [31].
Wu et al. [32] investigated the popularity of Ethereum applications, the openness of
their source codes, and the costs of deploying and executing smart contracts. The study
proposed an architecture to describe high-level interactions between clients and the smart
contracts of Ethereum applications. The architecture comprises five layers: the dApp client,
smart contract, dApp service, dApp server, and Ethereum blockchain.
Overall, the proposed architectures and strategies demonstrate the ongoing efforts
to enhance the scalability, privacy, and performance of blockchain systems, which are, in
most cases, for public blockchains or a specific application domain. This study adds to this
ongoing work by providing a collection of interconnected architectural patterns. In contrast,
our proposed patterns are cross-domain, blockchain-agnostic, and industry-derived from
400 blockchain applications. Although the dataset in this study contains a smaller number
of applications than those in [30,32], it contains a range of cross-industry applications on
nine different public and private platforms.
Appl. Sci. 2023, 13, 11533 4 of 22
Moreover, our proposed patterns are consistent with the ISO standard for DLT sys-
tems [18] and elaborate on aspects such as interoperability, data flow, security, and ledger
architecture. Where the standard provides a comprehensive and detailed framework for
blockchain and DLT systems, our study proposes high-level architectural patterns for the
design of blockchain systems and applications.
3. Pattern Identification
This section describes how we identified the 12 proposed architectural patterns.
6. Ledger. The distributed ledgers serve as record keepers for all transactions that occur
in the network. They are synchronized between the involved peers [34–37]. There are
mainly two architectures of distributed ledgers: single- and multi-ledger. Moreover,
distributed ledgers could be a chain of blocks, a chain of transactions, a Direct Acyclic
Graph (DAG) of blocks, or a DAG of transactions [3,38].
7. Consensus. Consensus mechanisms are used to agree on the validity of transactions be-
tween trustless entities in a blockchain network. Different consensus mechanisms have
been applied in public and private network settings [39], including computation-based
protocols, such as PoW, and voting-based protocols, such as PBFT. Other algorithms,
such as PoS and DPoS, attempt to overcome the power-intensiveness limitation of
computation-based algorithms in public networks [3]. Consensus mechanisms have a
significant impact on the performance of a blockchain network [40].
8. Peer-to-Peer (P2P) network. A blockchain network is a communication medium that
allows participants to communicate in a P2P manner [16,34,35]. There are three main
types of blockchain networks: public, private, and consortium. Public blockchains
are permissionless networks that offer equal rights to all peers to read from and
write to the distributed ledger. Private blockchains encapsulate transactions and
data within a single organization. Read and write privileges are managed using
a permission management component. An extension of this private setting allows
multiple organizations to participate as a consortium [3].
9. Node. Nodes are the hardware and software representations of users participating in
a blockchain network and can be any electronic device with the required technical
specifications. Three main types of nodes perform ledger-oriented operations: full,
pruned, and lightweight nodes. Full and pruned nodes participate in transaction vali-
dation and block generation, while lightweight nodes store only transaction headers
and do not participate in consensus and block generation processes. Service nodes
may also be used to coordinate the general workflow between other nodes [3].
10. End user interface. Through this, users can initiate transactions and see the query
results of blockchain data. The end user interface can be a graphical user interface
(GUI) or a command-line interface (CLI).
11. Database. These data stores are used to store off-chain data and can be centralized or de-
centralized. They provide a solution for data privacy and blockchain scalability [34].
12. Server. Typically, servers are used to host UIs. The hosts can be centralized servers or
decentralized hosting services.
13. API. This component is responsible for passing messages between the client applica-
tion on one side and the blockchain network endpoints on the other side. For example,
the JavaScript Object Notation encoded messages protocol (JSON-RPC) is used by the
Ethereum, POA, Klaytn, EOS, Steem, and Hive platforms.
Table 1. The mapping of fundamental blockchain (BC) components to generic software architectural
(SW Arch.) patterns.
1. Structural view: This view abstracts the logical and physical dissemination of the
blockchain application components.
2. Interactional view: This view abstracts how the individual components of a blockchain
application can exchange messages while retaining their autonomy.
3. Transactional view: This view abstracts how blockchain application components suc-
cessively process transactions as persistent, immutable, shared data.
4. Security view: This view abstracts how blockchain systems implement security and
privacy mechanisms to protect user data, prevent unauthorized access, and maintain
privacy.
4. Pattern Description
In what follows, we describe each pattern in detail under its category.
and a combination of both. In pure local deployment, all tiers are deployed to a local
machine and connected to the test network of the blockchain platform. This approach
is suitable for pre-production and testing environments to evaluate application features
and assess smart contract execution. In pure remote deployment, all tiers are deployed on
remote machines and are accessed through RPCs. For example, the off-chain tier is deployed
on a remote web server, and the on-chain tier is deployed to a remote blockchain node as a
service, such as DappNode. Usually, this approach is used in a production environment in
which the application is deployed on the production network of the blockchain platform.
Hybrid deployment can occur in several ways.
For example, a remote off-chain local on-chain deployment occurs when a blockchain
node hosts the on-chain tier on a local computer machine connected to the blockchain
network, and the off-chain tier is hosted on remote servers. In contrast, when the off-chain
tier is a mobile app installed on users’ phone devices connected to the blockchain network,
the on-chain tier is deployed to remote nodes as a local off-chain remote on-chain approach.
The hybrid deployment is a customized approach that allows the articulation of different
deployment styles for each tier.
equal reading and writing rights to the blockchain distributed ledger. However, permission
components can manage these rights in certain cases. The propagation of blocks and
transactions typically follows a gossip strategy. There are different protocols adopted by
blockchain networks to manage the propagation of data between peers. For example,
Ethereum Mainnet nodes run different protocols, such as the Light Ethereum Subprotocol
(LES) used by lightweight clients and the Ethereum Wire Protocol (ETH) used by full nodes.
Hyperledger Fabric implements a data dissemination protocol based on gRPC and protocol
buffers.
Known uses: Dtube is a video-sharing application. Its on-chain back-end is the Steem
blockchain, which is a P2P network. PUML is a health and fitness loyalty program. Its
on-chain back-end comprises the EOS blockchain and PUML sidechain, which are P2P
networks. CryptoFlip Cars is a card-trading game application. Its on-chain back-end is the
Ethereum blockchain, which is a P2P network.
Related patterns: This pattern complements the on-chain-off-chain, distributed off-chain,
and centralized off-chain patterns.
Solution: Off-chain back-end servers provide their services through centralized server
machines, as shown in Figure 4. For example, a blockchain application may use a single
server for the off-chain application front-end and data or can use separate servers for each
as a three-tier client–server architecture.
Known uses: CryptoFlip Cars is an Ethereum-based game that uses centralized servers for
web hosting and data storage. Dtube uses centralized servers for web hosting and data
storage. Geon is a POA-based mobile game hosted locally by mobile device users.
Related patterns: This pattern complements the P2P on-chain and on-chain-off-chain
patterns.
Known uses: The Ethereum network is permissionless, and its digital ledger is replicated
among all Ethereum nodes as a single-ledger-based architecture. The Hyperledger Fabric
network is permissioned, and its digital ledger is replicated per channel, allowing for a
multi-ledger-based architecture. The Corda network is permissioned and allows for shared
ledger structures.
Related patterns: The data in a replicated ledger can be linked, as in the chain-of-blocks
pattern.
Known uses: Ethereum is chain-based, and its block structure consists of a block header,
block data, and a list of ommers. The blocks are connected to a single chain. Hyperledger
Fabric is chain-based, and its block structure consists of a block header, data, and metadata.
The blocks are connected to a restricted shared chain. Klaytn is chain-based, and its block
Appl. Sci. 2023, 13, 11533 15 of 22
structure consists of a block header, block data, and a list of uncles. The blocks are connected
to a single chain.
Related patterns: The chain of blocks in the blockchain is synchronized between the
network participants as a replicated repository pattern. When more than one block has
the same block height, i.e., they are mined at nearly the same time, there could be a chain
fork pattern.
Known uses: Ethereum was forked into Ethereum Classic (old) and Ethereum (new) as
a protocol-level split. Hive is forked from Steem as a protocol-level split. Dtube is a
Appl. Sci. 2023, 13, 11533 16 of 22
Steem-based video-sharing application that runs on both blockchains: Steem and its forked
chain, Hive.
Related patterns: The forked chain is a chain of blocks synchronized between the network
participants as a replicated repository pattern.
Known uses: The Ethereum blockchain rewards miners with ether tokens for processing
and validating smart contracts and transaction blocks. The amount of reward depends
on the level of computing power provided by the miner, as well as the gas fees paid by
the users. Steemit is a social media platform that incentivizes users to create and curate
content by rewarding them with STEEM tokens based on the popularity and quality of
their contributions. The STEEM tokens can be exchanged for other cryptocurrencies or
fiat currencies or can be used to vote on proposals and decisions related to the Steemit
ecosystem. Such participation contributes to the security of the Steem blockchain. Augur is
a prediction market that incentivizes users to report on the outcomes of events and bets
made on the platform. Users who report correctly on the outcomes can earn reputation
tokens, which can be used to participate in the governance and dispute resolution processes
of the platform. Such participation contributes to the security of the Ethereum blockchain.
Known uses: Dtube uses the Steemit wallet to secure access to the Steem network. Meta-
Mask is a browser extension wallet that provides authentication and encryption for users
utilizing the Ethereum blockchain. MyEtherWallet is a software wallet that utilizes encryp-
tion, authentication, and authorization for users utilizing the Ethereum blockchain.
5. Pattern Demonstration
In this section, we demonstrate the 12 patterns by using them to describe the architec-
tures of a popular real-world blockchain system. CryptoKitties is a popular marketplace
game for the buying, selling, and breeding of virtual cats called CryptoKitties. The architec-
ture of CryptoKitties can be described using the proposed architectural pattern language
for blockchain applications as follows.
Figure 13. The mapping of the CryptoKitties architecture to the layered application pattern.
cats. The more rare and valuable the cat, the higher the reward for breeding or selling it.
CryptoKitties also offers limited-edition cats and special events, which can increase the
demand and value of certain cats and encourage users to participate in the game. By using
various reward mechanisms and benefits, the application encourages users to participate,
contribute, and add value to the Ethereum ecosystem.
CryptoKitties uses digital wallets to ensure security in a few different ways. It uses
digital wallets to ensure security through ownership, secure transfers, breeding, and
a trustless system. Storing CryptoKitties in a digital wallet provides full control and
ownership, and secure transfers use a decentralized and traceable blockchain transaction.
The breeding mechanism produces unique cryptographic identifiers for each offspring,
and a trustless system eliminates the need for a centralized authority. By using blockchain
technology, CryptoKitties provides a secure and trustworthy platform for the buying,
selling, and breeding of virtual cats.
6. Discussion
Software patterns exist at different levels of abstraction, such as design patterns,
architectural patterns, and architectural styles. They capture complementary design aspects
that, to some extent, overlap. However, each pattern type offers a set of models and
mechanisms to address these aspects [12,43]. As already stated, architectural patterns
describe the high-level structures of software systems in terms of their major components
and the interactions between these components. Such patterns provide major system
structures in which multiple design decisions about functional requirements, non-functional
requirements, and physical constraints are realized [12,43]. Architectural tactics are design
decisions that affect how individual quality attribute requirements are controlled [43].
The emergence of blockchain technology has led to significant advancements in vari-
ous industries. However, the development of blockchain applications is a complex process
that requires a deep understanding of the technology and its underlying architecture [8].
This study has identified and categorized patterns that are essential to blockchain systems’
structural, interactional, transactional, and security aspects. Each pattern category repre-
sents a specific architectural view that helps blockchain application developers focus on
one design aspect. All these patterns contribute toward a framework for the development
of robust, scalable, secure, and efficient blockchain systems.
One of the main findings from this contribution is that blockchain platforms are
evolving mostly to overcome protocol-related issues such as scalability and performance.
For example, POA is a public side chain that enables a cross-chain-bridging architecture
within the Ethereum ecosystem. Moreover, Hive was forked from the Steem blockchain to
offer more decentralization and uncontrolled token ownership. Furthermore, the identified
patterns also provide industry policymakers and regulators with a framework for engaging
with blockchain-based systems.
In another respect, considering reusable architectural patterns can reduce the number
of concerns that blockchain application architects and developers need to address. The
patterns provide blueprints to help with design decision-making and fulfill application-
specific NFRs and quality requirements. For example, the interoperability and scalability
of blockchain applications can be fulfilled with the blockchain broker pattern, and the
reliability can be accomplished with the distributed off-chain pattern, coupled with the
P2P on-chain pattern. Certainly, there should be a trade-off between the different quality
requirements when designing an application according to the use case needs.
The originality of the proposed patterns lies in their suitability for blockchain systems
and their ability to provide a standardized approach to developing blockchain applications,
addressing the need for a clear architecture in the complex field of blockchain, which
can reduce the development time and improve the quality of the final product. As these
patterns are industry-derived, they are proven to be useful to describe the architectures of
existing applications and can be customized to suit the specific requirements of different
new applications.
Appl. Sci. 2023, 13, 11533 20 of 22
However, this proposal has some limitations. The proposed patterns are not exhaustive.
They are a good starting point for the development of blockchain applications, but they
do not cover all aspects of blockchain architecture. This is a work in progress; therefore,
there may be specific requirements of a blockchain application that are not adequately
addressed by the proposed patterns and may require additional architectural patterns or
modifications to the existing ones.
As blockchain technology evolves, there may be a need to introduce additional patterns
or fine-tune the existing ones to suit emerging technological trends. Additionally, this study
does not consider the commercial viability of blockchain systems, and the patterns may not
be suitable for certain use cases with specific business requirements. Another limitation
is concerned with the evaluation of the proposed patterns, as we have only selected a
sample application to demonstrate their applicability; we have not involved industries in
this evaluation.
7. Conclusions
This paper proposes 12 architectural patterns for the design of blockchain application
architectures. Derived from 400 industrial blockchain applications, these patterns describe
the architecture of a blockchain application from four important architectural design aspects.
The proposed patterns are intended to be general and applicable to a broad range of
blockchain applications. The usefulness of the patterns was demonstrated through a case
study by illustrating how they can be used to describe the architectures of real-world
blockchain applications.
Many software patterns can be applied to blockchain applications, but they need to be
adapted to the unique features of the blockchain, such as decentralization, immutability,
and replicated chains. Architectural patterns can be a valuable tool for collaboration
and communication among developers working on a blockchain project, as the patterns
provide a shared language and understanding of design decisions. Developers should
consider using a combination of patterns depending on the specific requirements of the
blockchain application under development, taking into account the trade-offs between the
requirements.
The blockchain ecosystem is evolving rapidly, and new patterns are emerging as the
technology matures. The available software patterns are not a complete solution to all
the challenges in blockchain software design, and the patterns in this study are an initial
proposal with limited validation. Developers must exercise creativity and adaptability to
craft innovative solutions that address the unique challenges in blockchain applications
while keeping in mind the specific requirements of each application.
Future work involves conducting empirical studies to evaluate the proposed patterns
in terms of effectiveness, efficiency, and usability by collecting feedback from developers
and end-users to measure the performance and quality attributes of the blockchain systems.
Additionally, developing practical guidelines and best practices for implementing and
deploying blockchain systems using the proposed patterns could facilitate their replication
and reuse by documenting key design decisions, implementation details, and deployment
strategies.
Author Contributions: The Conceptualization, F.A., K.S. and L.Z.; Methodology, F.A., K.S. and L.Z.;
Data curation, F.A., K.S. and L.Z.; Writing—original draft, F.A., K.S. and L.Z.; Writing—review and
editing, F.A., K.S. and L.Z. Funding acquestion, F.A. and K.S. All authors have read and agreed to the
published version of this manuscript.
Funding: This research work was funded by the Institutional Fund Project under grant no. (IFPRC-
079-612-2020); therefore, the authors gratefully acknowledge the technical and financial support from
the Ministry of Education and King Abdulaziz University, Jeddah, Saudi Arabia.
Data Availability Statement: The data presented in this study are openly available in Zenodo at
10.5281/zenodo.4268953, reference number [17].
Appl. Sci. 2023, 13, 11533 21 of 22
Conflicts of Interest: The authors declare that they have no known competing financial interest or
personal relationships that could have appeared to influence the work reported in this paper.
References
1. Narayanan, A.; Bonneau, J.; Felten, E.; Miller, A.; Goldfeder, S. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction;
Princeton University Press: Princeton, NJ, USA, 2016.
2. Nakamoto, S. Bitcoin: A peer-to-peer electronic cash system. Decentralized Bus. Rev. 2008. Available online: https://assets.
pubpub.org/d8wct41f/31611263538139.pdf (accessed on 22 September 2023).
3. Alzhrani, F.E.; Saeedi, K.A.; Zhao, L. A Taxonomy for Characterizing Blockchain Systems. IEEE Access 2022, 10, 110568–110589.
[CrossRef]
4. Casino, F.; Dasaklis, T.K.; Patsakis, C. A systematic literature review of blockchain-based applications: Current status, classification
and open issues. Telemat. Inform. 2019, 36, 55–81. [CrossRef]
5. Bodkhe, U.; Tanwar, S.; Parekh, K.; Khanpara, P.; Tyagi, S.; Kumar, N.; Alazab, M. Blockchain for Industry 4.0: A Comprehensive
Review. IEEE Access 2020, 8, 79764–79800. [CrossRef]
6. Sharma, P.K.; Park, J.H. Blockchain based hybrid network architecture for the smart city. Future Gener. Comput. Syst. 2018,
86, 650–655. [CrossRef]
7. Cai, W.; Wang, Z.; Ernst, J.B.; Hong, Z.; Feng, C.; Leung, V.C.M. Decentralized Applications: The Blockchain-Empowered
Software System. IEEE Access 2018, 6, 53019–53033. [CrossRef]
8. Zheng, Z.; Xie, S.; Dai, H.N.; Chen, X.; Wang, H. Blockchain challenges and opportunities: A survey. Int. J. Web Grid Serv. 2018,
14, 352–375. [CrossRef]
9. Monrat, A.A.; Schelén, O.; Andersson, K. A Survey of Blockchain From the Perspectives of Applications, Challenges, and
Opportunities. IEEE Access 2019, 7, 117134–117151. [CrossRef]
10. Yang, X.; Zhao, L.; Wang, X.; Wang, Y.; Sun, J.; Cristoforo, A.J. Satisfying quality requirements in the design of a partition-based,
distributed stock trading system. Softw. Pract. Exp. 2012, 42, 131–157. [CrossRef]
11. Garlan, D. Software Architecture: A Travelogue. In Proceedings of the Future of Software Engineering Proceedings, FOSE 2014;
Association for Computing Machinery: New York, NY, USA, 2014; pp. 29–39. [CrossRef]
12. Monroe, R.T.; Kompanek, A.; Melton, R.; Garlan, D. Architectural styles, design patterns, and objects. IEEE Softw. 1997, 14, 43–52.
[CrossRef]
13. Zdun, U.; Avgeriou, P. Modeling architectural patterns using architectural primitives. ACM SIGPLAN Not. 2005, 40, 133–146.
[CrossRef]
14. Garlan, D. Software architecture: A roadmap. In Proceedings of the ICSE ’00: Conference on the Future of Software Engineering,
Limerick, Ireland, 4–11 June 2000; pp. 91–101. [CrossRef]
15. Avgeriou, P.; Zdun, U. Architectural patterns revisited—A pattern language. In Proceedings of the Tenth European Conference
on Pattern Languages of Programs (EuroPLoP 2005), Irsee, Germany, 6–10 July 2005; pp. 431–470.
16. Syed, T.A.; Alzahrani, A.; Jan, S.; Siddiqui, M.S.; Nadeem, A.; Alghamdi, T. A comparative analysis of blockchain architecture
and its applications: Problems and recommendations. IEEE Access 2019, 7, 176838–176869. [CrossRef]
17. Alzhrani, F. A Collection of Industry-Developed Blockchain-Based Applications. Zenodo CERN 2020. [CrossRef]
18. ISO 23257:2022(E); Blockchain and Distributed Ledger Technologies—Reference Architecture. ISO: Geneva, Switzerland, 2022.
19. Deng, X.; Huang, W.; Tang, X.; Basic Technology. Blockchain Application Guide: Methodology and Practice; Springer Nature Singapore:
Singapore, 2022; pp. 3–17. [CrossRef]
20. Xu, X.; Weber, I.; Staples, M.; Zhu, L.; Bosch, J.; Bass, L.; Pautasso, C.; Rimba, P. A Taxonomy of Blockchain-Based Systems for
Architecture Design. In Proceedings of the 2017 IEEE International Conference on Software Architecture (ICSA), Gothenburg,
Sweden, 3–7 April 2017; pp. 243–252. [CrossRef]
21. Yánez, W.; Bahsoon, R.; Zhang, Y.; Kazman, R. Architecting Internet of Things Systems with Blockchain: A Catalog of Tactics.
ACM Trans. Softw. Eng. Methodol. 2021, 30, 1–46. [CrossRef]
22. Wöhrer, M.; Zdun, U. Architectural Design Decisions for Blockchain-Based Applications. In Proceedings of the 2021 IEEE
International Conference on Blockchain and Cryptocurrency (ICBC), Dubai, United Arab Emirates, 3–6 May 2021; pp. 1–5.
[CrossRef]
23. Liu, Y.; Lu, Q.; Yu, G.; Paik, H.Y.; Zhu, L. A Pattern-Oriented Reference Architecture for Governance-Driven Blockchain Systems.
In Proceedings of the 2023 IEEE 20th International Conference on Software Architecture (ICSA), L’Aquila, Italy, 13–17 March 2023;
pp. 23–34. [CrossRef]
24. Zhang, Q.; Lv, H.; Ma, J.; Li, J.; Zhang, J. Overview of Blockchain Data Privacy Protection. In Proceedings of the BIOTC’21:
2021 3rd Blockchain and Internet of Things Conference, BIOTC’21, Ho Chi Minh City, Vietnam, 8–10 July 2021; Association for
Computing Machinery: New York, NY, USA, 2021; pp. 53–58. [CrossRef]
25. Zimmermann, H. OSI Reference Model—The ISO Model of Architecture for Open Systems Interconnection. IEEE Trans. Commun.
1980, 28, 425–432. [CrossRef]
26. Weber, I.; Lu, Q.; Tran, A.B.; Deshmukh, A.; Gorski, M.; Strazds, M. A Platform Architecture for Multi-Tenant Blockchain-Based
Systems. In Proceedings of the 2019 IEEE International Conference on Software Architecture (ICSA), Hamburg, Germany, 25–29
March 2019; pp. 101–110. [CrossRef]
Appl. Sci. 2023, 13, 11533 22 of 22
27. Wan, Z.; Xia, X.; Hassan, A.E. What Do Programmers Discuss About Blockchain? A Case Study on the Use of Balanced LDA
and the Reference Architecture of a Domain to Capture Online Discussions about Blockchain Platforms across Stack Exchange
Communities. IEEE Trans. Softw. Eng. 2021, 47, 1331–1349. [CrossRef]
28. Gupta, R.; Bhattacharya, P.; Tanwar, S.; Kumar, N.; Zeadally, S. GaRuDa: A Blockchain-Based Delivery Scheme Using Drones for
Healthcare 5.0 Applications. IEEE Internet Things Mag. 2021, 4, 60–66. [CrossRef]
29. Min, T.; Wang, H.; Guo, Y.; Cai, W. Blockchain Games: A Survey. In Proceedings of the 2019 IEEE Conference on Games (CoG),
London, UK, 20–23 August 2019; pp. 1–8. [CrossRef]
30. Qasse, I.A.; Spillner, J.; Abu Talib, M.; Nasir, Q. A Study on ÐApps Characteristics. In Proceedings of the 2020 IEEE International
Conference on Decentralized Applications and Infrastructures (DAPPS), Oxford, UK, 3–6 August 2020; pp. 88–93. [CrossRef]
31. Zeng, Y.; Zhang, Y. Review of research on blockchain application development method. J. Phys. Conf. Ser. 2019, 1187, 052005.
[CrossRef]
32. Wu, K.; Ma, Y.; Huang, G.; Liu, X. A first look at blockchain-based decentralized applications. Softw. Pract. Exp. 2021,
51, 2033–2050. [CrossRef]
33. Zheng, Z.; Xie, S.; Dai, H.N.; Chen, W.; Chen, X.; Weng, J.; Imran, M. An overview on smart contracts: Challenges, advances and
platforms. Future Gener. Comput. Syst. 2020, 105, 475–491. [CrossRef]
34. Xu, X.; Weber, I.; Staples, M. Architecture for Blockchain Applications; Springer: Berlin/Heidelberg, Germany, 2019; p. 307.
[CrossRef]
35. Dinh, T.T.A.; Liu, R.; Zhang, M.; Chen, G.; Ooi, B.C.; Wang, J. Untangling Blockchain: A Data Processing View of Blockchain
Systems. IEEE Trans. Knowl. Data Eng. 2018, 30, 1366–1385. [CrossRef]
36. Pervez, H.; Muneeb, M.; Irfan, M.U.; Haq, I.U. A Comparative Analysis of DAG-Based Blockchain Architectures. In Proceedings
of the 2018 12th International Conference on Open Source Systems and Technologies (ICOSST), Lahore, Pakistan, 19–21 December
2018; pp. 27–34. [CrossRef]
37. Paik, H.Y.; Xu, X.; Bandara, H.M.N.D.; Lee, S.U.; Lo, S.K. Analysis of Data Management in Blockchain-Based Systems: From
Architecture to Governance. IEEE Access 2019, 7, 186091–186107. [CrossRef]
38. Kannengießer, N.; Lins, S.; Dehling, T.; Sunyaev, A. Trade-Offs between Distributed Ledger Technology Characteristics. ACM
Comput. Surv. 2020, 53, 1–37. [CrossRef]
39. Jennath, H.S.; Asharaf, S. Survey on Blockchain Consensus Strategies. In Proceedings of the ICDSMLA 2019: 1st International
Conference on Data Science, Machine Learning and Applications; Springer: Singapore, 2019; pp. 637–654. [CrossRef]
40. Ismail, L.; Materwala, H. A Review of Blockchain Architecture and Consensus Protocols: Use Cases, Challenges, and Solutions.
Symmetry 2019, 11, 1198. [CrossRef]
41. Jaiswal, M. Software architecture and software design. Int. Res. J. Eng. Technol. (IRJET) e-ISSN 2019, 6, 2452–2454. [CrossRef]
42. Hafiz, M.; Adamczyk, P.; Johnson, R.E. Organizing Security Patterns. IEEE Softw. 2007, 24, 52–60. [CrossRef]
43. Harrison, N.B.; Avgeriou, P. How do architecture patterns and tactics interact? A model and annotation. J. Syst. Softw. 2010,
83, 1735–1758. [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual
author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to
people or property resulting from any ideas, methods, instructions or products referred to in the content.