centercenterBlockchain Development” New kid on the block”
ADT Term3 Assignment
Dominic Alfonso Stoffels 216125391
0Blockchain Development” New kid on the block”
ADT Term3 Assignment
Dominic Alfonso Stoffels 216125391
Table of Contents
TOC o “1-3” h z u Introducing Blockchain Development PAGEREF _Toc519362106 h 2What is a Blockchain PAGEREF _Toc519362107 h 2Bitcoin – The first Blockchain user PAGEREF _Toc519362108 h 2How Does Blockchains work? PAGEREF _Toc519362109 h 2The features PAGEREF _Toc519362110 h 2How it operates PAGEREF _Toc519362111 h 3The Many Advantages of Block Chains PAGEREF _Toc519362112 h 3Decentralization PAGEREF _Toc519362113 h 3Traceability PAGEREF _Toc519362114 h 4Immutability PAGEREF _Toc519362115 h 4Currency properties PAGEREF _Toc519362116 h 4Reliability PAGEREF _Toc519362117 h 4Transparency PAGEREF _Toc519362118 h 4Reduce transaction costs PAGEREF _Toc519362119 h 4BlockChain vs Traditional systems PAGEREF _Toc519362120 h 4Disintermediation PAGEREF _Toc519362121 h 5Confidentiality PAGEREF _Toc519362122 h 5Robustness PAGEREF _Toc519362123 h 6What Blockchain offers future Developers PAGEREF _Toc519362124 h 6How Blockchain and Software engineering can Coincide PAGEREF _Toc519362125 h 7The Challenges Blockchain face with regards to SE(Software Engineering) PAGEREF _Toc519362126 h 7Where Blockchain can improve to meet the expectations of SE PAGEREF _Toc519362127 h 7Bibliography PAGEREF _Toc519362128 h 8
Introducing Blockchain DevelopmentWhat is a BlockchainBlockchain is a relatively new technology that has been implemented with one of the world’s strongest cryptocurrency bitcoin by Satoshi Nakamoto, he defined it as the electronic coin – the Bitcoin – known as the Blockchain CITATION Cro15 l 1033 (Crosby, et al., 2015). It is used to potentially store or capture events, transactions, document activities and records (medical, identity, history etc.) .It has taken the world by storm with its methods of organising and operating with everyday data as there is no third party involved and the high security action it takes, this has led to many other cryptocurrencies beside Bitcoin to implement this architecture within their network.
Bitcoin – The first Blockchain userBitcoin is one of the most controversial users of Bitcoin since its release with its main focus being in eliminating the third-party involvement generally Government and bank control over the currency. Bitcoin became the first decentralized cryptocurrency to be created as the system itself was created to work without an administrator or centralized figure controlling the flow in the network. Bitcoins are sent from peer to peer through a decentralized network without the control of a bank or government involvement, the transaction is verified by nodes within the network using cryptography and recorded in a public ledger called a Blockchain. This is the first time Blockchains were introduced and became a technology favoured between financial or non-financial entities.
How Does Blockchains work?The features
Before we break down how the blockcahin operates we need to look into the parts or structure of how its setup and what will be needed to help better understand it. Blockchains is just another type of database for recording transactions and is vastly different to the traditional architecture we have been using for the past 2 decades, the database is copied across all computers inside a decentralized network, these computers are known as nodes. The data in a BlockChain is stored in blocks, the important parts of that block are its header and content.
the Header contains metadata CITATION Cro15 l 1033 (Crosby, et al., 2015), such as the reference number at the top the block, the time it was created and a linked reference to the previous block, this setup ensures there is chronological order to the blocks when new data is added.
The content contains data being transferred such as records, statements, documents etc. This is all put inside a block, the way the blocks are setup allows a user to access data inside the Blockchain due to reference key to the previous block, this ensures the Blockchain retains all the history from when the block was first created to the last one, the more blocks get added to the chain the more harder it is to break the chain.
How it operates INCLUDEPICTURE “https://lh6.googleusercontent.com/GV6CnB5qRxwJ-p-JybUg8rEJC9n-dl1Kgrs8QEa1y77SEClJsBmpiVeHFLopLO8wvoMrg9OtBPYWfXHUdeBfR66b9L54EEfzGh7MfEVrmpnc9uPktoMK8qHCrqfKywveExLNjZL8” * MERGEFORMATINET
Figure1.1 Transaction process in a Cryptocurrency
Blockchains sound like a really complex architecture to grasp to most people but has a really simplistic view about it, As discussed in the parts of the Blockchain we will be looking at how they operate in cohesion CITATION Cro15 l 1033 (Crosby, et al., 2015), a node within a network requests a transaction to be made, the transaction is displayed to all the nodes within the network and validates the transaction with their data using an algorithm to decipher the data and once its cleared it gets added to other transactions with the Blockchain and gets duplicated to all the nodes for future comparisons, this way the block is permanent and cannot be altered in any form, this reaches the completion of the transaction.
The Many Advantages of Block ChainsDecentralization – is a system or an idea that there is no central or one location system, every node or part of the system is connected but not through a centralized point but rather through a mathematical algorithm. Vitalik Buterin has 3 ways of classifying decentralization; Architectural Decentralization, Political Decentralization and Logical decentralization CITATION Ksh17 l 1033 (Hamal, 2017). Blockchain uses logical decentralization – has no chance of failure and can handle any major accidents at a point in the system – an attack looking to disrupt the system will have a hard time as all nodes are localized and has shared data, in order to destroy the system, a hacker has to have control over more than 51% of the nodes within the network.
Traceability – this means all transactions that are generated are placed in chronological CITATION Gua18 l 1033 (Guang, et al., 2018)order, the blocks are connected adjacently to one another and formed using a cryptographic hash function. This makes it easier to trace a block within the network using the hash and timestamp generated.
Immutability – means something cannot be changed or unchangeable over time, so in retrospect this means once data has been written to a block, no one can change it not even the peers who generated it, this is beneficial to many financial transaction software such as bitcoin wherein the receiver and sender has proof that data is unchangeable or unaltered, this feature is also relative that a sense in order to change data within a block i would need all other blocks to be erased concurrently to one another to alter, so I need a general or favourable agreement from everyone with the network to alter a block CITATION Ant16 l 1033 (Lewis, 2016).
Currency properties – any network that uses blockchains have a form of cryptocurrency. The property allows for point to point transactions without a third-party interference such as a bank or government entity. This allow for a fixed currency without drastic fluctuations or collapses by the government CITATION Gua18 l 1033 (Guang, et al., 2018), which in turn allows for a safer and more secure transaction.
Reliability – due to the heavy decentralized structure of a Blockchain and no centralized figure, the system will run on as normal even of 1 or 2 nodes become corrupt within the network there is no effect on the Blockchain itself CITATION Sea17 l 1033 (Williams, 2017), this allows the integrity of the data to be kept safe, as all nodes within the network has a copy of the ledger.
Transparency – this is a big advantage for most businesses and reason why they use Blockchain, due to it being an open source system/network developers have the freedom to modify the Blockchain as they want without restriction but with that comes other developers to see what is being altered, this makes it extremely difficult to alter the data within the Blockchain, after all there are quite a few people that views the network and can alarm some to stop the alteration CITATION Sea17 l 1033 (Williams, 2017).
Reduce transaction costs – as been discussed, Blockchain uses peer to peer transactions without the inclusion of a third-party, which in most cases is a bank or trade tariffs. Due to no middle man when using the blockchain network there is limited to no transaction costs.
BlockChain vs Traditional systemsTraditional Databases is slowly dying with the implementation of Blockchain. Traditional databases used a client-server architecture, through this method a user(client within the network access the data or information from the central component(Server), they can modify, right or read all the data within the limits of the administrator or the person controlling the server CITATION Gid16 l 1033 (Greenspan, 2016), this person has control over the whole network and can decide who joins or does not, this method is more centralized as all data runs through that server – in some instances you can have more than one server, but the architecture is still the same – the user then stores the data on the server which can be accessed from another client.
INCLUDEPICTURE “https://lh5.googleusercontent.com/Jdj_kU4fz2HFZapingFQJVgL954Hk_bl66xxvwpyuE–bTUp5CGVQIKG3mLzM7VCOe7_RpeNbiR7pvet2kfPzx0HUZd3JSnk4Fx12IjqI330HIqCUNFqqkJeXASR6ZkIBN5R_RPe” * MERGEFORMATINET
Figure1.2 Traditional DB Client-Server Architecture
Blockchains – there are major differences between this architecture, so instead of one server that takes control there are many nodes within the network, every node is identified as an administrator. All nodes verify the data and are able to insert new data into the system. Main advantage is cohesion and fairness so every node in the network must first reach a consensus before inserting data into the database unlike the one administrator CITATION Gid16 l 1033 (Greenspan, 2016)- in some case more than one- who controls every operation and creates unfairness and corruption like one big powerhouse. Blockchain has greater integrity and transparency in this network as every node sees the changes being made and validates the input, a big emphasis is put on decentralization opposed its centralized counterpart.
Looking at these two different architectures we have seen that there are major differences that are seen without even investigating deeper, we will look at the advantakes and disadvantes as well what each of them contribute to furure development of data transactions.
Disintermediation- this is where Blockchains become handy and has a greater advantage over its counterpart, the main reason behind Blockchains is cutting out the middle man or a third party, this can be in the form of a bank or government sector, the system solely relies on trust between all nodes as there is no central figure controlling the data like a server administrator. Transactions are verified or validated independently by multiple nodes, once more than 50% of these nodes reach a consensus the transaction becomes approved, this method creates a more balanced and fair environment by replacing these organizations with distributed databases, being locked down by cryptography, this is another step in the future of computers as code replaces human intervention.
Confidentiality – As discussed earlier every node independently verifies and validates every transaction in a Blockchain, in order for a node to validate they need access to every block in the Blockchain which is found on every other Blockchain in the network, this is a major disadvantage to networks that like privacy such as financial entities that prefer to be non-transparent in their dealing, every node is in the limelight when a transaction takes place so it’s hard to contain confidentiality in this system, whereas the traditional network is able to allow certain permissions to certain users when accessing or transferring data using CRUD, in this instance the traditional database has an advantage over its counterpart when it comes to confidentiality.
Robustness – This is a second benefit we discussed in Blockchains, due to the multiple replications1 of Blockchains across the network on every single node there is less fault tolerance, this means no single node is important to the network, removing a node does not affect the network and Blockchain at all, so can be said for adding a new node, the catch-up is instant, all the node needs is the Blockchain within the network. Traditional databases do replications but Blockchains take this to a new level, configuration is needed to the main hub or server in order for a node to be connected whereas in the blockcahin a node just needs to connect to another node to be in sync, so any changes made over the network automatically updates the rest of the nodes without any external changes, with traditional databases a lot of money goes into hardware and software needed to store replications of the database on multiple servers, this becomes tedious and expensive. So Blockchain is definitely the more viable option when it comes to robustness.
What Blockchain offers future DevelopersCensus Recording – Blockchain Development can help with census capture, Government deals with a vast majority of identity data such as birth certificates, death certificates, census capture and marriage certificate, with many record being lost or altered illegally in the national database. With Blockchain the greatest advantage would be with going back through the timestamps created by blocks to see when and where a citizen is, this data becomes unaltered and secure in the network CITATION Ber18 l 1033 (Marr, 2018). Illegal data can not be added to the Blockchain. This way of storing data is the most proficient as its harder to tamper and is permanently stored for future references.
Asset Protection CITATION Ber18 l 1033 (Marr, 2018) – Assets such as copyrighted material- music, movies, books etc. – are always being pirated or illegally transferred, this has been ongoing since the dawn of computers and is one of the major walls that artists and authors have been clashing with. Blockchain will enable the information to be inserted in. a network that utilises blockchains and through this the nodes in the other network will distinguish between the genuine material and the copies, swiftly denying any transaction of that illegal data across the network without the correct original source, this can be useful to developers looking to protect copyrighted material in the future.
Supply chain management – Blockchain can help secure records such as batches, expedition dates, storage temperatures, shipping numbers, processing data etc CITATION Ber18 l 1033 (Marr, 2018). Supply chains have a habit of leaving out or losing data pertaining to certain shipments and lose out in millions on revenue, Blockchains will ensure that no data is altered and have full transparency to the input and transaction of the shipments, everything will be in the spotlight allowing every node in the network to see and track where the shipment goes, due to heavy security of a Blockchain some hackers will have a hard time back-tracing certain loads without a node picking up the source.
How Blockchain and Software engineering can Coincide
The Challenges Blockchain face with regards to SE(Software Engineering)Blockchains deal with sensitive and private information at time so developers ned to find a way to ensure that the data flowing across the application or within the system becomes transparent which is against the very nature of Blockchains CITATION Bur17 l 1033 (Duyvendijklaan, 2017), this is a challenge which needs to be looked into if Blockchains and Software engineering are to coincide, many users within the network does not want their private data to be share amongst co-workers and Blockchains would need to evolve to the point where they are reliable and secure to that point.
Many iterations have gone through software architecture with Desktop, web and mobile applications, over the years software architecture has created a standard to be kept and with the introduction of Blockchains, software engineering has to go through many more changes CITATION Bur17 l 1033 (Duyvendijklaan, 2017), this is up to the software development community to help one another and improve the quality of the software architecture for Blockchain applications.
Data Modelling is another aspect that needs to be looked into with regards to Blockchains CITATION Bur17 l 1033 (Duyvendijklaan, 2017), Case, Sequence, activity diagrams as well as class diagrams have been created for the general development of software applications over the years, this will prove to be a challenge for Blockchains to adapt to these UML Based diagrams, a lot of effort will be needed to be out into creating diagrams specifically for blockchain networks.
Where Blockchain can improve to meet the expectations of SEThere are countless ways and steps to go about improving and altering Blockchain technology to suit modern Software engineering practices CITATION Bur17 l 1033 (Duyvendijklaan, 2017).There needs to be test methods set up for Blockchains and their distributed database nature, this becomes important to achieve due to high security and reliability forced on software applications, without a good testing infrastructure blockchains will fail and not pass verification or validation of the system as a whole. Better tools need to be created such as IDE’s and sandboxes that can support Blockchain practices. Blockchains Technology needs to start being part of the University and educational institutes, without the proper train and skillset learned Blockchain will not evolve, the more people understand the nature and practice of Blockchain technology the better our community can accept it into the IT industry. Languages such as Python, C#, Ruby etc. need to incorporate the technology and start implementing extensions or libraries imbedded or external for use of developers if the language has not done so already, Blockchain technology is taking the world by storm and the more languages that acknowledge this and accept it the faster and easier they make developers coding practices.
Blockchain is a relatively new Technology with a lot of potential to become one of the best, from cryptocurrencies such as Bitcoin we have learnt that many other software development can utilise this technology to helpe make it secure reliable and transparent to dissalow corruption of the data.
A lot of effort needs to be put into software negireein and cganging their practices o accomaodate Blockchain, from languages to UML diagramns, their will be new additions an many changes to how software engineers will work in the future. It’s a task whuch will need to be supported by the community as a whole and the sooner its accepted as a course in secondary and tertiary instituitons the better Blockchains can be taught around the globe and the fater we can roll out software that
BIBLIOGRAPHY Crosby, M., Nacchiapan, Pattanayak, P. & Verma, S., 2015. BlockChain Technology, California: university of California Berkley.
Greenspan, G., 2016. Blockchains vs centralized databases. Online Available at: https://www.multichain.com/blog/2016/03/blockchains-vs-centralized-databases/Accessed 12 July 2018.
Duyvendijklaan, B. v., 2017. What is the Best Blockchain Software Development Methodology?. Online Available at: https://www.iotcoresoft.com/iot-knowlegde-center/what-is-the-best-blockchain-software-development-methodologyAccessed 14 July 2018.
Marr, B., 2018. Blockchain Is Changing Our World: Here Are The Best Practical Examples Of How It Is Used In 2018. Online Available at: https://www.forbes.com/sites/bernardmarr/2018/01/10/blockchain-is-changing-our-world-here-are-the-best-practical-examples-of-how-it-is-used-in-2018/#fc14a634579bAccessed 12 July 2018.
Guang, C., Bing Xu, Manli, L. & Niang-Shin, C., 2018. Exploring blockchain technology and its potential applications for education. SpringerOpen, 1(1), p. 10.
Hamal, K., 2017. What is Decentralization in terms of Blockchain technology?. Online Available at: https://hackernoon.com/1-what-is-decentralization-in-terms-of-blockchain-technology-e266da2875c1Accessed 14 July 2018.
Lewis, A., 2016. A gentle introduction to immutability of blockchains. Online Available at: https://bitsonblocks.net/2016/02/29/a-gentle-introduction-to-immutability-of-blockchains/Accessed 12 July 2018.
Williams, S., 2017. 5 Big Advantages of Blockchain, and 1 Reason to Be Very Worried. Online Available at: https://www.fool.com/investing/2017/12/11/5-big-advantages-of-blockchain-and-1-reason-to-be.aspxAccessed 10 July 2018.
Ray, S., 2017. Blockchains versus Traditional Databases. Online Available at: https://hackernoon.com/blockchains-versus-traditional-databases-c1a728159f79Accessed 11 July 2018.