All Blog Posts
March 26, 2018

Blockchain on Microsoft Azure

Posted By
aureus tech systems

Microsoft is putting a lot of resources into making Azure a leading platform for blockchain technology. The Microsoft Azure Blockchain Council, announced in September 2017, aims at connecting businesses that need blockchain tech with ones that provide it. The first announced member was Synechron, which has formed a Blockchain Center of Excellence.

Microsoft has added support for several blockchain platforms to Azure, turning them into easily integrated services. Its focus is on business uses other than cryptocurrency and on private blockchains more than public ones.

Ethereum

One of the clear leaders in blockchain for business is Ethereum. Its leadership rests largely on the Ethereum Virtual Machine (EVM), which provides a Turing-complete computational architecture. That is, it can perform any computation which general-purpose digital computers can perform. It includes a cryptocurrency, called the ether, but it's intended primarily as a distributed computing platform or "world computer." Ether is used to purchase computing resources.

Several programming languages run on the EVM. The most widely used is Solidity, which is based on JavaScript. An application on the EVM is called a DApp, or distributed application. It's Ethereum's version of the smart contract. Or to put it conversely, a smart contract is simply a software application that runs on a blockchain and can operate on it.

Solidity compiles to bytecodes which run on the EVM, just as Java does. It's based on the ECMAScript standard. The differences from JavaScript are mainly the ones that relate to the computing environment; JavaScript runs within the HTML DOM, while Solidity is designed for a distributed environment.

Azure provides Ethereum Blockchain as a Service. Users can set up private, public, or consortium-based blockchain environments. The user can select the Ethereum Consortium Blockchain template from the Azure Portal and set up a private network quickly. A consortium network consists of transaction nodes, which are publicly accessible, and mining nodes, which aren't. The network will have its own ether, which isn't exchangeable for public ether.

DApps can be integrated with other Azure services, such as Active Directory, Power BI, and Office 365. This allows forms of collaboration that make heavy use of Azure's features.

Corda

The Corda Single Ledger Network on Azure focuses on financial services. It doesn't use cryptocurrency or mining at all, focusing entirely on transactions and smart contracts. Its most distinctive feature is point-to-point transactions, making them faster than ones that have to go through intermediaries.

Its smart contracts are called CorDapps, or Corda Distributed Applications. They execute atomically; that is, execution either completes or is rolled back to the initial state. This helps to ensure transaction integrity.

Participants in an R3 Corda network aren't anonymous, so it can handle consensus in a different way from Bitcoin and Ethereum. A Notary Cluster, a designated group of servers, can use any of several consensus algorithms to validate transactions and make sure that conflicting transactions are mutually excluded.

On the traditional blockchain, all transactions are public. Corda provides private transaction histories through encryption.

On Azure, Corda networks are configured using Ubuntu Virtual Machines as nodes. A network contains one notary node, one node running the network map, and several member nodes.

Hyperledger Fabric

The focus of Hyperledger Fabric is business transactions, and the emphasis is on scalability, security, and modularity. There are three types of nodes: Member, Orderer, and Peer. In spite of what the names might suggest, it's the Peer nodes that are owned by individual members. Transactions occur between Peers and are invisible to others. The validation system is similar to Corda's Notary Cluster, where not everyone in the network has to participate.

There isn't necessarily one ledger across the whole network. Instead, a ledger belongs to a channel, which is defined by a set of peers. There can be one channel for the whole network or multiple channels which are private to their owners. Participants can belong to more than one channel. A common case for a channel would be two partners who have a private agreement whose details they don't want revealed to anyone else.

Assets are a central concept, defined as binary or JSON key-value pairs. Transactions on a channel record changes in the state of an asset. The software which manages assets is called Chaincode. The Go or JavaScript (node.js) languages can be used to write it. A Chaincode can invoke a Chaincode on a different channel.

Quorum

The Quorum blockchain was created under the auspices of J. P. Morgan for financial applications. It's a slightly modified version of Ethereum, Like Corda and Hyperledger Fabric, it's oriented toward private transactions and permissioned access. Unlike those two and like Ethereum, it maintains a single blockchain for all nodes in the network, but the private state is known only to authorized parties.

With this approach, participants can tranact business privately while recording proof that it was transacted on the blockchain. At a later date they can disclose the documents, and the existence on the blockchain of validated hashes of them confirms that they were transacted and haven't been modified.

Quorum uses a different consensus method from Ethereum, avoiding the overhead of proof-of-work. Certain nodes, called Voter nodes, are authorized to vote, and a majority vote validates a block. Nodes that can create blocks are called Maker nodes; they may or may not also have the Voter role. Nodes that aren't Makers or Voters are called Observers.

Quorum uses zero-knowledge cryptographic proofs, called zk-SNARKs, to validate transactions without revealing their contents. This is a major difference from Ethereum, where DApps are always executed publicly. Quorum can also execute ordinary Ethereum DApps, which run on the public EVM.

Encrypted data isn't stored on the shared blockchain, but hashes of encrypted private contracts are stored there, allowing validation. This is a less lightweight approach than channels or notary clusters, but more in keeping with the original blockchain idea that having many copies ensures data integrity.

As with the other blockchains, Quorum is available through the Azure Portal. Deployment is fairly simple. The administrator must set the number of Maker, Voter, and Observer nodes. After deployment, Overview screen lets the administrator examine the network's status.

A rich future

The participation of major players such as Microsoft shows that blockchain technology for business is rapidly maturing. The ease of deployment on Azure and the ability to integrate blockchains with other services will give developers lots of opportunities to invent new ways to use it. In particular, Microsoft is focusing on approaches which support privacy without anonymity. Not long ago, this combination seemed antithetical to the basic blockchain philosophy. Now it provides rich opportunities for collaboration and verification.