Decentralized Innovation: Exploring the Impact of Blockchain Technology in Software Development
Oliver Bodemer
Experienced Java and Blockchain Architect | Delivering Innovative Solutions for Complex Challenges
Oliver Bodemer[3]
The integration of blockchain technology into software development marks a paradigm shift, offering a new realm of possibilities alongside unique challenges. This paper delves into the multifaceted impact of blockchain on software development, exploring its potential to revolutionize the industry.
Blockchain technology, at its core, is a decentralized ledger that records transactions across multiple computers in a way that ensures security, transparency, and immutability. The foundational principles of blockchain, including decentralization, consensus mechanisms, and cryptographic security, present a novel approach to addressing some of the longstanding challenges in software development.
One of the most significant contributions of blockchain to software development is the enhancement of security and trust. Traditional centralized systems are often vulnerable to single points of failure, whereas blockchain’s decentralized nature inherently mitigates this risk. The immutable ledger ensures that once data is recorded, it cannot be altered without consensus, thereby fostering trust among users and developers.
The concept of smart contracts, self-executing contracts with the terms of the agreement directly written into code, has opened new avenues in software development. These programmable contracts automate processes, reduce the need for intermediaries, and ensure the execution of agreements as intended. This automation is particularly beneficial in areas like supply chain management, where blockchain can provide transparency and traceability in software projects.
Blockchain also introduces a paradigm shift in project management and collaboration. The transparent nature of blockchain can lead to more efficient project management, as all stakeholders have access to a single, unalterable version of project data. This transparency aids in collaborative coding and version control, ensuring that changes are tracked and authenticated. Moreover, blockchain can play a crucial role in protecting intellectual property and managing software licenses, providing a secure and transparent way to handle these aspects.
The integration of blockchain with agile methodology presents a compelling synergy. Agile practices, which emphasize flexibility and iterative development, can benefit from blockchain’s ability to provide secure, transparent, and immutable records of project progress. This integration can enhance continuous integration and deployment processes, and provide a robust framework for agile project tracking.
However, the adoption of blockchain in software development is not without challenges. Scalability issues, energy consumption, and the complexity of blockchain technology can pose significant barriers. Additionally, navigating the regulatory landscape and addressing ethical considerations, such as data privacy, are critical challenges that need to be addressed.
Despite these challenges, the future of blockchain in software development is promising. Emerging trends indicate a growing convergence of blockchain with other technologies like artificial intelligence (AI) and DevOps. The role of blockchain in facilitating machine-to-machine transactions and enhancing AI-driven applications is an area of active research. Similarly, the integration of blockchain into DevOps practices can lead to more secure and efficient development pipelines.
In conclusion, blockchain technology holds the potential to transform software development in profound ways. From enhancing security and trust to revolutionizing project management and collaboration, the implications are vast. While challenges remain, the ongoing advancements in blockchain technology and its integration with other fields suggest a future where blockchain plays a pivotal role in shaping the landscape of software development.
Introduction
Overview of Blockchain Technology
Blockchain technology, a concept that has gained significant attention in recent years, is essentially a decentralized digital ledger that records transactions across multiple computers. This technology ensures that each transaction is secure, transparent, and immutable [39]. At its core, blockchain consists of a series of blocks, each containing transaction data, a timestamp, and a cryptographic hash of the previous block. The chain of blocks is stored across a network of computers, making it resistant to data modification [32]. The security of blockchain is further enhanced through consensus algorithms like Proof of Work (PoW) or Proof of Stake (PoS), which ensure that all participants agree on the transaction record [38]. Blockchain technology has been recognized as potentially more disruptive than the Internet, with its key functional characteristics offering a range of applications [33].
Evolution of Software Development
The field of software development has undergone significant evolution over the years. From the early days of the Waterfall model to the adoption of agile and iterative approaches, the way software is developed, tested, and deployed has transformed dramatically. Methodologies such as Agile, Scrum, and DevOps have emphasized flexibility, collaboration, and customer feedback, marking a shift from traditional development practices [2]. The rise of open-source software and the increasing importance of security and data privacy have further shaped the landscape of software development [30].
Purpose and Scope of the Study
The purpose of this study is to explore the impact of blockchain technology on the field of software development. This research aims to provide a comprehensive overview of how blockchain can be integrated into various aspects of software development, including project management, security, and collaborative coding. The study also seeks to identify the challenges and opportunities presented by blockchain technology in the context of software development.
Research Questions
This study aims to address the following research questions:
Fundamentals of Blockchain
Blockchain Architecture
Blockchain architecture is the foundational structure that defines how blockchain operates. It consists of a series of blocks, each containing transaction data, a timestamp, and a cryptographic hash of the previous block. This structure ensures the immutability and transparency of the data recorded on the blockchain [32]. The architecture also includes distributed databases, which provide advantages over centrally located databases by enhancing security and reducing the risk of data manipulation [6].
Key Features of Blockchain
The key features of blockchain technology include decentralization, transparency, immutability, and security. Decentralization ensures that no single entity has control over the entire network, thereby reducing the risk of manipulation and increasing trust among participants [37]. Transparency is achieved through the public ledger, where all transactions are visible to participants. Immutability ensures that once data is recorded on the blockchain, it cannot be altered without consensus from the network. Security is enhanced through cryptographic algorithms and consensus mechanisms like Proof of Work (PoW) or Proof of Stake (PoS) [22].
Types of Blockchain Networks
Blockchain networks can be broadly categorized into two types: Permissionless and Permissioned. Permissionless blockchains, also known as public blockchains, allow anyone to participate without requiring permission. Examples include Bitcoin and Ethereum. In contrast, Permissioned blockchains restrict access and require participants to obtain permission to join the network. These are often used in enterprise and organizational settings [32]. Additionally, blockchain technology has been applied in various fields, including Internet of Things (IoT), where it provides security and trust to IoT devices [6].
Fundamentals of Software Development
Software development has evolved significantly over the years, adapting to technological advancements and changing user needs. This section explores the fundamental aspects of software development, including its processes, methodologies, and the importance of human-computer interaction.
Software Development Process
The software development process is a systematic, disciplined, and quantifiable approach that plays a crucial role in the development of large-scale and complex software [13]. Various software process models, such as Agile and DevOps, have been adopted to guide stakeholders towards the completion of final software products. These models emphasize iterative development, continuous integration, and collaboration between development and operations teams.
Human-Computer Interaction in Software Development
Human-computer interaction (HCI) is an essential aspect of software development, particularly in the design and development phases of software projects. Considering behavioral, cognitive, perceptive, efficiency, and physical factors of human interaction is crucial for developing user-friendly software [16]. Integrating HCI principles into the software development process can lead to more successful, higher quality, and user-friendly software projects.
Software Development Life Cycle Methodologies
The software development life cycle (SDLC) encompasses various methodologies designed for specific purposes. As technical complexities increase, the successful development of software depends on the proper management of development processes. Different SDLC models, such as Waterfall, Agile, and Scrum, offer distinct approaches to managing and delivering human-centered software applications [7].
Education and Industrial Needs in Software Development
The gap between software practitioners’ education and industrial needs is a topic of ongoing research. Studies have identified deficiencies in the coverage of computer fundamentals, people skills, software processes, and HCI in software engineering education. Addressing these gaps is essential for aligning educational curricula with the evolving needs of the software industry [23].
Commit Frequency in Software Development
Understanding commit frequency, which describes how often a developer makes code contributions to a project, is fundamental to comprehending software development processes. Analyzing commit frequencies in open-source software development provides insights into the differences between authors and projects, as well as between successful and non-successful projects [20].
Blockchain in Software Development: Opportunities and Challenges
Enhancing Security and Trust
Blockchain technology is reshaping various domains, including software development, by enhancing security and trust. The decentralized nature of blockchain ensures that data is not controlled by a single entity, thereby reducing the risk of manipulation and increasing trust among participants. The immutability of blockchain records ensures that once data is entered, it cannot be altered without consensus, providing a high level of security and trust in software development projects [27].
Decentralization in Software Development
Decentralization is a key feature of blockchain technology that has significant implications for software development. By distributing data across a network of computers, blockchain reduces the risk of centralized points of failure and enhances the security of software systems. Decentralization also promotes transparency and collaboration, as all participants have access to the same information. This feature of blockchain can be leveraged to create more secure and reliable software systems [12].
Challenges and Limitations
Despite the opportunities presented by blockchain technology, there are several challenges and limitations in its integration into software development. These challenges include technological complexity, higher costs of defects, and difficulty in upgrading software after release. Additionally, the decentralized and often hostile environment of blockchain development presents unique challenges that differ from traditional software development. The need for specialized tools and techniques for blockchain-oriented software development is also a significant challenge [4].
Case Studies: Blockchain Applications in Software Development
Smart Contracts
Blockchain technology has enabled the development of smart contracts, which are self-executing contracts with the terms of the agreement directly written into code. The immutability of blockchain ensures that once a smart contract is deployed, it cannot be altered, providing a high level of security and trust. However, the application of traditional Software Development Life Cycle (SDLC) models to blockchain-enabled smart contract-based applications is unsuitable due to the immutability of blocks. This highlights the need for new standard models to address the arising issues in smart contract development [26].
Decentralized Applications (DApps)
Decentralized Applications (DApps) are applications that run on a decentralized network, leveraging blockchain technology. The creation of blockchain-based software applications, including DApps, requires considerable technical knowledge, particularly in software design and programming. No-code and low-code approaches have been proposed to make this technology more accessible, requiring only little or no programming knowledge for creating full-fledged software applications. A case study for an integrated no-code blockchain environment demonstrates the state-of-the-art in this area [9].
Supply Chain Management in Software Projects
Blockchain technology has the potential to revolutionize supply chain management in software projects. However, there is a lack of comprehensive case studies that reveal the concerns of front-line developers and the situations of blockchain in practice. An investigation into how developers use and discuss blockchain, with a case study of Stack Overflow posts, provides insights into the types of questions developers have and identifies relevant entities for building blockchain applications. These findings may help blockchain project communities to know where to improve and help novices to know where to start [19].
Blockchain for Project Management and Collaboration
Transparent and Efficient Project Management
Blockchain technology offers a transparent and efficient approach to project management. Its decentralized nature eliminates the need for a trusted third party, allowing for direct peer-to-peer online transactions. The blockchain consensus mechanism, such as Proof of Work (POW) and Proof of Stake (POS), ensures the integrity and reliability of transactions, making it an ideal tool for managing projects in a transparent and efficient manner [40].
Collaborative Coding and Version Control
The decentralized consensus mechanisms introduced by blockchain networks provide a powerful framework for decentralized data processing and self-organization. These characteristics are particularly beneficial for collaborative coding and version control in software development projects. Blockchain networks enable a flat, open-access network structure, allowing for effective collaboration and data-driven self-organization among developers [36].
Intellectual Property and Licensing
Blockchain technology has the potential to revolutionize the management of intellectual property and licensing in collaborative projects. By providing a distributed shared ledger, blockchain facilitates the monitoring of processes and ensures the privacy of data. Permissioned blockchains, which handle access control, ensure that only verifiable participants have access to the state of the business process and its related information. This can be particularly useful in managing intellectual property and licensing agreements in collaborative projects [29].
Blockchain and Agile Methodology
Integrating Blockchain with Agile Practices
The integration of blockchain technology with agile practices presents a unique set of challenges and opportunities. Agile methodologies, known for their flexibility and adaptability, can be beneficial in the rapidly evolving field of blockchain. However, the immutable nature of blockchain requires careful planning and design, as changes are difficult to implement once deployed. A proposed software development process, based on several agile practices such as User Stories and iterative development, aims to address these challenges. This process also incorporates more formal notations, like UML diagrams, to represent specific concepts found in blockchain development [24].
Impact on Continuous Integration and Deployment
Blockchain technology has the potential to impact continuous integration and deployment practices significantly. The decentralized and immutable nature of blockchain can introduce complexities in the development process. However, adopting agile methodologies can help manage these complexities by allowing for iterative development and continuous feedback. The integration of blockchain with agile practices can lead to more robust and secure software systems, although it requires a careful balance between the rigidity of blockchain and the flexibility of agile [25].
Agile Project Tracking with Blockchain
Blockchain technology can also be utilized for agile project tracking, providing a transparent and immutable record of project progress. The decentralized nature of blockchain ensures that project data is not controlled by a single entity, enhancing trust among team members. This can be particularly useful in distributed teams, where maintaining transparency and trust is crucial. The integration of blockchain in agile project tracking can lead to more efficient and transparent project management practices [6].
Emerging Trends and Future Directions
Blockchain and AI in Software Development
The integration of Blockchain and Artificial Intelligence (AI) in software development is an emerging trend with significant potential. Blockchain can provide a secure and transparent environment for AI applications, while AI can enhance the capabilities of blockchain-based systems. However, the combination of these technologies poses new challenges, such as the need for specialized tools and techniques for blockchain-oriented software development. Future directions include ensuring effective testing activities, enhancing collaboration in large teams, and facilitating the development of smart contracts [27].
The Role of Blockchain in DevOps
Blockchain technology is increasingly being incorporated into DevOps practices, reshaping the way software is developed, deployed, and maintained. The unique characteristics and requirements associated with Blockchain Based Software (BBS) systems raise new challenges across the development lifecycle. Future research in this field should focus on the theoretical foundations, processes, models, roles, and key development activities, principles, challenges, and techniques of BBS engineering [12].
Future Prospects and Research Directions
As blockchain technologies are being increasingly incorporated into enterprise systems, it is paramount to follow proper engineering practices and ensure the required level of testing. The best practices and tools for testing blockchain-based systems are not yet sufficiently developed. Future research directions include addressing the testing-related issues and challenges of engineering blockchain-based software, defining standardized testing procedures and techniques, and reflecting on the specificity of blockchain-based software development [21].
领英推荐
Ethical Considerations and Regulatory Compliance
Data Privacy and Ethics in Blockchain-Based Development
The integration of blockchain technology in software development raises important questions regarding data privacy and ethics. Ethical assurance is presented as a structured means for unifying practical mechanisms that operationalize normative principles such as sustainability, accountability, transparency, fairness, and explainability. It supports inclusive and participatory ethical deliberation while remaining grounded in social and technical realities. This approach sets an agenda for ethical assurance in blockchain-based development, detailing current challenges, open questions, and next steps [5].
Navigating Regulatory Frameworks
Blockchain applications, especially in sensitive domains like healthcare, must navigate complex regulatory frameworks to ensure compliance and protect data privacy. Regulatory frameworks such as GDPR and HIPAA are meant to mitigate the risk of privacy violations. Blockchain features can improve interoperability and access control to health data while preserving patient privacy. However, blockchain developers need to make design choices to be compliant with GDPR, as currently, no available blockchain platform can show compliance out of the box [17].
Social and Environmental Implications
The application of blockchain technology also has social and environmental implications. Ethical and responsible design and production are crucial in the development of technologies like the Internet of Things (IoT), which often use blockchain. Top-down ethical frameworks that overlook the situated capabilities of developers or solutionist approaches that treat ethical issues as technical problems are unlikely to provide an alternative to the dichotomous imaginary for the future. A responsible approach to blockchain development should consider the broader social and environmental impacts [35].
Case Studies
Case Study 1: Classification and Comparison of Architecture Drivers in Blockchain and Cryptocurrencies
This case study presents a conceptual framework to aid software architects, developers, and decision-makers in adopting the right blockchain technology. The framework exposes the interrelation between technological decisions and architectural features, capturing knowledge from existing academic literature, industrial products, technical forums/blogs, and experts’ feedback. The applicability of the framework is empirically shown by dissecting platforms behind Bitcoin and other top 10 cryptocurrencies [15].
Case Study 2: Blockchain in the Eyes of Developers
This study investigates how developers use and discuss blockchain with a case study of Stack Overflow posts. It identifies 13 types of questions and 45 blockchain-relevant entities for building applications. These findings provide insights into the concerns of front-line developers and the practical situations of blockchain in software development [19].
Case Study 3: An Empirical Study of Blockchain Repositories in GitHub
This empirical study of 3,664 Blockchain software repositories from GitHub divides the repositories into two categories: Tools and Applications. The study reports on how developers generally interact in these repos and the degree of collaboration among users. It offers implications for Blockchain stakeholders, like developers, to stay aware of OSS practices around Blockchain software [10].
Case Study 4: Blockchain and Cryptocurrency: A Comparative Framework of the Main Architectural Drivers
This paper presents a framework to aid software architects, developers, tool selectors, and decision-makers in adopting the right blockchain technology for their problem at hand. The framework correlates technological decisions with architectural features and is validated by applying it to a real-world case study in the insurtech domain [14].
Case Study 5: An Empirical Study of Blockchain System Vulnerabilities: Modules, Types, and Patterns
This empirical study on blockchain system vulnerabilities investigates four representative blockchains: Bitcoin, Ethereum, Monero, and Stellar. It identifies vulnerabilities and their patches, revealing key findings about susceptible modules, vulnerability types, and patterns. The study also demonstrates the use of blockchain-specific vulnerability patterns to detect similar vulnerabilities in other popular blockchains [41].
Case Study Analysis and Discussion
Analysis of Selected Case Studies
The analysis of case studies in blockchain and software development reveals diverse applications and challenges. One study investigates how developers use and discuss blockchain with a case study of Stack Overflow posts, identifying 13 types of questions and 45 blockchain-relevant entities for building applications. This provides insights into the concerns of front-line developers and the practical situations of blockchain in software development [19]. Another study presents a classification and comparison of architecture drivers in blockchain and cryptocurrencies, providing a conceptual framework to aid software architects, developers, and decision-makers in adopting the right blockchain technology [15].
Lessons Learned and Best Practices
From the analysis of blockchain-oriented software projects, several lessons and best practices emerge. One study highlights the motivations, challenges, and needs of blockchain software developers, emphasizing the importance of security, reliability, and the need for specialized tools and techniques in blockchain development [4]. Another study focuses on the reasons for creating variant forks in blockchain-oriented software, with the main reason being to support a different blockchain platform. This underscores the need for flexibility and adaptability in blockchain software development [31].
Discussion on Findings
The findings from these case studies underscore the rapidly evolving nature of blockchain technology and its impact on software development. The integration of blockchain poses unique challenges, such as the need for enhanced security measures and specialized development tools. However, it also offers opportunities for innovation and the creation of decentralized applications. The lessons learned from these case studies can guide future research and development efforts in the field of blockchain and software development.
Conclusion and Recommendations
Summary of Key Findings
The integration of blockchain technology in various domains, including software development, has presented both opportunities and challenges. Blockchain-based recommender systems have emerged as a promising strategy to promote security and privacy preservation. However, these systems face challenges related to security, privacy, and the need for cryptographic security to protect users’ private information. The research has highlighted the importance of addressing these challenges to ensure the effective and ethical use of blockchain technology [18].
Recommendations for Practitioners and Researchers For practitioners and researchers in the field of blockchain and software development, it is recommended to focus on developing frameworks and tools that address the security and privacy challenges associated with blockchain-based systems. Additionally, there is a need for holistic end-to-end evaluations of recommender systems to ensure their effectiveness in aiding software development. Future research should also explore the use of machine learning algorithms in recommender systems and their implications for software engineering [34], [28].
Concluding Remarks
In conclusion, blockchain technology holds significant potential for transforming software development practices. However, it is imperative to address the ethical, security, and privacy concerns associated with its use. Practitioners and researchers should collaborate to develop solutions that ensure the responsible and effective application of blockchain technology in software development. Future research directions include exploring the integration of blockchain with artificial intelligence and machine learning to enhance recommender systems and other software development tools [8], [1].
References
1. Dylan Bates. Recommending More Efficient Workflows to Software Developers. 2021.
2. Kent Beck et al. Manifesto for Agile Software Development. 2001.
3. Bodemer, O., https://www.dhirubhai.net/in/oliver-bodemer/ , LinkedIn
4. Amiangshu Bosu, Anindya Iqbal, Rifat Shahriyar, Partha Chakroborty. Understanding the Motivations, Challenges and Needs of Blockchain Software Developers: A Survey. 2018.
5. Christopher Burr, David Leslie. Ethical Assurance: A practical approach to the responsible design, development, and deployment of data-driven technologies. 2021.
6. Bin Cao, Zixin Wang, Long Zhang, Daquan Feng, Mugen Peng, Lei Zhang. Blockchain Systems, Technologies and Applications: A Methodology Perspective. 2021.
7. AZM Ehtesham Chowdhury, Abhijit Bhowmik, Hasibul Hasan, Md Shamsur Rahim. Analysis of the Veracities of Industry Used Software Development Life Cycle Methodologies. 2018.
8. Matteo Ciniselli, Luca Pascarella, Emad Aghajani, Simone Scalabrino, Rocco Oliveto, Gabriele Bavota. Source Code Recommender Systems: The Practitioners’ Perspective. 2023.
9. Simon Curty, Felix Ha?rer, Hans-Georg Fill. Blockchain Application Development Using Model-Driven Engineering and Low-Code Platforms: A Survey. 2022.
10. Ajoy Das, Gias Uddin, Guenther Ruhe. An Empirical Study of Blockchain Repositories in GitHub. 2022.
11. Mahdi Fahmideh, John Grundy, Aakash Ahmed, Jun Shen, Jun Yan, Davoud Mougouei, Peng Wang, Aditya Ghose, Anuradha Gunawardana, Uwe Aickelin, Babak Abedin. Engineering Blockchain Based Software Systems: Foundations, Survey, and Future Directions. 2021.
12. Mahdi Fahmideh, Anuradha Gunawardana, Shiping Chen, Jun Shen, Brian Yecies. Blockchain Developments and Innovations. 2021.
13. Md Jobair Hossain Faruk, Santhiya Subramanian, Hossain Shahriar, Maria Valero, Xia Li, Masrura Tasnim. Software Engineering Process and Methodology in Blockchain-Oriented Software Development: A Systematic Study. 2022.
14. Martin Garriga, Maximiliano Arias, Alan De Renzis.
Blockchain and Cryptocurrency: A comparative framework of the main Architectural Drivers. 2018.
15. Martin Garriga, Stefano Dalla Palma, Maximiliano Arias, Alan De Renzis, Remo Pareschi, Damian Andrew Tamburri. Blockchain and Cryptocurrencies: a Classification and Comparison of Architecture Drivers. 2020.
16. M. Hanefi Calp, M. Ali Akcayol. The importance of human computer interaction in the development process of software projects. 2019.
17. Anton Hasselgren, Paul Kengfai Wan, Margareth Horn, Katina Kralevska, Danilo Gligoroski, Arild Faxvaag. GDPR Compliance for Blockchain Applications in Healthcare. 2020.
18. Yassine Himeur, Aya Sayed, Abdullah Alsalemi, Faycal Bensaali, Abbes Amira, Iraklis Varlamis, Magdalini Eirinaki, Christos Sardianos, George Dimitrakopoulos. Blockchain-based Recommender Systems: Applications, Challenges and Future Opportunities. 2021.
19. He Jiang, Dong Liu, Zhilei Ren, Tao Zhang. Blockchain in the Eyes of Developers. 2018.
20. Carsten Kolassa, Dirk Riehle, Michel A. Salim. The Empirical Commit Frequency Distribution of Open Source Projects. 2014.
21. Chhagan Lal, Dusica Marijan. Blockchain Testing: Challenges, Techniques, and Research Directions. 2021.
22. Andrew Lewis-Pye, Tim Roughgarden. Resource Pools and the CAP Theorem. 2020.
23. Georgios Liargkovas, Angeliki Papadopoulou, Zoe Kotti, Diomidis Spinellis. Software Engineering Education Knowledge Versus Industrial Needs. 2021.
24. Michele Marchesi, Lodovica Marchesi, Roberto Tonelli. An Agile Software Engineering Method to Design Blockchain Applications. 2018.
25. Lodovica Marchesi, Michele Marchesi, Roberto Tonelli. ABCDE – Agile Block Chain Dapp Engineering. 2019.
26. Mahdi H. Miraz, Maaruf Ali. Blockchain Enabled Smart Contract Based Applications: Deficiencies with the Software Development Life Cycle Models. 2020.
27. Simone Porru, Andrea Pinna, Michele Marchesi, Roberto Tonelli. Blockchain-oriented Software Engineering: Challenges and New Directions. 2017.
28. Ivens Portugal, Paulo Alencar, Donald Cowan. The Use of Machine Learning Algorithms in Recommender Systems: A Systematic Review. 2015.
29. Vahid Pourheidari, Sara Rouhani, Ralph deters. A Case Study of Execution of Untrusted Business Process on Permissioned Blockchain. 2019.
30. Eric S. Raymond. The Cathedral and the Bazaar. 1999. 31. Henrique Rocha, John Businge. Blockchain-Oriented Software Variant Forks: A Preliminary Study. 2022.
32. Sunil Kumar Singh, Sumit Kumar. Blockchain Technology: Introduction, Integration and Security Issues with IoT. 2021.
33. Karim Sultan, Umar Ruhi, Rubina Lakhani. Conceptualizing Blockchains: Characteristics & Applications. 2018.
34. Christoph Treude. Taming Multi-Output Recommenders for Software Engineering. 2022.
35. Funda Ustek-Spilda, Alison Powell, Irina Shklovski, Sebastian Lehuede. Peril v. Promise: IoT and the Ethical Imaginaries. 2019.
36. Wenbo Wang, Dinh Thai Hoang, Peizhao Hu, Zehui Xiong, Dusit Niyato, Ping Wang, Yonggang Wen, Dong In Kim. A Survey on Consensus Mechanisms and Mining Strategy Management in Blockchain Networks. 2018.
37. Yang Xiao, Ning Zhang, Wenjing Lou, Y. Thomas Hou. A Survey of Distributed Consensus Protocols for Blockchain Networks. 2019.
38. Minghui Xu, Yihao Guo, Chunchi Liu, Qin Hu, Dongxiao Yu, Zehui Xiong, Dusit Niyato, Xiuzhen Cheng. Exploring Blockchain Technology through a Modular Lens: A Survey. 2023.
39. Dylan Yaga, Peter Mell, Nik Roby, Karen Scarfone. Blockchain Technology Overview. 2019.
40. Shi Yan. Analysis on Blockchain Consensus Mechanism Based on Proof of Work and Proof of Stake. 2022.
41. Xiao Yi, Daoyuan Wu, Lingxiao Jiang, Yuzhou Fang, Kehuan Zhang, Wei Zhang. An Empirical Study of Blockchain System Vulnerabilities: Modules, Types, and Patterns. 2021.