Computer Laboratory

Google Scholar Citations

Carlos Molina-Jimenez

I'm a senior research associate at the Department of Computer Science and Technology (Laboratory of Univerity) 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
email: Carlos.Molina + @ +

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
  • Service Level Agreements (SLAs) and Quality of Service (QoS)
  • Business to Business (B2B) Processes
  • Cloud Computing and Virtualisation

Related upcoming events

Research Projects

I am currently working in the EU UMOBILE (Universal, Mobile-centric and Opportunistic Communications Architecture) project. The overall aim is the development of a communication infrastructure that can support the deployment of services that are expected to comply with associated contractual QoS requirements, regardless of potential network impairments. The effort is based on the integration of Information Centric Networking (ICN), Delay Tolerant Networking (DTN) and light-weight virtualisation technology.


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 repos Carlos-Molina's Git repositories

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.

Observe 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 catchy as smart contract, yet it conveys the idea of more accurately. 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) a conventional contract that can be converted into executable code, executed and enforced programmatically at run-time.

Brief historic backgroud

The idea behind smart contracts can be traced back 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 distributed 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, .... I will elaborate on this soon...

Some references and web pages that I like

There is a large list of books, articles and webpages about blockchain and smart contracts. From my personal view, some of 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 the key blockchain concepts at a technical (algorithmic) level.
  • The Tangle by Serguei Popov, Oct 2017, discusses IOTA-- a cryptocurrency for the Internet of Things. The tangle suggests the use of a Direct Acyclic Graph (DAG) for building a distributed ledger as an alternative to the blockchain model used in Bitcoin. It is aimed at IoT applications running on resource constrained devices and is free from trasaction fees (a departure from Bitcoin's approach). IOTA is not as mature as Bitcoin but the paper is worth reading.
  • 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.
  • ...

... This page is under construction!!!