Welcome to ATech Store !

PART (2)

Cryptocurrency and Blockchain 

Bitcoin If, up until this point in time, you were of the belief that Bitcoin was the world's first attempt at a digital currency which is disintermediated and trustless you would be mistaken - but you would hardly be the only one. The truth is, prior to Bitcoin many other attempts had been made to create a truly fungible digital currency. The reason we hear little about these prior attempts is that they all failed to solve one critical problem a currency must address - the double spend problem. 

Double-spending Double spending is a potential flaw in a digital cash scheme in which the same single digital token can be spent more than once. This is possible because a digital token consists of a digital file that can be duplicated or falsified. This problem was prominent when trying to create a decentralized currency but was solved by blockchain. Blockchain solved this by putting transactions in a block, verifying each transaction, then adding these blocks to the chain. 

Cryptocurrencies have some similar characteristics to fiat currency: 
• Durable: Does this store of value persist well through time? 
• Portable: Is this store of value easy to move around and transfer? 
• Divisible: Is this store of value easy to divide into smaller sub-units for small payments & transactions? 
• Fungible: Is each unit of this store of value equal in value to any other unit? 
• Scarce: Is this store of value scarce enough to give it meaningful value? 
• Accepted: How widely accepted is this store of value as a means of payment or settling a debt? 

1.     Blockchain is the underlying security and record keeping mechanism that manages and controls
1.     the Bitcoin network. It is simply a ledger that records the transfer of Bitcoin or other assets between people or entities. The records stay on the blockchain (they are the blockchain), what is transferred is the control or ownership of the underlying asset - Bitcoin.

Why Use Blockchain? 


A key concept in blockchain is the concept of decentralization. In order to properly understand decentralization, it is helpful to understand both centralized and distributed approaches. As we review each approach, it is critical to keep in mind that each new approach is NOT a replacement for the approaches that preceded it - they should be thought of as additional tools in the solutions design toolbox. In other words, just because you bought a screwdriver does not mean you go home and toss out all your wrenches; each approach offers value in uniquely different ways and it is not uncommon to use multiple approaches in the context of one solution. 

The oldest and most well-known approach to systems architecture is a centralized approach. In a centralized solution there is typically a single owner or small group of owners of the solution, the data which the solution works with, and the infrastructure that delivers the solution. In other words, all layers and components of the solution are owned and managed by a central authority. 

The next approach is a distributed or cloud approach. In a distributed solution, centralized control, ownership of the solution and the data which makes up the solution are retained. However, ownership of the infrastructure which delivers the solution is given up. Facebook is a great example of a distributed solution - Facebook owns the application as well as the data which goes into the application, but Facebook has largely given up ownership and management of the infrastructure that delivers the solution to hosting providers such as Microsoft, Amazon, or IBM. 

A decentralized approach removes centralized ownership and control at all levels. In a truly decentralized solution the solution and its data are shared amongst all participants and the infrastructure can be shared by the solution owners or provided by the community at large. 
Benefits of a Blockchain 

As with any new tool, you will find there are good and bad use cases for blockchain. Blockchain provides many benefits, but it does have drawbacks as well. Understanding both is critical to applying the right technology to the problem set you're addressing. Before detailing the specific benefits and drawbacks, it's critical to understand that the benefits provided by blockchain always come at the expense of efficiency, speed, and performance. 
Blockchain is, by design, an exceptionally inefficient solution. However, by embracing these inefficiencies we gain the benefits of security, redundancy, and massive fault tolerance. Embracing such an inefficient approach can seem very odd to those who have spent a career in traditional I.T. and have been conditioned to purge inefficiency whenever possible. 




The benefits of blockchain solution include: 
• Shared Infrastructure between Organizations in a Business Network 
Your internal line of business (LOB) systems are the single source of truth for any 
question about your organization, but what is the single source of truth for processes that span multiple organizations in your business network? 

• Publicly Verifiable 
Accountability to customers and end-users (permission-less) 
• Secure o Control who sees what data when (permissioned) 
• Quality Assurance 
Track origins of all supply chain components 
• Example: Food origin and/or safety recalls o Smart Contract as a replacement for middlemen operators 
• Lower Transaction Costs 
Removing middlemen reduces cost 
• Tokenization 
Create trade-able tokens backed by real-world value o Fractional Asset Ownership and Asset Digitization 
▪ Example- Own 1 car in 1 city, or own 100 cars in 100 cities 
• Redundant and Highly Fault Tolerant 

