Blockchain is definitely the new hotness in the software industry and a number of the big players are getting in on the action. Microsoft announced a new product last year that works with Ethereum and other distributed application blockchains: the Coco framework. They still haven’t released anything more than a white paper, despite promising a full open-source release “early 2018”. But is it a good idea?

From parsing everything available from Microsoft, I think it is a good idea but is aimed at a very specific audience and, to me, it hasn’t been communicated well. A lot of the problem is in the branding, which is confusing mainly due to their use of the term “blockchain” and the explicit references to Ethereum. The Ethereum blockchain has a lot of specific associations:

  • Public
  • Immutable
  • Distributed
  • Peer-to-peer
  • Untrusted
  • Decentralised
  • Open

These are the terms that can be used to describe public blockchains like Ethereum, or the Bitcoin network.

Only some of these terms apply to Coco, which is instead focused on distributed ledger systems. These systems, like Corda and Quorum, are more like an evolution or offshoot of distributed databases which offer the option to share data between separate enterprises in a verifiable manner. Richard Gendal Brown has an excellent explanation of this on his blog. To quote:

Distributed ledgers are systems that enable parties who don’t fully trust each other to form and maintain consensus about the existence, status and evolution of a set of shared facts

There are many use cases where large organisations want to work together with some common data but do not want it public, or let untrusted people run transactions with anything. This is what Coco is for: a framework for enabling permissions in a distributed ledger which uses a blockchain for storage. In addition, it can make the assumption, based on the runtime environment that Coco enforces, that secure distributed consensus is not required. This vastly improves efficiency because proof-of-work and the other secure distributed consensus mechanisms used in public blockchains are huge performance bottlenecks. The white paper goes into more detail as to how it achieves these goals.

Note that blockchain is actually the least important aspect; it’s simply the data structure for the systems Coco works with. And the Ethereum references in the documentation are more specifically how the Coco nodes can be modified Ethereum nodes that can run smart contracts with some extensions. There is no bridge between a Coco network and the public Ethereum network.

Some of these misunderstandings may be my expectations getting ahead of me, but I don’t think I’m the only one. They did release another video on Channel 9, where Seth Juarez chats with Mark Russinovich about Coco and this clarified a lot. I’d highly recommend it if you want to find out more about Coco, because the other stuff out there misses a lot of the nitty-gritty.