Introduction To Microsoft's Coco Framework For Blockchain Applications - Part One

Nowadays, we all are going through the boom of Blockchain technology. There is a lot of information coming our way, regarding implementation and adoption of this technology. So far, we are aware of blockchain technology, its implementation for public networks like bitcoin, and platforms for creating private blockchain network like Azure Ethereum Consortium Blockchain. If not, please go through my articles on Blockchain and Ethereum Consortium Blockchain Network.

Public blockchain network

  • Members (nodes) are anonymous and have access to the ledger.
  • They can participate to achieve consensus through POW.

Consortium blockchain network

  • Members are not anonymous, they are known to the network.
  • Node operations are controlled by EVM (in case of Ethereum consortium blockchain)

Microsoft has come up with Coco (Confidential consortium) Framework to develop high-scale and confidential blockchain networks, by revisiting and combining benefits of both, public and consortium networks. It will be available on GitHub in 2018. The idea of COCO framework is to create trusted network of physical nodes, controlling and guaranteeing consensus output and much more. Trusted execution environments (TEEs) make it happen.

COCO system overview

COCO is a foundation for all blockchain protocols. It provides base components like persistent ledger, node to node and application to node secure communications etc. to other blockchain protocols.

Coco system consists of validating nodes termed as VNs. Each VN runs Coco framework and particular blockchain protocol. Every VN can verify the identity of other VN hence they are trusted. As per Coco framework white paper, VN can be further divided into logical components and can be categories into host or enclave.


Coco interface

Other VNs and clients will connect to VN with this transport layer interface. Through interface, OS and other services interact with the enclave.

Coco core

It is just an interface between the host and the enclave.

Coco configuration state

It is responsible for creation and modification of the network constitution (rules of network regarding the transaction, smart contracts etc.).

Blockchain core and adapter

Coco relies on blockchain protocols for executing transaction codes as well as smart contracts code.

Persistent store

There are two type ledgers in Coco system; the application ledger and the administrative ledger. For durability of ledgers, data is maintained in a persistent store.

Actors in network 

There are two types of actors in Coco network; Member and Participants (functions illustrated in fig). Member type user has some additional functions over Participant type user. Actors from specific organization are identified by organization-wide X.509 certificate, to avoid cross network access.

All actors have a pair of Private and Public key paisr associated with them. Actors will initiate transactions in network using their private key. 

This is just an introduction to Coco framework (from my understanding). In article Introduction To Microsoft's Coco Framework For Blockchain Applications - Part Two, we will discuss all components of Coco Framework in detail.

Similar Articles