Computer Laboratory

Google Scholar Citations

Carlos Molina-Jimenez

I am 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
England
Phone: +44 (0) 1223 76 36 30
email: Carlos.Molina + @ + cl.cam.ac.uk

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.

Completed

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).

Publications

Latest
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.

Software

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.
  • Towards a Design Philosophy for Interoperable Blockchain Systems by Thomas Hardjono et. al, Jul 2017, presents a vision over the future development of blockchain. 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 ambitions and innovations of legalese.com 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.
  • ...

My personal view on smart contracts and blockchains

  1. There are two approaches to implement smart contract enforcers:
    • Centralised: implemented without using blockchains.
    • Decentralised: implemented using blockchains.
  2. Different applications demand different services, thus some of them can be implemented more naturally with either of the two approaches.
  3. 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.
  4. 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.
  5. This idea is discussed in On and Off-Blockchain Enforcement Of Smart Contracts.

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