# Software Engineering Applications Enabled by Blockchain Technology: A Systematic Mapping Study
## 4 Results
### Contributions of Blockchain to the Software Engineering Landscape (RQ4)  
In this section, we provide a holistic view of the contributions that blockchain can bring to the SE landscape. Table 6 shows the mapping of blockchain properties and the SE challenges that they address. In what follows, blockchain properties and their contributions to SE dimensions are described. \begin{table}
\begin{tabular}{c c c} \hline \hline \multirow{2}{*}{Platforms} & Bitcoin & [41] \\ \cline{2-3}  & Ethereum & [29; 37; 44] *, [52; 53] \({}^{\text{A}}\), [54] \({}^{\text{V}}\), [55] \({}^{\text{t}}\), [59] \\ \cline{2-3}  & Hyperledger Fabric & [48; 49; 56] \({}^{\text{O}}\), [58] \\ \hline \multicolumn{2}{c}{Others} & \multicolumn{1}{c}{Susereum [50]} \\ \hline \hline \end{tabular}  
* ChainSoft, \({}^{\text{A}}\) CAG, \({}^{\text{V}}\) Blinker, \({}^{\text{T}}\) ShIFt, \({}^{\text{O}}\) Blockhub.  
\end{table} 
Table 5: Blockchain platforms used in developing SE applications. **Decentralization. ** The software development ecosystem relies on centralized systems, such as GitHub and Travis CI [30], and cloud-based package managers [52]. These systems pose the risks of single points of failure and compromise. For instance, in 2015, GitHub has been the target of DDoS (distributed denial-of-service) attacks where a high number of illegitimate requests resulted in intermittent outages [61]. To avoid such issues, these centralized systems can be replaced with decentralized systems which enable all the authorized parties to have the same view on transactions stored on the distributed ledger. Distributed systems offer higher availability and resilience to intermittent outages [30]. **Transparency and trust. ** Distributed teams operate within their own boundaries, which hinders a 360-degree view over the entire software development lifecycle [59]. For instance, distributed teams record compliance-related data in their local repositories [53]. These data can be manipulated prior to sharing with other teams or clients, which introduces trust issues. In turn, the detection of manipulated data impacts delivery schedules, whereas the non-detection may lead to penalties or loss of reputation. Blockchain can serve as the backbone of the software development lifecycle, meaning that all SDLC events and artifacts' metadata can be recorded on the blockchain. In this way, blockchain provides distributed collaborators with a holistic view of the software development lifecycle. The authorized collaborators can verify the trustworthiness of software-related information at any time. Therefore, blockchain can be used as a shared distributed ledger, which due to its transparency and verifiability contributes to mitigating trust issues between different parties involved in the development of a complex and large-scale software project. **Immutability and data security. ** In collaborative software development, multiple participants can access, modify and transfer software artifacts. Unauthorized software modifications have been considered as the key issue as software crosses teams' boundaries [55]. For instance, participants can modify code with fraudulent intent or add vulnerable open-source components which enable hackers to carry out data breaches. The blockchain structure as a linked list allows to track the history of each software artifact and detect any unauthorized attempts to access, modify or transfer software artifacts. The immutability property of blockchain enhances the security of software artifacts stored on it, such as code, build files, and third-party components, as they are encrypted, hashed and appended in chronological order on the blockchain. **Anonymity. ** Code hosting platforms such as GitHub allow users to store code and rate the code as a way to reflect code quality. However, this is not enough to assess the quality of code contributions [51]. To address this issue, [PERSON] et al. [51] proposed an approach in which developers with advanced skills, referred to as the jury, review the code of developers in a double-blind process.