Computer Laboratory

Google Scholar Citations

Carlos Molina-Jimenez

I am a Senior Research Associate at the Department of Computer Science and Technology (the Computer Laboratory) of University of Cambridge. I am a member of the Networks and Operating Systems group NetOS.

I joined the Computer Lab in 2014 after completing my PhD in Computing Science and working at the School of Computing Science of University of Newcastle.

Contact Details

Dr. Carlos Molina-Jimenez
University of Cambridge
Computer Laboratory
JJ Thomson Avenue
William Gates Building
Cambridge CB3 0FD
Phone: +44 (0) 1223 76 36 30
email: Carlos.Molina + @ +

Where and how to find me

My desk is in office FN10 of the William Gates Building where the Computer Laboratory is located.
If you are planing to meet me for the first time you might like to clik here to see pics of me.
I enjoy talking to people to share research ideas.

Currently, I would like to hear from people interested in collaborating with me, say to bid for project grants and write papers and software on blockchain and smart contracts. Just email me.

General Research Interests

My general topic is Distributed Systems and Networks. I have been focused on contract regulated applications and related topics and technologies since the early 2000s:

  • Smart Contracts and Blockchains
  • Service Level Agreements (SLAs) and Quality of Service (QoS)
  • Business to Business (B2B) Processes
  • Cloud Computing and Virtualisation

Related upcoming events

  • ...

Past related events

Recent Research Projects

In progress

TESCON Tools for Enforcement of Smart CONtracts is an EPSRC Knowledge Transfer Fellowship granted to work with HAT Community Foundation As explained in details in the TESCON page, the aim is to align and integrate three software tools for the enforcement of smart contracts that I developed in previous EPSRC projects, with a leading blockchain technology.


UMOBILE The Universal, Mobile-centric and Opportunistic Communications Architecture was an EU project that that completed in Apr 2018. The overall aim was the development of a communication infrastructure that could support the deployment of services that are expected to comply with associated contractual QoS requirements, regardless of potential network impairments. The effort was based on the integration of Information Centric Networking (ICN), Delay Tolerant Networking (DTN) and light-weight virtualisation technology. An overview of the oucomes of the projects can be found in Connecting the Edges: A Universal, Mobile-Centric, and Opportunistic Communications Architecture, (IEEE Comm Magazine, V.5, Issue 2, Feb 2018).


Complete list

The complete list of my publications is avaliable from Carlos Molina's Google Scholar Citations. The following eight are representative of the topics that I have covered.


I have contributed to several Git repositories, see Carlos-Molina's Git repositories. Currently, I am actively working on the TECOmate and contraval repos.

Programming languages

Though, we have used Java and Python in our implementations, I'm interested in Functional Programming Languages, including OCaml.

Smart Contracts

I have been studying smart contracts since the early 2000s, firstly at Newcastle and currently, at Cambridge. I have co-authered over 25 papers on the topic and participated in the implementation of tools for run--time enforcement of smart contracts.

You can find the list of my publications from Google Scholar Citations. Here is a link to my Newcastle Home Page that summarises my research achievements on the topic.

Notice that in our publications, we used the term executable contracts instead of smart contracts as this term was not widely spread at that time. Arguably, the term executable contract is not as fancy and catchy as smart contract, yet in my view, it conveys the idea of more accurately; in particular if one admits that there is nothing smart or intelligent in this technology, it is just conventional computer code. However, since the term smart contract is now widely used, I am confortable with the use of both terms as synonymous.

Definition: Intituitively, a smart contract is (at least under my personal definition) the digital version of a conventional contract, written in computer code that can be executed to enforce the clauses stipulated in the conventional contract, programmatically at run-time.

Brief historic backgroud

The idea behind smart contracts can be traced back several decades. It has been the subject of interests to several researchers.

Smart contracts and blockchains

Blockchain and smart contracts are closely related and can complement each other but they are independent concepts (technologies). One can implement smart contracts without blockchain and use blockchain for implementing applications that do not involve smart contracts.

To appreciate the relationship of the two technologies, it helps to think of their roles in the software stack. Smart contracts operate at the application level while blockchains operate at middleware level.

Definition of smart contracts:

We are still debating what a smart contract is. In this web page I follow the definition stated in my research papers, intuitively and technically:

A smart contract is an event-condition-action stateful programme executed between two or more parties that are reluctant to trust each other unguardedly.

  • The parties are the contracting parties, for example, a buyer and a seller that have agreed to trade tangible goods or services.

  • The state models the development (from initiation to completion) of a shared activity such as the supply of physical goods or cloud services. The state is used for modelling what rights, obligations and prohibitions have been fullfilled or violated by the parties, and what are pending.

  • The actions are operations that the parties are expected to execute under strict time and other constraints to comply with commitments. The execution of an action (for example, payment successfully submitted) alters the current state.

  • The conditions dictate when the actions are to be executed and by whom.

  • The events (for example, payment submission) are triggered by the parties and represent intentions to execute actions to progress the current state of the shared activity.

Finite State Machine (FSM): smart contracts can be regarded as FSMs. In fact, simple contracts can be formally modelled as FSMs and reasoned about (for example, to uncover potential logical inconsistencies of their clauses) with the assistance of mechanical software tools like model-checkers.

