On July 20, 2017, Microsoft introduced Enterprise Smart Contracts, a new layer to Project Bletchley, the company's architectural approach to building an enterprise consortium blockchain ecosystem on the Azure platform.
In the announcement, Marley Gray, Principle Program Manager of Azure Blockchain Engineering, expressed that the first inceptions of executable distributed code contracts (EDCCs) fail to address enterprise level concerns of privacy, scale, and performance management capabilities. Enterprise Smart Contracts can solve this issue because they are capable of delivering enterprise ready solutions by addressing what Gray calls a “separation of concerns." Gray explains that it may be impractical to require every single node or even a subset of them to be resource intensive machines. He said, “Without this separation of concerns the business is then limited by the power of the lowest performing node in the network.” Enterprise Smart Contracts are comprised of six basic components:
- Schemas: Data sets that apply to elements of contract execution.
- Counterparties: Authenticated identities of those who are agreeing to the terms of the contract.
- Logic: Rules defined in the schemas that have the consensus of counterparties and observers.
- External Sources: the input of outside factors that are sometimes required to prompt a contract to execute.
- Ledger: The immutable record of contract activity, as defined by the schema, that is stored on a blockchain.
- Contract Binding: The composition of the above elements. The binding is created during counterparty negotiations for contract consensus and locked in when they sign. Once signed, the contract begins to execute until fulfillment.
Gray identifies the 'cloud' as a perfect manner in which to implement Enterprise Smart Contracts alongside blockchain-based ledger systems because "blockchains are comprised of distributed nodes that maintain the database, a globally-distributed, highly-available public cloud provides a great companion platform for services supporting these networks."
The cloud is capable of providing a massively scaled shared logic execution platform to Enterprise Smart Contracts. The actual cost of running this network of protocols on the cloud can be shared among counterparties through what Gray calls "splitting the check," which saves parties the trouble of having to discern whose datacenter executed the contract logic.
The varying cases for long-standing business logic, or a new implementation of it, often require specialized resources to deliver results, such as machines with faster processors and more memory. It would be impractical for such traits to exist on every machine acting as a node. While public facing EDCCs require transactions to execute on every computer on the network in order to maintain a trustless exchange of data, such is not the case with enterprise applications. Separation of concerns addresses this conundrum by utilizing established counterparties to perform execution of logic code "off-chain." According to Gray:
"This code is agreed to by the counterparties, is strongly versioned and can be executed in shared infrastructure that provides confidentiality, discrete trust and performance as well as the proofs needed to satisfy all counterparties as to the integrity of the logic's output."
If data is encrypted while EDCC logic operates on-chain, every node will need to be capable of decrypting the data to operate computations against it. Using an Enterprise Smart Contract can preserve the privacy of shared data and logic between counterparties.
Rather than force counterparties to generate internal structures, Microsoft Azure lends itself as a platform to provide the tools needed to write Enterprise Smart Contracts. A shared platform like Azure can perform difficult tasks like key management, building open APIs, cryptographic proofs, and abstracted integration across platforms. The platform also enables blockchain interoperability, extensible data services plugins, and common enterprise development environments such as .NET and Java.
Going a step further, Microsoft developed The Enterprise Smart Contract Framework on the Azure Stack to provide to enterprises the tools to build on the platform.
The Enterprise Smart Contract Framework is, in turn, comprised of four major components:
- Secrets, Control and Configuration: Authorizes access to secrets which are stored in the Azure Key Vault and applied to various entities. They are authenticated via Azure Archive Directory and manage Enterprise Smart Contract bindings.
- Runtime Environment Services: Offers attested execution of Cryptlets, which enable secure interoperation and communication between Microsoft Azure and other technologies. Developers can write Cryptlets in any chosen language, regardless of the underlying code. Cryptlets run in attested execution environments and securely provide secrets to them, automatically generating cryptographic proofs.
- Transaction Builder and Router: Assembles and formats Cryptlet Messages into formats specific to a blockchain. It then routes transactions to the appropriate blockchain.
- API: Provides exposure of a secure, authenticated message-based API to send and receive messages from Enterprise Smart Contracts on a massive scale.
Microsoft provides a graphic of the framework's interaction:
Enterprise Smart Contracts offer businesses a means to interoperate with differing blockchain protocols while accessing enterprise level efficiency and maintaining privacy.
More information on the interplay between these systems is available in the technical whitepaper.