Blockchain on MSDN Magazine

MVP

The year 2018 has seen a lot of attention on blockchain technologies. As a Microsoft RD (Regional Director) and MVP (Most Valuable Professional), I have covered many times how Microsoft is playing a leader role in adoption of blockchain technology in the enterprise space: http://blogchain.space/entries/blockchain/microsoft-s-leadership-in-enterprise-blockchain

Important coverage has been given also by the MSDN Magazine (https://msdn.microsoft.com/magazine), the most authoritative voice of the Microsoft developer community. Along with my public speaking at international events, such as Microsoft Tech Days Switzerland and Blockchain & Bitcoin Conference France, I focused my attention on describing the evolution of blockchain its first form (Bitcoin: public only, proof of work as consensus mechanism) to a second generation (multiple technologies, including the popular Ethereum and Hyperledger, support for public, consortium and private typologies, and the addition of a programmable logic tier in the shape of smart contracts).

 

The Blockchain Evolution

The Bitcoin blockchain was designed for transactions of the bitcoin crypto currency only. It has all the features of a decentralized and distributed digital ledger, but it lacks smart contracts, the business logic tier. This limitation makes it unappealing to businesses for applications besides crypto currency exchange. The advent of Ethereum and Hyperledger and the introduction of smart contracts have opened blockchain to the enterprise world, with the possibility to set rules for execution of transactions. Transactions that, now, are no longer confined to crypto currency only, but can happen for any digital asset that has a value. This opens the possibility for scenarios in supply chain, digital identity and asset management to benefit of an immutable and encrypted data source, with built-in cybersecurity provided by its distributed nature and consensus of all members. Also, “Blockchain 2.0” type of ledgers introduced the possibility to run a blockchain network in a private or consortium mode, granting that level of governance (membership, data distribution, content filtering) that a public blockchain like Bitcoin does not offer. Governance, as well as performance of the network, is a key quality for enterprises to adopt any technology platform. Still, there is a limitation in smart contracts in the capability to access information outside of a block in the chain. Pass me a metaphor, smart contracts are similar to old-fashioned stored procedures in a database, which can access data inside the database itself, but have no visibility on external sources (I know this is different nowadays in modern databases like SQL Server, but you get the idea). The real word, though, is made of data in multiple sources, including CRM or ERP systems, web services, etc. There is no chance we can put, say, a CRM system, a monolith application, into any blockchain network. But we still may want to access its information, connect on-chain data with off-chain systems. Think of personal information (you may not want to store sensitive data on a blockchain for its immutable nature – GDPR compliance), contact / vendor / supplier or product details, etc. Blockchain represents the audit trail of your transactions, of any nature, but there is no need to store the piece of information exchanged on the blockchain itself. A link to it, in the form of an immutable hash, would suffice. This is where Microsoft comes as a pioneer, or innovator, in this field, by introducing the missing connection ring between on-chain and off-chain data, which goes under the name of “cryptlet” (although this may not be the name that hits the market) and “confidential computing”. Overall, Blockchain as a Service in Azure provides that level of integration among multiple Azure services that you cannot find in any other cloud offering. Azure AD, Key Value, Service Bus, App Service, SQL Server are all part of an ecosystem of services connected among each other in a secure way to guarantee the integrity of the blockchain. Any blockchain, any digital ledger. This is part of a larger program called “Azure Confidential Computing” (ACC). ACC brings encryption of data in use, running applications and their data in a trusted execution environment (TTE), or “enclave”, which decrypt data in real time at hardware level (Intel GSX) or at Windows Hyper-visor level. Your data is protected at rest, in transit and now, also when in use, in memory. This is what makes Blockchain 3.0 attractive to businesses. No need to learn a new network topology or build application on a different stack. Stick to Azure, leverage to the resources you already know. On this promise, Azure Blockchain Workbench abstracts the underline blockchain network (currently, as ABC Workbench is in public preview, it runs on Ethereum only, but the roadmap is to enable any other digital ledger). Blockchain Workbench provisions the necessary infrastructure for you, so you can focus on building your smart contracts, on creating your business logic, whilst the Azure cloud will take care of the necessary computing, storage and networking resources necessary to run your application on a blockchain.

 

Azure Blockchain

What is Microsoft doing in this fast moving space? In line with my previous article about Microsoft positioning itself as a leader in enterprise blockchain adoption, I am observing Microsoft advancing the concept of blockchain technology as a cloud service in Azure. Blockchain technology, to be successful in the enterprise space, requires a reliable and secure infrastructure that can be trusted by all parties accessing the blockchain ledger. Through Azure and its intelligent cloud services, Microsoft is at the forefront of the practical development of blockchain technology. ARM templates in Azure make deployment of blockchains quick and easy. Tools like Azure Blockchain Workbench, also, make it much easier to enable users to create end-to-end blockchain applications leveraging the best of Azure. Currently, Blockchain Workbench is really the fastest way to get started with blockchain on Azure and orchestrates services such as Azure Active Directory, Azure Key Vault, Azure SQLDB, Application Insights, Azure Functions and Service Bus around a pre-configured blockchain network and into a reference architecture that can be used to build a blockchain-based application. Although Blockchain Workbench is still positioned as an “execution environment”, rather than a “development environment” for smart contracts, its roadmap of possible integration with Visual Studio and the entire SDLC pipeline, makes it attractive to developers who want to focus on coding the inner logic of a blockchain application, and not spend days on configuring services and networks.

 

MSDN Magazine Articles

The following articles about blockchain, written by Jonathan Waldman and I and published on MSDN Magazine, may help you getting up to speed with blockchain and specifically the Azure offering.

 

Blockchain Fundamentals

By Jonathan Waldman | March 2018

https://msdn.microsoft.com/en-us/magazine/mt845650

In this article, Jonathan shows how to construct a public blockchain that is composed of cryptographically linked blocks, each of which contains its own hash chain of cryptographically linked transactions, on a decentralized peer-to-peer network of nodes. The article covers the basics of blockchain technologies, trying not to focus on any single implementation but instead concentrating on some of the more typical technical features they all share.

 

Introducing Azure Blockchain Workbench

By Stefano Tempesta | June 2018

https://msdn.microsoft.com/en-us/magazine/mt846726

Azure Blockchain Workbench (aka.ms/abcworkbench) is the latest step in Microsoft’s journey to enable customers to adopt blockchain technologies and get started with Azure Blockchain. To provide context, Azure Blockchain is a collection of Azure services and capabilities designed to help enterprises create and deploy a new class of applications for sharing business processes and data with multiple, semi-trusted organizations. With Azure Blockchain Workbench, the heavy lifting is done for them, so they can focus less on scaffolding and more on logic and smart contracts.

 

Decentralized Applications with Azure Blockchain as a Service

By Stefano Tempesta | July 2018 | Get the source code (https://bit.ly/2INgNEP)

https://msdn.microsoft.com/en-us/magazine/mt847188

This article introduces Blockchain as a Service (BaaS) in Microsoft Azure, showing how it can be used to build a secured data structure and create a distributed transactional digital ledger. Source code of a smart contract implemented in Solidity language for Ethereum is also provided.

 

Blockchain Fundamentals: Diving into Transaction Hash Chains

By Jonathan Waldman | August 2018

https://msdn.microsoft.com/en-us/magazine/mt829707

Jonathan explors in greater detail some of the topics introduced in his previous article. Together, the two articles cover most of the fundamental concepts you must truly grasp to under­stand how blockchains work. After reading both, you should understand blockchain’s decentralized, distributed network architecture; SHA-256 hashing; PKC and ECDSA basics; how nodes construct transactions on hash chains and how digital signatures authorize the transfer of digital-asset ownership; how transactions in the transaction pool await selection and verification before getting confirmed into a block; how specialized nodes employ a particular consensus algorithm (such as “miners” using proof-of-work or “forgers” using proof-of-stake) to generate a block; and how nodes on the network add generated blocks to the longest chain.

 

Architect Blockchain Applications as Microservices

By Stefano Tempesta | September 2018

https://msdn.microsoft.com/en-us/magazine/mt829754

Microservices and blockchain smart contracts have a lot in common. They’re both expected to run in isolation (on-chain) and communicate with the outside (off-chain) via a message-based channel. They should both be small in size, developed to run auto­nomously and independently, and perform better when they’re deployed on a decentralized network. This article presents design principles, artifacts and code samples for building blockchain applications using a microservice architecture style and deploying them on the Microsoft Azure Blockchain platform.

 

 

0 Replies