TL; DR Blockchain for Software Engineering

TL; DR Blockchain for Software Engineering

Blockchain is trending in the tech world now. Software Engineering Applications Enabled by Blockchain Technology: A Systematic Mapping Study is a recent paper (March 2021) which looks at the application of blockchain in software engineering. The researchers identified twenty-two primary papers that describe the application of blockchain in software engineering. The researchers set out to answer four research questions:

  1. What is the trend of studies that use blockchain?
  2. What are the blockchain uses in SE?
  3. What blockchain platforms are used in developing SE applications?
  4. How can blockchain contribute to the SE landscape?

A mapping of primary research studies along three axis, research type, research topic, and contribution type.

Figure 4. is a summary of the answer to the first two questions. It is a map of the primary papers by research type, research topic, and contribution type. There is only a single paper that evaluates the use of blockchain, and that paper was based on five interviews. Most of the papers either propose a solution, blockchain can solve problem X in software engineering, or validations, proof of concept to show how blockchain can solve problem X in software engineering. The authors noted that: “Based on our findings, there is no study that implements blockchain-oriented SE application in organizational setting to date.” The trend seems to be to replace parts of SE that require trust between collaborators with blockchain tech to solve the trust issues.

Ethereum is the most popular blockchain platform used in the papers followed by Hyperledger Fabric. The primary difference between the two is that Ethereum is permissionless, anyone can participate, while Hyperledger support authorized users. This answers the third research question.

To answer the final research questions the authors map blockchain technology properties to SE challenges that these properties address. Decentralization can help address attacks on centralized platforms like GitHub, Travis CI, npmjs.com. Transparency and trust can address lack of trust and visibility between organizations in an outsourcing scenario. Immutability and data security can help with things like securing the software supply chain. Anonymity can create fairness when assessing code contributions. Non-repudiation can help with responsibility and accountability on collaborative projects. Smart contracts can help automate assessments usually requiring humans in the loop, acceptance tests, compliance checks, security vulnerability checks, and automate payments to developers.

The papers, since most are either proof-of-concept or proposed solutions, don’t go into evaluation performance or scalability of blockchain in these software engineering applications. Most seem to layer blockchain tech on top of existing SE applications like combining smart contracts with automated tests to pay out bug bounties. From my point of view there are no clear benefits to applying blockchain technology to software engineering in high trust environments like commercial software development. There might be potential applications in lower trust environments like open-source development and the intersection of lower trust and higher trust environments like consuming open-source software from public package registries like npmjs.com for commercial software development. For now, at least based on the research so far, there is nothing for practitioners to see here.

In observing & casually participating in the space, I agree with the assessment. Additionally, I haven't yet encountered a practical application (let alone related to SE) that doesn't ultimately result in some form of financial speculation. Some of my current focus is in learning about recent changes in digital anonymity & identity. I don't think there's a popular blockchain solution that's emerged which feels particularly compelling (esp if it's gated by needing to buy-in). Decentralized identifiers (https://www.w3.org/TR/did-core/) are something I'm currently learning about and exploring as an alternative.

Ram V.

Co-founder at Mercati | ex-LinkedIn and ex-Oracle

3y

Even for closed systems with strong authentication, in SE, there are several applications of the "unmodifiable history" provided by the blockchain, such as commit history, deployment history, code review comments etc. Presumably such an implementation provides higher level of guarantee of records. That said, for high trust environments, as you say, it could be a solution searching for a problem rather than a clear need.

Like
Reply

To view or add a comment, sign in

More articles by Nikolai Avteniev

Insights from the community

Others also viewed

Explore topics