Blockchain has captured the attention of the technology and business world as a way to streamline business processes, verify transactions and reduce the chances of fraud. This article introduces Blockchain technolgy as a Service (BaaS) in Microsoft Azure, showing how it can be used to create a protected data structure and create a digital transactional distributed ledger.
There is a lot of internet literature about the blockchain and how it got started as a digital ledger for Bitcoin. A good introductory article on what blockchain is can be found at bit.ly/2IsoWeJ and for more technical information on how blockchain works, see "Blockchain Basics" article by Jonathan Waldman on the March 2018 issue
Blockchain is a secure, shared, distributed ledger that can be public, private, or consortium (that is, restricted to named members only). It is secure because it uses cryptography to create transactions that are difficult (if not impossible with current computing technology) to manipulate. Sharing between all nodes or peers in the chain is a store of data and, as you'll see shortly, business logic in the form of contracts. A R3 blockchain development value is actually tied directly to the number of entities participating in it. Critically, blockchain data and contracts are distributed, meaning there are multiple replicas of the database. And the more replicas there are, the more authentic it becomes. And finally,
I would like to reinforce this point about the blockchain going into a distributed ledger. Traditional ledgers are centralized and use third-party systems or intermediaries to approve and record transactions. Think of credit cards, banks, identity management systems, and the like. This approach creates a challenge of trust and scale. Do you trust the intermediary agent to act as the intermediary for all your transactions? Can the agent become a single point of failure? Can it be safe?
In a blockchain, ledgers are distributed throughout the network and there is no need for any third party system as a means of a transaction. The technology maintains multiple replicas of data, as shown in a peer-to-peer file sharing system, since both parties get a copy of the entire data set. No one owns all of it, but everyone owns a copy of it.
The first blockchain, Bitcoin, emerged in 2009, with clear limits. Like a digital ledger, it simply records transactions and does not keep track of digital asset account balances. Ownership of bitcoins is verified through links to previous transactions, following the history of blocks in the immutable recorded transaction chain. Furthermore, Bitcoin does not define any specific logic on how to control a transaction and the conditions, for example, that the two involved parties must agree to a cryptocurrency exchange.
Blockchain development technology evolved with the addition of smart contracts, which are small pieces of code that add logic to transactions. Think of smart contracts as a computer code representation of the legal terms in a contract for goods or services. New blockchain ledgers emerged on the market, most popularly going to Ethereum (ethereum.org) and Hyperledger Fabric (hyperledger.org), to add smart contract functionality to the network. In the following (Let's call them Blockchain 2.0) digital ledgers are now stored in a block of smart contracts and distributed to all nodes along with the related data
blockchain as service:
Blockchain on Azure provides a fast, low-cost, and low-risk platform for building and deploying blockchain applications. Azure basically offers Blockchain as a Service (BaaS) by providing several easy-to-deploy, enterprise-ready templates for the most popular ledgers, including Ethereum, Quorum, Hyperledger Fabric, Corda, and more.
Enough with the sales pitch, let's investigate some key capabilities of Azure BaaS, before we dive into setting up a specific ledger in the Azure portal.
Single node ledgers to simulate production environments for multiple divisions within a single organization.
Multi-node ledgers to simulate production environments for multiple divisions within multiple organizations.
Tools for the development of decentralized applications distributed on a chain of blocks.
Decentralized applications (dApps) are applications that run on a peer-to-peer network of computers rather than a single computer. In the blockchain context, think of a dApp as a client application that communicates with a smart contract to interact with the blockchain network. You can find a good introduction to dApps on the BlockchainHub
The key features of building a blockchain infrastructure on Azure are:
Establish protected from a secure environment that exposes the connection points. This can be done through Azure virtual networks, Azure App Services integration with virtual networks, or network security groups.
Development company the smart contracts, using any of the available development tools, such as Blockstack Ethereum Studio core or Truffle.
Automate the deployment of participant components, virtual machines, and platform-as-a-service components. This can be enabled by Azure Resource Manager and PowerShell scripts.
Protect access to data and logic with user authentication and authorization, by implementing Azure AD to protect applications and APIs.
Overall, building an architecture for enterprise solution integration with a blockchain ledger, leveraging Azure enterprise capabilities and worldwide distribution.