Software and Hardware Requirement Specification3.1 Functional Requirements:As with all new technologies, Blockchain has various requirements, whether it be functional or non-functional. An overview of the functional requirements is given below: Digitization of real-world assets:o Implementation of Tokenization of physical goods.o Provision of sufficient Data Security and Data Privacy. Digitization of processes and transactions between independent companies:o Supporting Decentralized Data Storage with sufficient performance.o Offering Smart Contracts. Provision of immutable transaction and asset records:o Ensuring the Immutability of data.
o Permanent storage and availability of data.A more detailed explanation for each category can be found below: Tokenization: It is one of the most important concepts when discussing Blockchain. Tokens can be considered to be digital representations of goods, services or rights. They can be fungible or non-fungible, depending on the good or service in question. Tokens can give access to information about the product they represent, grant some specific usage rights, or represent the ownership of goods.
This mechanism is highly relevant for all digitization cases of real world goods, since it allows trust and values to be exchanged between parties without the need for a central intermediary. Data Security and Privacy: These are extremely important requirements, especially when it comes to business use. There are two main issues with Blockchain: the first is that it must be possible to grant specific data access rights to individual users or roles. It’s very important, because in a public chain like Bitcoin, all data within a block is readable by everyone. The second issue is compliance with data privacy regulations. Since these regulations differ from place to place, the Blockchain must be compliant with as many of these as possible. Decentralized Data Storage: This a core requirement of a distributed system. It must be possible to manage transactions and data storage in an efficient way. If decentralized data storage were the only requirement, there would be better solutions than Blockchain that solve that problem but the capability to manage data in a decentralized, distributed way is a fundamental requirement. Smart Contracts: While a standard contract defines only the terms of a business relationship, a Smart Contract is also able to define the conditions under which the contract is executed. A Smart Contract is a set of fixed rules, defined as a software program, executed on the Blockchain. Examples which can be defined with a Smart Contract are: The definition of criteria under which a payment is made, the definition of quality criteria and the penalties if these are not observed. Because such coded and tamper-proof executed rules can eliminate a central authority, Smart Contracts play an important role in automating cross-company collaboration. Immutability: It is the property that is most commonly associated with Blockchain. Immutability is the foundational requirement for exchanging value in a digital sense. This requirement is not solvable with traditional internet technology, because all digital data can be easily copied and changed. If two accounts exchange information for instance by mail, there is a copy of this mail in everyone’s mailbox. Same is for data, exchanged between two or more systems. The only way to solve that problem without Blockchain is relying on a central intermediary which holds the correct version of the data. Based on the Consensus mechanism, Blockchain is able to solve that problem. Permanent Availability of Data: It is the last core requirement of Blockchain solutions. The ledger never forgets anything”which could be a problem in aspects of GDPR compliance, it is an essential feature of Blockchain technology. Especially when Blockchain is used to represent real contracts and their data, immutability and permanent availability are essential requirements, especially from a legal and regulatory point of view.The above points represent the six areas that are the core requirements when selecting Blockchain technology. A seventh, less important requirement would be the Intergratability of Physical Devices. This concludes the section of functional requirements.3.2 Non-Functional Requirements:These are criteria that can be used to judge the operation of a system, rather than specific behaviors. The Non Functional Requirements for this project are detailed below: UX: When it comes to UX, it is always a question of how much of the underlying Blockchain architecture must be revealed to the users. It becomes a question of whether the public keys, private keys, tokens, etc. should be revealed to the user or now. While revealing it increases transparency, it may make the application more difficult to use, as well as more confusing to those with little knowledge in the domain. This question is rather important, since Blockchains are to be trusted with money and hence, finding the right balance is of utmost importance. While having too much Blockchain jargon may turn away users, having too little may make the application seem untrustworthy. Scalability: A platform would be tied to both a Blockchain implementation as well as the scalability of the underlying platform. Choosing the right underlying platform (preferably a highly scalable one) is quintessential to allow the users a smooth transition when the Blockchain implementation is updated. Development Operations: Some projects are aiming to make Blockchain network administration easier, but it is still quite difficult to set up. There are lots of manual steps involved in setting it up and getting it running. It ends up taking a lot of time to integrate everything and improve the DevOps experience. Hence, a lot of time must be allocated to provisioning and automating cluster deployment. Managing Stakeholders: When selling the advantages of a Blockchain application, there is a good chance that the benefits of such a system may be overestimated. Governance stakeholders arguably receive the most benefits from being able to track what everyone is doing and use it to regulate or check compliance. While this is important, other stakeholders need incentives to join in with the network. There is also the problem of persuading all stakeholders to get involved, so that business analysis and requirement gathering can be done. The modelling and smart contract definitions require the understanding of business domains of all the different types of stakeholders. The key advantage of Blockchain is that it can enable business and collaboration between organizations that have never met.3.3 Hardware Requirements: A PC with the following or greater specifications:o Intel Core i7 (6th gen or higher)o 8 GB RAMo 500 GB Hard Drive A stable internet connection (2Mbps or higher).3.4 Software Requirements: Microsoft Windows (64 bit) Web Browser (Chrome recommended) Notepad++ for scripting.3.5 Cost Estimate:This project was done using open source software and freeware, so there were no direct cost incurred. Indirect costs derived from internet tariff and electricity charges are the only costs to speak of.