Source-linked AI summary
Blockchain-oriented Software Engineering: Challenges and New Directions
Simone Porru, Andrea Pinna, Michele Marchesi, Roberto Tonelli
TL;DR
Blockchain-oriented software engineering faces security, reliability, testing, professional-role, and modeling challenges as blockchain software development expands. The paper identifies these challenges, constructs a repository dataset using sector reports and cryptocurrency capitalization, and proposes research directions informed by the corpus analysis.
Problem
Blockchain-oriented software engineering needs specialized practices because blockchain systems present security-critical development challenges and require distinct professional roles, testing, and architecture approaches.
Method
The paper identifies state-of-practice challenges, examines selected blockchain-oriented projects, and builds a repository corpus using the 2016 Moody’s Blockchain Report and CoinMarketCap data.
Results
193 repositories were retained from 1,184, and the paper extracted statistics on popularity, collaboration, repository age, and programming languages before proposing new research directions.
Takeaways & Limitations
Effective testing, collaboration in large contributor communities, and specialized tools and practices for blockchain-oriented development are key directions identified by the paper.
Abstract
from arXiv · showhide
The Blockchain technology is reshaping finance, economy, money to the extent that its disruptive power is compared to that of the Internet and the Web in their early days. As a result, all the software development revolving around the Blockchain technology is growing at a staggering rate. In this paper, we acknowledge the need for software engineers to devise specialized tools and techniques for blockchain-oriented software development. From current challenges concerning the definition of new professional roles, demanding testing activities and novel tools for software architecture, we take a step forward by proposing new directions on the basis of a curate corpus of blockchain-oriented software repositories, detected by exploiting the information enclosed in the 2016 Moody's Blockchain Report and teh market capitalization of cryptocurrencies. Ensuring effective testing activities, enhancing collaboration in large teams, and facilitating the development of smart contracts all appear as key factors in the future of blockchain-oriented software development.
I. INTRODUCTION
Blockchain attracted rapidly growing financial and organizational attention, while attacks and hurried development exposed software-quality and security concerns. The paper responds by identifying blockchain-oriented software-engineering challenges, characterizing projects, and proposing research directions.
- Digital currencies had about 12 billions USD in capitalization in October 2016, with Bitcoins accounting for 80%.
- Blockchain-related attacks included declared losses of $600 million at MtGox, $65 million at Bitfinex, and $50-60 million in the DAO exploit.
- Software projects around blockchain implementations were described as hurried and driven by first-come-first-served competition, without assurance of software quality or basic engineering practices.
- The paper aims to reveal current issues and new directions while investigating the need for specialized software-engineering practices for the blockchain sector.
- It identifies state-of-practice challenges, highlights properties of popular blockchain projects, and proposes research directions based on those findings.
II. RELATED WORK
Related work presents blockchain as a potentially disruptive computing paradigm and emphasizes that its business-critical applications create especially pressing needs for security and specialized software-engineering processes.
- Blockchain is presented as potentially as disruptive a computing paradigm as the Internet and mobile.
- Because business motivates blockchain-oriented software creation, security demands and the need for specialized engineering processes are especially pressing.
III. BLOCKCHAIN -ORIENTED SOFTWARE ENGINEERING : CHALLENGES
Blockchain-oriented software engineering requires practices tailored to distributed, security-critical systems. The paper identifies professional, security, testing, architecture, modeling, and measurement challenges.
- Blockchain-oriented software is defined as software working with a blockchain implementation.
- New professional roles: Blockchain-oriented software engineering must address new professional roles combining finance, law, and technology expertise.
- Security and reliability: Blockchain-oriented systems require security and reliability practices because data integrity and uniqueness are necessary for trustworthy systems.
- Testing: Continuous testing techniques are identified as a way to ensure blockchain software quality.
- Testing: Testing suites should include Smart Contract Testing for specifications, legal compliance, and unfair terms, plus Blockchain Transaction Testing for double spending and status integrity.
- Software architecture: BOS architecture may need implementation-selection criteria, sidechain or ad-hoc blockchain decisions, and higher-level data representations than Ethereum’s key-value store.
- Modeling languages and metrics: Specialized models and metrics are proposed because existing diagrams may not represent BOS effectively, while distributed systems require measures of complexity, communication, resource consumption, and performance.
IV. BLOCKCHAIN -ORIENTED SOFTWARE REPOSITORIES
The authors conducted an exploratory study of blockchain-oriented repositories identified through the Moody’s Blockchain Report and CoinMarketCap, then collected repository and issue-tracking metadata.
- Corpus construction: The corpus comprised 1184 GitHub software repositories identified using the Moody’s Blockchain Report and CoinMarketCap.
- Corpus construction: The study first identified relevant blockchain-sector projects and players, then collected metadata from corresponding repositories and issue-tracking systems.
A. Building a Dataset of Blockchain-oriented Software
The paper constructs a corpus of blockchain-oriented software projects by linking blockchain-project sources and highly capitalized cryptocurrencies to publicly accessible GitHub repositories.
- A BOS project contributes to realizing a blockchain project, including blockchain platforms such as Bitcoin and Ethereum.
- The repository search began with more than 120 publicly announced blockchain projects identified in Moody’s Blockchain Report.
- The study additionally covered software associated with the first 17 most capitalized currencies and assets on CoinMarketCap.
- Researchers searched project names, associated blockchain startups, and hosting platforms to locate software corresponding to listed projects.
- Only freely accessible GitHub software was considered because its homogeneous metadata supports comparisons using stars and forks.
B. Dataset Analysis
The dataset was narrowed from a broad repository collection to active, original repositories, while retaining metadata for popularity, programming languages, community involvement, and age.
- The study identified 52 GitHub accounts comprising 1184 repositories and extracted metadata on popularity, languages, community involvement, and age.
- 193 repositories remained after excluding forks and requiring recent updates, creation more than 30 days earlier, and prior modification.
C. Preliminary Results
Preliminary analysis describes the programming languages and popularity of the retained blockchain-oriented repositories. JavaScript dominates the language distribution, while Bitcoin and Ethereum repositories lead the popularity statistics.
- JavaScript, Python, Go, C++, and Ruby are the five most used languages among the 193 retained repositories.
- More than 30% of the retained repositories use JavaScript, while Java repositories account for less than 4%.
- Bitcoin is the most popular project, with 9966 stargazers and 396 contributors.
- Ethereum has three associated repositories in the top 10, including a Go repository ranked just behind the main Bitcoin repository.
- The top 10 repositories average around four years of age, with forks reaching 4266 for the main Bitcoin repository and 695 for Ethereum’s Go repository.
V. BLOCKCHAIN -ORIENTED SOFTWARE ENGINEERING : NEW RESEARCH DIRECTIONS
The paper proposes research directions centered on testing, collaboration, language-specific tooling, and smart-contract development. These directions respond to large contributor communities, emerging language patterns, distributed-system testing needs, and the need for specialized development environments.
- Testing: Testing research should examine whether larger BOS teams produce more test cases while reducing test cases per developer, as observed in broader GitHub projects.
- Collaboration: Large voluntary contributor bases motivate practices that improve collaboration and synergy between blockchain systems and their communities.
- Enhancement of testing and debugging for specific programming languages: Go, Python, and Ruby’s prominence creates a need for testing and debugging suites tailored to popular BOS languages.
- Testing: Because blockchain systems are distributed, isolated testing requires mocks that effectively simulate the Blockchain.
- Creation of software tools for smart contract languages: Smart Contract Development Environments could streamline smart-contract creation through specialized languages such as Solidity.
VI. CONCLUSION
The paper identifies major challenges in blockchain-oriented software engineering and proposes directions to support more effective development. Its repository analysis motivates priorities in collaboration, testing, and specialized smart-contract tools.
- The paper advocates new professional roles, enhanced security and reliability, novel modeling languages, and specialized metrics.
- 193 repositories were retained from 1184 candidates to analyze popularity, collaboration, repository age, and programming languages.
- The proposed research directions focus on collaboration among large teams, testing activities, and specialized tools for creating smart contracts.