Simplifying the Coco Whitepaper

What is Coco?

  • Throughput and latency approaching database speeds.
  • Richer, more flexible, business-specific confidentiality models.
  • Network policy management through distributed governance.
  • Support for non-deterministic transactions.
  • Reduced energy consumption.
  • Implements a consistent, distributed, persistent store (such as a key-value store) that is replicated across TEEs — containing both the application (business transaction) ledger and the Coco administrative ledger used for network policy management. While there are logically two ledgers, both are recorded within a single store to maintain relative ordering across all transactions in the network.
  • Provides secure node-to-node and application-to-node communication.
  • Enables arbitrary confidentiality models with easy-to-use primitives.
  • Provides a codified governance model to support arbitrary, distributed policy management.

So What is a Trusted Execution Environment (TTE)?

Coco Consensus Protocol

  • Network of validating nodes (VNs), each of which run the Coco Framework and the integrated blockchain protocol. VNs accept transactions and participate in the network’s consensus algorithm.
  • VNs completely trust other VNs because they can verify their identity
  • Persistent State is encrypted with a symmetric session key — which is also encrypted using an asymmetric threshold cryptosystem. The symmetric session key is itself encrypted and written to the Coco administrative ledger for persistence.

Coco Stack Architecture

  • Coco interface (host) — the host is the interface to which the client and other VNs connect.
  • Coco core (enclave) — the interface between the host and all other functionality within the enclave.
  • Persistent store (enclave) — the single, globally ordered, on-disk representation of the application ledger and the Coco administrative ledger. (There is an in-memory copy for fast access; durability is achieved via a persistent store.)
  • Coco configuration state (enclave) — the Coco state machine implementation that supports creation of the network constitution and all subsequent updates.
  • Blockchain core and adapter (enclave) — the logic to process transactions and execute smart contract code, as well as the glue to integrate the blockchain protocol into the rest of the Coco system.

Types of Users on Coco System

  • Members are the governing bodies of a consortium, with collective control over who can transact on the network and its governance — including network membership, the code that runs in the TEEs, and the definition of network policies.
  • Participants, unlike members, cannot vote and thus have no operational control over who can directly access the network or its governance.
  • Every member and participant has a private/public key pair (PrivKeyMi, PubKeyMi and PrivKeyPi, PubKeyPi, respectively) and is identified in the Coco network with an organization-wide X.509 certificate.
  • End users do not have an identity in the Coco network and cannot transact on the network directly. Instead, they interact with it through the front-end systems of members or participants.

Coco Governance Framework

  • Membership List — List of all approved actors (members and participants) in the network. Only each member’s public key certificate is uploaded into the Coco network.
  • Code Manifest — The specification of all approved code that can run within the Coco network
  • TEE Manifest —The specification of all approved trusted execution environments — hardware or software.
  • VN List — A list of all approved validating nodes in the network.
  • Constitution Changes — Any change to the network constitution, such as additions or removals to the membership or VN lists, must be done through a voting process

Drawbacks/Assumptions/Potential Vulnerabilities

  • Since VNs trust all others VNs, there’s a major assumption that VNs cannot be taken over (or act maliciously) due to that VNs human controller. In the Coco framework, there does exist a possibility that malicious VNs can submit Blockchain state updates.
  • Framework seem to only be Web 2.0 compliant, given that Coco enforces secure application-to-node and node-to-node communication channels using mutually authenticated TLS connections that terminate in the enclave

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store