Enterprise Smart Contracts: resolving the truth for blockchains

Közzétéve: október 30, 2017

Principal Program Manager, Azure Blockchain Engineering

This week, the Azure Blockchain team and I will be in Cancun for DevCon3. As we partner with customers on more mature scenarios and applications, our product roadmap continues to evolve, but the fundamental tenets of the strategy outlined at DevCon2 have remained unchanged:

  1. Build an open blockchain cloud platform that enables developers to rapidly and consistently deploy blockchain network infrastructure for all major protocols. From Ethereum, the first and still most popular offering in our Marketplace, to R3 Corda, Chain, Quorum and Hyperledger Fabric, Azure strives to be the best and most welcoming place for the blockchain ecosystem.
  2. Advance the enterprise capabilities of blockchain to improve the security, privacy, performance and operational governance of what we now call consortium, or private blockchain networks. Together with partners like R3 Corda, Intel, J.P. Morgan Chase and Consensys, we are collaborating to achieve this goal through the Coco Framework and through our participation in consortiums like the Enterprise Ethereum Alliance.
  3. Introduce an enterprise grade, 3-tiered application platform that delivers the security, productivity, code re-use, and performance required for enterprise production deployments. Enterprise Smart Contracts is inspired by existing 3-tiered enterprise architectures, but designed from the ground up to be blockchain native featuring secure multi-party serverless compute.
  4. Deliver tools to empower customers get started on their own and experiment rapidly. The Azure Marketplace has become an open hub for developers to not only to access tools and resources to accelerate the blockchain revolution, but also to contribute by publishing their own templates. Read about the most recent additions to the Marketplace on the Azure blog.
  5. Design for extensibility by integrating a diverse set of non-blockchain capabilities to enable the development of an enterprise application including hosting and exposing scalable APIs, the ability to ingest data from apps, systems, and devices at scale. Utilize machine learning and big data technologies for data analysis to next generation services like cognitive services and bots.

At Microsoft our objective is to help companies thrive in a new era of secure multi-party computation by delivering open, scalable platforms and services that any company, including ledger startups, retailers, health providers, and global banks, can use to improve shared business processes. Creating an architecture that allows developers to more productively build scalable applications is a core part of delivering on that objective.

We have been hard at work incubating our blockchain stack with customers and are looking to broaden the feedback loop this week at DevCon3. Given our history with the event, and the importance of Ethereum and this community, we're excited to share that attendees will be able test drive Enterprise Smart Contracts with our dev team at the Microsoft booth.

So, what are Enterprise Smart Contracts and why are they important? To answer this, let’s dive into a fundamental challenge with blockchain technology today – resolving the truth.

Resolving the truth

Blockchain is often referred to as a shared source of truth. A ledger that contains the immutable, cryptographically secure record of transactions that take place between untrusted or semi-trusted individuals, organizations, systems or devices. Establishing this shared truth is fundamental to all distributed ledger technologies. The first implementations of blockchain were designed for the simple transfer of ownership of assets between parties, with both assets and parties defined on the same network.

So, the blockchain represents the collective historical and present truth for all transactions and participants in those transactions but scoped to one particular network.

This works great for cryptocurrencies, asset registers and exchanges, but breaks down when outside variables and properties that are more dynamic, such as stock prices, IoT sensor readings, etc., get introduced when computing this shared truth. There are several approaches that have emerged to begin enabling these interactions, but these are inconsistent and often not appropriate for enterprise organizations.

We believe a collaborative compute environment for resolving the truth and recording it on any blockchain network, or multiple networks, at the same time is an important next step in blockchain technology. Smart contracts need a place to store logic and perform calculations necessary to determine the result of a transaction. There is also a need to persist the result of that logic to serve as the record of truth in an underlying ledger or ledgers. How this truth is resolved is immensely important to the scalability, modularity, and confidentiality of blockchain systems. Our investment in Enterprise Smart Contracts reflects how we believe such an environment can be built for the enterprise, and we are excited to get developer feedback and learnings from your use cases.

Achieving Trust - 2 step tango

In previous posts, we have explored Cryptlets, off-chain code components for the cloud that are blockchain native and designed for new multi-party workloads. Working with customers, we've integrated Cryptlets with relevant Azure infrastructure and services to solve some of the most vexing architectural problems involved with developing blockchain solutions and smart contracts. We believe Enterprise Smart Contracts, a combination Cryptlets and Azure infrastructure, will provide developers with these initial platform capabilities:

  • Confidential, secure, and attested computation of your code that produces the truth and the cryptographic proofs to how it was determined.
  • Open and federated identity platform for authentication and authorization enabling blockchains to participate in things like single sign on, composite, and self-sovereign identities.
  • Key management allowing you to bring your own keys and secrets platform for integration into the identity system.
  • Hyper-scale cloud platform that dynamically allocates resources, allowing your code, a Cryptlet, to securely execute and perform cryptographic operations, then persist them to one or more blockchain networks simultaneously.
  • Respond to events on the blockchain and on other systems to combine event sources as inputs to resolving the truth and recording it along with the cryptographic proofs for these inputs.

When you combine these platform capabilities together, consortium members can participate in a secure, scalable, off-chain compute runtime that addresses important functional and non-functional requirements for the enterprise.

Enabling the enterprise

With the trusted, shared runtime that Enterprise Smart Contracts gives us, we can now unlock new scenarios and capabilities that are critical to enterprise adoption, but not native to any single ledger technology:

  • Privacy An Enterprise Smart Contract can confidentially resolve a shared truth between parties, encrypt and write the results to the blockchain, as well as limit the decryption of the results to only those parties involved in the contract. This allows a new privacy model that is agnostic of the underlying blockchain and introduces cipher diversity for future proofing.
  • Multi-chain, multi-network support A single transaction in an Enterprise Smart Contract supports the ability to both write its results to a private blockchain, and record a public record on a public network like Ethereum.
  • X-chain workflow integrity Using an Enterprise Smart Contract to trade and move assets across multiple blockchains of one or more blockchain technology type. You can lock, create, transfer, and burn assets across blockchains with transactional integrity.
  • Ledger abstraction Perform integration across blockchain types using Enterprise Smart Contracts as a router and gateway across a mixture of networks. Performing integration in the middle tier allows for extensive integration logic between networks, and increases productivity by removing the need for bespoke code to facilitate direct blockchain to blockchain integrations.
  • Application integration Create and participate in distributed transactions enlisting your blockchain application into processes that involve ERP, CRM, Payment, and other systems. With a single in-bound transaction request, perform multi-step single or multi-chain operations within the same transaction context and return a single result. A full transaction context group contains each transaction’s proof and receipt to provide a composite receipt and proof audit report.
  • Blockchain “oracles” – Create “oracles” that serve as agents to retrieve and provide attested data inputs to public blockchain applications.
  • Code re-use Create reusable libraries for common integrations to payment, ERP, banking, trading, EDI, and IoT systems for your enterprise systems, or as an ISV provider in an Enterprise Smart Contract Marketplace.

We are very excited to be at DevCon3 to share this important component of our blockchain strategy. Stop by our booth to say hello. We look forward to getting your feedback and share learnings.