If you’re considering utilising blockchain technology within a software system, this article provides an in-depth assessment of the different technology and their benefits/risks to inform your decision.
Summary:
- Blockchain technology is typically used for:
a. Having a publicly verifiable record of information – this is what lends itself well to cryptocurrency and finance.
b. Proving ownership and transfers of digital assets, which is what NFTs and cryptocurrency is about.
c. As a foundation for decentralised applications which have no single owner or operator. - Different types of blockchain technology have different purposes that suit specific use cases.
- Use of this technology can help promote trust but also can have risks to reputation.
- There is complexity and cost associated with implementing and running blockchain-related systems.
What is a Blockchain?
A blockchain is a decentralised ledger or ordered list of records that when publicly available, can be used to verify information related to a point in time. When implemented correctly, the records in the blockchain are unalterable. To create trust in the validity of a blockchain, it is distributed so that it is jointly stored and managed across multiple entities. Bitcoin is one such blockchain, but this is just one of many blockchain implementations.
A note on private blockchains – a blockchain can be private – that is, restricted to be available to particular people. However, in making the blockchain private, full verifiability may be lost and with it the trust that may be had in the accuracy of the blockchain.
Example Uses of a Blockchain
- Crypto Currencies – the blockchain is used to define who currently owns what units of the currency through the blockchain records. As units of currency are transferred, the blockchain records the changes.
- NFTs – The blockchain is used to define who currently owns what digital asset through blockchain records. As the NFTs are transferred, the blockchain records the changes.
- Smart contracts – the blockchain is used to facilitate multi-step transactions with automated processing and verifiable states of the transaction at particular points in time. This provides the structure for contracts or agreements between parties. Executable code is stored in the blockchain that is intended to be executed at the time of recording to establish or progress the state of the contract. Smart contracts can be used to support decentralised applications.
- Supply Chain – The blockchain is used to record state of ownership, location, certifications or other product information throughout a supply chain.
There are various other uses of blockchain being explored but where it involves the use of private blockchains many of the advantages of blockchain technology are reduced and so the meaning and value of the technology need to be carefully considered.
What is Web3.0?
Web3 is a broad term that refers to a conceptual new idea for the web which is primarily
about decentralisation. The primary point of the concept is to try to move the web away from
big tech by being decentralised and not in the control of any one particular entity. A Web3
system or web-based decentralised application can theoretically be facilitated by smart
contract technology, using the blockchain. It was coined by Ethereum co-founder Gavin
Wood and the concept is consistent with the interests of Ethereum’s interests in this type of
technology.
Some prominent figures have argued that Web3 is merely a buzzword or marketing term
including Elon Musk and Jack Dorsey. Like many new terms, it is attractive to associate with
the term due to the perception of innovation, however due to disagreement about meaning
and the potential for misunderstanding due to the generic name, there is often confusion
about what web3 means and potential for misuse.
Many solutions that claim to be Web3.0 are believed not to be as decentralised as claimed,
meaning any possible advantages of being decentralised are diminished. For example,
according to the founder of the Signal app, almost all decentralised app projects make use of
only two companies to access the Ethereum API, which means that regardless of any trust
created by the blockchain technology, “… virtually all clients that wish to access it, do so by
simply trusting the outputs from these two companies without any further verification”.
It is not clear how much take-up there will be for decentralised web applications, in what
uses it might be useful enough or wanted enough to take hold or whether decentralisation is
really what the ‘web’ needs, should, or will utilise.
What are Decentralised Applications?
A decentralised application (DApp) is an application that is not owned by a single entity. Typically, they utilise blockchain, smart contracts or similar technology to facilitate a system that decentralises ownership of the system.
Any application or web system that is controlled by a particular entity (e.g. a company) is by its nature centralised. For a truly decentralised application, a company can really only control or own content within the application. The application itself is essentially open and is not managed or controlled by a single entity.
Besides cryptocurrencies, decentralised applications have had limited success. Decentralised applications require a complex infrastructure, more complex user interaction, and needs to be a trusted concept in itself to be taken up. If the system is not carefully designed there can be vulnerabilities that risk specific transactions/events or the trust of the entire system.
Does My Application or Web System Have a Use for Blockchain?
Before trying to create an application that utilises blockchain, it should be clarified what you are trying to achieve. Your application needs to actually have a meaningful need for a decentralised and public record of information to process. It should also be noted that there are other ways to achieve similar things. For example:
- BitTorrent is decentralised but does not rely on blockchain technology.
- Trust in an application can be increased by making all or part of it open source. This means openly sharing the source code for the application. This can promote transparency and also public input and verification of the application logic.
Using the Blockchain from a centralised application
A centralised application (owned and controlled by a particular entity) could utilise the blockchain for a public record of transactions related to the application.
The records on this blockchain are created by a single entity and so there still needs to trust that this entity is accurately creating these records. The blockchain itself will not prove the information is correct but that it was simply the information that the entity declared was true at a particular point in time.
It could be argued that a similar level of trust could be gained from periodically publishing information. The only difference is that that process would require recipients to archive information and verify it does not change while the shared blockchain would have the history of events inbuilt.
Ultimately, a centralised application requires trust from its users in addition to whatever trust the additional blockchain technology might help to add.
Reputation of blockchain and related technologies
The complexity, mystery and anonymity of blockchain technology mean that there are many different opportunities for scams and unethical behaviour related to the blockchain. This results in negative views of the technology.
There is also a lot of hype around blockchain-related technology due to the high amounts of money that has flowed through some cryptocurrencies and NFT transactions. This hype can propel misuse of the technology, and overestimation in capability, as well as promote a “fear of missing out” type of thinking towards it. This creates greater demand and also greater opportunities for scams.
- Use of blockchain technology in software applications outside of cryptocurrencies is limited in its success and validity.
- If an implementation of this technology does not truly utilise the advantages of blockchain technology then it risks negative feedback as well as the sunk cost and complexity if it was not required.
- If a system is not planned to be decentralised or has a true use of a shared immutable list of records, then there may not be any use or advantage in using blockchain technology at all.
- The use of blockchain technology must be carefully considered to increase trust with a genuine purpose.
- Use of blockchain-related technologies may incur the risk of being associated with scams.
General Considerations for utilising blockchain technology in a system
- Is there a need for the specific features that blockchain technology provides? E.g.
- Will a public record of information add value to the product?
- Is it both feasible and advantageous to make the application decentralised?
- Does the inclusion of blockchain technology improve or risk the reputation of the system?
- Is the ROI for the increased cost and complexity of development worthwhile?
- Will the potential advantages of blockchain technology be eroded because the system must remain centralised?
- Will the cost of transactions on the blockchain erode the potential value gained?
References
https://en.wikipedia.org/wiki/Blockchain, https://en.wikipedia.org/wiki/Smart_contract, https://en.wikipedia.org/wiki/Web3, https://en.wikipedia.org/wiki/Decentralized_application, https://web3isgoinggreat.com, https://moxie.org/2022/01/07/web3-first-impressions.html, https://ethereum.org/en/smart-contracts/