A distributed ledger is fault tolerant in that if a single node were to lose track of the ledger it would remain somewhere else on the network. To better understand fault tolerance, we can think of a group message. Everyone in the group message has a copy of the conversation, if someone wanted to delete something in the group chat, they would need to delete it on everyone’s phone. Fault tolerance is especially useful when there are many people participating. 

• Bring Clarity and Transparency to Business Processes 
• No Centralized Authority 
• Low Barrier to Entry 
• Instant, Global Transactional Capabilities 
• No Double Spending  

Drawbacks of Blockchain 

Blockchain is no different from any other technology - the benefits it provides come at a cost. There are some drawbacks to blockchain that must be properly considered in order to determine if blockchain is a good choice in an overall solutions architecture. These drawbacks are outlined below. 

Here are some of the drawbacks blockchain faces: 
• Extremely inefficient 
• Very new technology 
Constantly changing and evolving o Not very many trained resources o High Cost for trained resources 
• Best practices, recommended patterns still being formed 
• Scalability, transaction speed / cost, especially on public platforms 
• No centralized ownership, no single authority 
• Can be difficult (even impossible) to get a complete “God Mode” view of the solution and its data 
• Many platforms and toolsets are still pre-production releases, and may not be ready to heavy applications development 

The Nature of an Append-Only Ledger 

When listening to descriptions of blockchain it is not uncommon to hear that blockchain constitutes a "globally shared database". This is not a bad analogy, as long as one bears in mind several key differences. Databases have four primary operations or functions, commonly referred to as the CRUD functions. In a classical database, those functions are: 

New records can be created and added to the database. 
READ o Existing records can be read from the database. 
Existing records can be updated in-place. 
Existing records can be removed or purged from the database. 
In blockchain, the last two of these functions have been intentionally removed. The only possible operations on a blockchain are: 
New records can be created and added to the ledger. 
READ o Existing records can be read from the ledger. 

Blockchain (by design) provides absolutely no ability to update or delete data on the ledger. This leads to the append-only and immutable properties of blockchain. If data is recorded on the blockchain, and that data later changes, that change must be recorded as an additional record on the ledger - no ability to update it in place exists. If data is no longer relevant, a new record must be added to the ledger indicating such - there is no ability to delete the record. 

This append-only approach delivers the benefit of full version history of all data points within a blockchain solution. Databases, by contrast, excel at showing a 'snapshot' or current state of data. 

Peer to Peer (p2p) 

Centralized and Distributed system architecture solutions usually adopt a client / server network approach. Blockchain and decentralized applications platforms largely forego client / server to adopt a Peer-to-Peer (P2P) approach. In a P2P network, all nodes or computers are equal to all others. There are no servers, all nodes are clients and servers simultaneously. This allows for virtually unlimited fault- tolerance and built in failover abilities, as well as backups via data redundancy. All of this comes at the expense of performance and efficiency. 



Decentralized Networks and Ledgers 


In a blockchain the ledger is stored, updated, and maintained by a peer network. Each node in this network maintains its own individual copy of the ledger. It is the job of the network as a whole to come to a consensus on the contents of each update to the ledger. This ensures that each individual copy of the ledger is identical without requiring a centralized "official” copy of the ledger. 

Why a Decentralized Network? 
As mentioned, we assume right from the beginning that none of the participants will or have to trust one another. As long as they trust in the integrity and the accuracy of the blockchain itself they do not have to trust each other. The image below can be used to represent a blockchain network. Each dot on this picture is a node or a miner on the network, keeping a copy of the ledger. 

Imagine if you were going to try to attack a network with this architecture, you could not perform a denial of service attack. The only true way to attack a network like this would be to take every single node offline. If you scale up this picture let’s say 10x or 100x (adding nodes) you can see just how powerful and secure this network becomes. 

Nodes can go online and offline as they choose, and the network continues to function seamlessly. When an offline node comes back online it can simply sync back up to the current state of the ledger with the other nodes online. This allows blockchain to not have a single point of failure or dependency that must be entrusted. This makes blockchain, and by extension, P2P architectures ideal for scenarios where network connectivity or uptime is not a guarantee – this is why there is so much interest and excitement around blockchain in parts of the world with developing infrastructure.