Definition of blockchain:

A blockchain is a piece of middleware that offers services that can help in the implementation of decentralised applications shared between parties that do not necessarily trust each other. Examples, of such applications are smart contracts and other applications. Key services offered by blockchain are consensus and logs that are permanent, non-repudiable and verifiable. Very simplistic, yet, I think that the definition captures the essence. The keyword is decentralised, not to be confused or taken as synonymous with distributed.

Some references and web pages that I like

There is a large list of books, articles and webpages about blockchains and smart contracts. The best I have come across so far are:

  • The book Mastering Bitcoin by Andreas M. Antonopoulos, O'Reilly, 2nd Edition, 2017, is so far the most authoritive reference on the topic. Though it is focused on Bitcoin, the author covers all the key blockchain concepts at a technical (algorithmic) level.

  • Mastering Ethereum: building smart contracts and Dapps by Andreas M. Antonopoulos and Dr. Gavin Wood, O'Reilly, Dec, 2018, has been released. A book written by experts for software engineers and, in my view, the most comprehensive discussion of Ethereum currently available.

  • Towards a Design Philosophy for Interoperable Blockchain Systems by Thomas Hardjono et. al, Jul 2017, presents a vision over the future development of blockchains. They draw a similarity between blockchains and the Internet. They speculate that in the future, we will have islands of blockchain systems interconnected by gateways.

  • The Log: What every software engineer should know about real-time data's unifying abstraction by Jay Kreps December 16, 2013, is a web page to visit for those interested in understanding decentralised ledgers. Jay explains how the log, a very simple storage abstraction, is a fundamental building block of distributed applications, including the indelible decentralised ledgers that underpin blockchains.

  • Why Many Smart Contract Use Cases Are Simply Impossible by Gideon Greenspan 18 Apr, 2016, is one of the most illuminating discussions that explains why smart contracts need oracles to interact with off-blockchain components. The discussion makes one realise of the technical problems that software engineers and researchers need to solve to build practical blockchain systems.

  • The Town Crier: An Authenticated Data Feed for Smart Contracts paper by Fan Zhang et. al. suggests a hardware-based oracle (TC) to feed authenticated data to on-blockchain smart contracts. They rely on the trust model that the Intel's SGX (Sotware Guard Extension) provides. The functionality of the TC and of the off-blockchain smart contract discussed in Implementation of Smart Contracts Using Hybrid Architectures with On- and Off-Blockchain Components are similar in the sense that both operate as bridges between the on-blockchain and off-blockchain worlds. However TC focuses on trust while the off-blockchain smart contract focuses on enforcement of contractual rights, obligation and prohibitions.

  • The indelible append-only data model that underpis blockchains conflicts with the right to request deletion of personal data granted by the EU General Data Protection Regulation (GDPR) of May 2018. Luis-Daniel Ibáñez and his team from Uni of Southampton explain the point: On Blockchains and the General Data Protection Regulation. I think that our research on hybrid architectures that includes on-blockchain and off-blockchain smart contracts can help to address this issue.

  • TTP + trusted hardware: Trusted Third Parties (TTP) enabled with trusted hardware can be used to deploy off-chain only smart contracts (see Challenges for Combining Smart Contracts with Trusted Computing). If blochains are not needed, deploy the contract on a TTP and use Intel SGX, ARM TrustZone or a similar technology to protect the integrity of the contract code and sensitive data from the TTP.

  • The ambitions and innovations of are inspiring. Their aim is to free lawyers from mechanical tasks that do not demand human intellect. They are aggregating technologies (for example, natural language processing and blockchain) from several disciplines to automate the drawing up, deployment and enforcement of business contracts.

  • The technology that TODAQ are developing is innovative. This is decentralisation at its best. Look for instance at their concept of proof of ownership of a digital asset in their technical paper.

  • ...

My personal view on smart contracts and blockchains

  1. The general topic is decentralisation: a computational model where two or more participants interact with each other in a peer-to-peer fashion, that is, without a mediating party like a server.

    Smart contracts and blockchains are only two of the lastest technologies that have emerged to support decentralisation.

  2. The relevance of decentralisation at computational level is that, if available, it can be used for building decentralised versions of several current systems that are needlessly centralised. The government and banking systems are two notorious examples of such systems.

  3. There are two approaches to implement smart contract enforcers:
    • Centralised: implemented without using blockchains.
    • Decentralised: implemented using blockchains.
  4. Different applications demand different services, thus some of them can be implemented more naturally with either of the two approaches.

  5. Yet there are applications that none of the approaches can handled individually and thus require a hybrid approach where some contractual operations are enforced by centralised enforcers while others are enforced by decentralised enforcers.

  6. My bet is that in the near future we will be running applications that will demand support from several centralised and decentralised smart contracts enforcers that will collaborate with each other.
    This is a new computational paradigm that we will need to master: I will call it on and off blockchain systems. Yes, blockchains and their smart contracts will need to interoperate at some point.

  7. This idea is discussed in On and Off-Blockchain Enforcement Of Smart Contracts.

... This page is always under construction!!!