# Software Engineering Applications Enabled by Blockchain Technology: A Systematic Mapping Study
## 4 Results
### Contributions of Blockchain to the Software Engineering Landscape (RQ4)
In this case, anonymity is particularly important to ensure fairness in the reviewing process, which in turn improves the code review process and software quality. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Blockchain Properties** & **SE Challenges Addressed** & **Selected Studies** \\ \hline \multirow{2}{*}{Decentralization} & Single point of failure and compromise problems of centralized systems, & [29; 30; 41; 42; 43; 46; 48; 50; 52; 57; 58] \\  & e.g., GitHub, Travis CI, and cloud-based package managers & \\ \hline \multirow{2}{*}{Transparency and trust} & Lack of trust and visibility of SDLC activities among distributed teams & [29; 30; 37; 42; 43; 44; 45; 50; 51; 52; 53; 54; 56; 57; 58; 59] \\  & that usually operate in silos & \\ \hline Immutability and data security & Unauthorized software artifacts access, modification and transfer & [29; 37; 41; 42; 43; 46; 48; 52; 53; 54; 56; 58; 59] \\ \hline \multirow{3}{*}{Non-repudiation} & Lack of fairness in reviewing code/software contributions & [51] \\ \cline{2-2}  & In outsourcing and crowdsourcing, software requestors or bug bounties & \\ \cline{2-2}  & intitors may repudicate payments to developers or testers. & \\ \cline{2-2}  & In collaborative software development, collaborators may repudicate & [44; 47; 48; 53; 57; 58] \\ \hline \multirow{2}{*}{Smart contracts/Chaincode} & Manual work in the verification of SDLC tasks, e.g., acceptance phase, & \\ \cline{2-2}  & compliance to best practicies and regulations, and automatic payment to & [29; 30; 37; 43; 44; 45; 50; 52; 53; 54; 56; 58; 59] \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Mapping of blockchain properties and SE challenges addressed. **Non-repudiation. ** Stakeholders in the software development lifecycle can shirk responsibility. For instance, when software is being developed in a collaborative manner, it may occur that a collaborator claims to not have added a specific patch [57]. Additionally, in software-testing with bug bounties, it may occur that bug bounties initiators claim that they discovered the bug and refuse to reward the tester [47]. These issues can be addressed with digital signatures and blockchain consensus mechanisms. Transaction messages containing updates or testing results are digitally signed and validated depending on the consensus algorithm. Once a transaction is recorded on the blockchain, it cannot be repudiated. **Smart contracts/Chaincode. ** Smart contracts can automate the verification of tasks, which usually involves human-in-the-loop. For instance, smart contracts can be used to automatically verify that tests passed [44; 45], and to verify the compliance of SDLC activities to best practices and policies, e.g., security vulnerabilities compliance and third-party license compliance. Additionally, smart contracts can automatically reward software engineers once they have completed their tasks and passed the criteria encoded in smart contracts via digital coins [45] or tokens [59]. The increased automation has positive impacts on the speed, quality, and efficiency of the software development process.