Microsoft wants to make blockchain networks enterprise-ready with its new Coco Framework
Interest in blockchains is at an all-time high, but there are still plenty of technical issues to solve, especially for enterprises that want to adopt this technology for smart contracts and other use cases. For them, issues like throughput, latency, governance and confidentiality are still major stumbling blocks for using blockchains. With its new Coco Framework, Microsoft wants to solve these issues and make blockchains more suitable for the enterprise.
In an interview earlier this week, Microsoft’s CTO for Azure (and occasional novelist) Mark Russinovich told me the company is seeing a lot of interest in blockchain technology among its users. They like the general idea of a distributed ledger, but a system that can only handle a handful of transactions a second doesn’t work for them — what they want is a technology that can handle a thousand or more transactions per second.
The Coco Framework solves these fundamental issues with blockchains by introducing a trusted execution environment (TEE). The basic idea here is that you have a trusted box on which you can trust to put your blockchain code. That trust is established through tools like Intel’s Software Guard Extensions or Windows’ Virtual Secure Mode — and because it’s an open framework, it can also support other TEEs as they become available. With these TEEs you can then build a network of trusted enclaves that all agree on the ledger and Coco code they are running (it’s a concept Intel and others have also experimented with in the past).
Once you have these trusted enclaves, all the other pieces fall into place. Because you can trust the updates to the ledger, you don’t need to perform any proof of work, which greatly increases the transaction speed. In a typical ledger, that would take seconds or even minutes. But with the enclaves, that’s not an issue, and Microsoft says Coco and Ethereum can handle up to 1,600 transactions per second in its prototype setup. Thanks to this, the blockchain network — when combined with a protocol like Paxos for ensuring consistency — becomes a usable database.
Enterprises also want to ensure that one of their suppliers can’t see the orders you placed with another supplier. That’s a hard problem to solve when your ledger is public. Coco, however, adds a confidentiality layer on top of a ledger like Ethereum (or any other ledger, because the framework is ledger-agnostic). Enabling this only took some minor addition to the Ethereum protocol in Microsoft’s prototype.
Another feature Coco enables is governance. To explain this, Russinovich used the example of a bank consortium that wants to use a blockchain network. Who gets to add another bank to this network? The Coco governance system allows the members of the consortium to set up rules for voting on decisions like this.
What’s important here is that the Coco Framework will be compatible with any ledger protocol and can run virtually anywhere — in the cloud or on premises, and on any operating system and hypervisor that supports a compatible trusted environment. R3 Corda, the Intel-incubated Hyperledger Sawtooth and J.P. Morgan Quorum will integrate their distributed ledgers with Coco.
“We are thrilled to work with Microsoft to bring blockchain to the enterprise,” said Rick Echevarria, vice president, Software and Services Group and General Manager, Platforms Security Division at Intel, in today’s announcement. “Our mutual customers are excited by the potential of blockchain. Intel is committed to accelerating the value of blockchains powered by Azure on Intel hardware, by improving the scalability, privacy and security of the solutions based on our technologies.”
Don’t get too excited yet, though. It’ll be early 2018 before Microsoft will open source the code for Coco. Russinovich tells me the team is still hardening the code and getting it ready for open sourcing. The company is making a technical whitepaper and demonstrations available today, though.