Blockchains have become a topic of digital interest since the emergence of real-time ridesharing and crowdfunding began using “cryptocurrency” nearly a decade ago. Blockchains (“blocks” refers to a growing list of records) ease secure, online transactions through a decentralized and distributed digital ledger that records transactions across many computers. The blockchain ensures that the record can’t be altered after-the-fact without the adjustment of all subsequent blocks and the complicity of the network.
Microsoft’s Azure blockchain service makes the infrastructure portion easier by standing up the blockchain environment including the required compute, network, storage services from the Azure portal in a matter of minutes. From an application perspective, Azure supplies the ease of deployment and configuration of blockchain networks by leveraging solution templates. From a design perspective, Azure provides shared, distributed, cryptographically immutable ledgers so that organizations can collaborate and build applications on top of such a platform.
These features were prominently discussed at the recent Microsoft Ignite 2017 Conference in Orlando, and I took note of a number of these as I attended various sessions and discussions. In this article, we will look at the main highlights and advantages of using the Microsft (MS) Azure platform with respect to blockchains gathered through a series of sessions focused on Enterprises, Use Cases, Integration, Standards, Enabling Frameworks, and Tools that Azure services use to support blockchains. More information can be found in the Reference section below.
A growing number of enterprises are experimenting with blockchain technology as a secure and transparent way to digitally track the ownership of assets across trust boundaries, to achieve cross-organizational collaboration and to model their business needs. They will require a proven platform that can meet performance, scalability, availability, security and governance features. An enterprise’s approach must adhere to separation of concern capabilities such as modular logic, Cross, and Multichain, while working with external systems, multiple trust models, flexible designs, and different scales and versions. The Azure platform seems ready to meet these enterprise features and requirements for blockchain development and management in the following areas
- Ease of adoption: MS Azure provides platform, project methodologies that enable POCs and Pilots to be conducted in a matter of days versus Weeks or months.
- Performance: Digital Ledger is the core of any blockchain implementation, and the Azure platform is being tuned to provide database-like speeds for transaction throughput and latency. Bitcoin and Ethereum frameworks typically process a few transactions per minute, while the COCO (Confidential Consortium) framework is designed and tested for thousands of transactions by leveraging TEEs (Trusted execution environments) H/W or S/W based, Paxos, and similar consensus mechanisms enabling high-performance and throughput.
- Scalability and flexibility: Azure BC service can scale to support hundreds of nodes across multiple subscriptions in a short time span. It can support multiple topologies fulfilling the scalability promise:
- Dev/Test – Typically Single Virtual Machine(VM) nodes featuring multiple participants
- Single member – Multiple divisions for a single organization, multiple subscriptions using number of VMs
- Multi-member — Multiple nodes across multiple regions and organizations, a true private consortium
Another important differentiator on the infrastructure dimension is that the Azure stack tallows enterprises planning to leverage their on-premises data centers or intending to host Blockchain applications in their private or hybrid networks to have a uniform experience as Azure cloud.
- Governance model and privacy: Blockchain services on Azure provides the distributed governance model managing participants and policies and the data protection cryptography features to ensure privacy and confidentiality.
Identification of the right use cases to implement Blockchain is the most important factor, and Microsoft Ignite speakers emphasized and demonstrated this aspect relating to their client case studies.
Assets can be categorized as Physical, Contract, Digital representations or Monetary. Typical use case patterns include the visibility and transfer of an Asset that involves Cross Division or Cross Organization workflows and High-assurance audits.
Verticals such as the financial sector, retail & manufacturing, healthcare and government – where there are B2B transactions – demonstrate the need for increased transparency and tracking at different phases of the workflow process. Involvement of multiple parties means they must have visibility to accurate information at any time, forming a good basis to employ blockchain. The use of blockchain applications for these requirements will eliminate third party verifications, reduce fraud and improve execution and settlement times.
Some interesting and impressive use case implementations discussed:
- Webjet-Travel booking solution
- Maersk-Secure and streamline Marine insurance process
- Bank Hapoalim – Bank guarantee process, claims& insurance benefits
- Farming produce supply chains involving the farmer/producer, supplier, distributor and different participants with architecture moved away from proprietary systems to sharable network
- Refrigerated transport for milk through a series of carriers – IOT integration, tracking temperature and humidity
- 3M – Smart label technology with blockchain to counter counterfeit medicines – as the medicines go through different parties, the transaction gets tracked through s/w block chains.
Standards and Methodologies
There is no one-size-fits-all for ledgers, so Azure provides an easy way to standup any type of blockchain ledger standard (for example, Corda, Syscoin, Ethereum, Chain, Hyperledger, and Fabric) with automated deployments in single-node or multi-node ledgers.
COCO is effectively a side chain that syncs commit state or hash back to main chain over time, with a wrapper that can take it from a handful to thousands of transactions. The open source version will be ready by early next year.
Project Lexington is a series of customizable templates used by Microsoft engineering to conduct a POC fast, fail fast, for conducting POC on the blockchain projects.
Process Reengineering for blockchain includes modeling the current state to future state with participants, roles, workflows, data and systems, capture the benefits and build on the change.
The four pillars of blockchain are viewed as: Cryptographically authentic time-tested public/private signature protecting transactions, Shared Participation of as many organizations/partners/competitors empowering the BC, Distributed-Many replicas of blockchain databases, and Ledger-Database Read/Write-once immutable transactions.
The following workflow describes a reference blockchain application architecture view with different layers along with the different services that can come together in a solution:
Source of events: SFTP, MQ, Modern applications(Web/mobile/IoT)
Identity and Key management: Azure AD, Azure Key Vault
Collection: Azure cloud gateways
Investor (Broker): Azure Event Hubs
- Stream processing – Azure Stream Analytics / Azure HD Insight storm
- Business logic apps
- Azure Functions, Smart contracts, IaaS hosted code, Cryptlets
Long term storage:
- Azure blockchain service ledger
- Azure DBs, Azure Storage, Azure Service Bus, Azure HD Insight, Azure SQL DW, Azure Datalake
Presentation Layer: Modern Applications, Power BI, Cortana Analytics, Device interactions, Interfaces with existing Line of business through standard protocols.
The following diagram provides the integration view in a top-down fashion:
Presentation & Solution app layer:
- Azure Blockchain App builder helps build web based or mobile based apps using smart contracts to generate a mobile app, plus the ability to define user roles and manage work flows interacting with the Cryptlets and APIs
- ERPs and other systems can leverage the middleware services to render their UIs
- Docu-sign, Adobe document management systems, Salesforce, MS-Office, Business apps like SAP are well integrated
Middleware/Business logic layer:
- This layer provides a way to integrate with Azure services and third-party services using APIs, Azure functions and Cryptlets
- Security, modularity, and productivity can be accomplished using Cryptlets
- Business logic focused Utility Cryptlets (JVM, .Net, Core, Native): External interfaces, Event
- Contract Cryptlets contain business logic for contracts, and Advanced asynchronous contracts for multi-step, multi-ledger appends
Managed ledger layers:
- This layer manages the data and the infrastructure interactions with distributed ledgers
- Supports different blockchain ledger standards:
Managed ledger services using Azure BCS include Distributed ledger models, ledger persistence, VM, Transactions processing, Node to Node or App, managed consortium membership policies, efficient consensus and governance models
- COCO framework – Distributed ledgers / Hosted VM to provide high performance throughputs
- Other custom and partner frameworks can also be integrated
- MS Azure / Azure stack – Blockchain resource providers in the public and on-premises respectively
Next Steps Using Blockchain
It’s easy to get started on using Azure blockchain service from the Azure management portal by creating a private blockchain consortium network on a single virtual machine. Once there, you can build some smart contracts, author and deploy to the chain using framework deployment on the VM, or demonstrate the use case of securing transactions that exist on the blockchain. Refer to the Lab “Building a permissioned blockchain application” specified in the Reference section to try this solution.
The Azure platform provides a complete infrastructure environment for Ledgers, Network and Trustless-Permission less model environments including hundreds of solution templates that can be launched through the Azure marketplace. Blockchain distributed ledgers and applications can be stood up on an evolved platform like Azure with its built in blockchain service, IaaS, PaaS, Azure middleware, and SaaS/Third party integration through Cryptlets, public cloud, hybrid and support for evolving blockchain standards. This makes Azure Blockchain a reasonable choice for POC or evaluation in the applicable projects.
- Exploring Blockchain business use cases and how Microsoft Azure enables Blockchain solutions: https://myignite.microsoft.com/videos/55074
- Accelerating Blockchain application development on Microsoft Azure https://myignite.microsoft.com/videos/55065
- Microsoft vision for Blockchain https://myignite.microsoft.com/videos/54889
- Key ingredients of a successful digital transformation initiative – A contract management case study https://myignite.microsoft.com/videos/59147
- Building a permissioned Blockchain application https://myignite.microsoft.com/labs/56444
- MS Ignite videos: https://myignite.microsoft.com/videos MS Ignite: https://www.microsoft.com/en-us/ignite/
- MS Ignite: https://www.microsoft.com/en-us/ignite/