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.
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:
- Cybersecurity
- Smart Contracts and Blockchains
- Service Level Agreements (SLAs) and Quality of Service (QoS)
- Business to Business (B2B) Processes
- Cloud Computing and Virtualisation
- Fair exchange protocols
Related upcoming events
- ...
Past related events
- The
4th Workshop on Trusted Smart Contracts (WTSC20) took
place in
Shangri-La Tanjung
Aru Resort & Spa Kota Kinabalu, Sabah, Malaysia on the 14th of February 2020.
The papers accepted are of high quality and are available at
Proc. FC'20.
- The 2nd International Workshop on Future Perspective of Decentralized Applications (FPDAPP 2019) took place in Gottingen, Germany (Aug 26--30, 2019). High quality papers were submitted and carefully reviewed by the PC. I have been reported that, in addition to the workshop, the attendants had a good opportunity to see many beautiful place in Göttingen. Big thanks to Andrea, Claudio and Massimiliano (the chairs) and PC members.
- The 3rd Workshop on Trusted Smart Contracts took place in St. Kitts Marriott Resort St. Kitts (Feb 18--22, 2019). I was reported that Saint Kitts is a paradise, and more importantly, that Andrea, Claudio and Massimiliano (the chairs) managed to collect several top quality papers (see Proc. FC'19) that were reviewed by an internationally strong PC.
- The International Workshop on Future Perspective of Decentralized Applications (FPDAPP) took place in Turin, Italy (27 or 28 of Aug 2018). Andrea and Claudio (the chairs) managed to organised an exciting workshop. The proceedings, including power point presentations and videos will we online soon.
- The 2nd Workshop on Trusted Smart Contracts will take place in the Santa Barbara Beach Resort, Curaçao (1-2 Mar 2018). I was a member of the PC. You can find the programm and pdf version of accepted papers here.
Recent Research Projects
In progress
CAMB Cloud Attestables on Morello Boards is a UKRI funded project and part of the UKRI’s DSbD (Digital Security by Design) challenge. CAMB's overall aim is to take advantage of the capabilities included in the hardware of the Morello board to build secure run-time execution environments that we call attestables. Our aim is to demonstrate, by means of building and testing, that attestables can be used for running exfiltration-sensitive applications.
Completed
-
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).
Publications
Latest
- A Case for a Currencyless Economy Based on Bartering with Smart Contracts. It is also available from e-Print.
- The Benefits of Deploying Smart Contracts on Trusted Third Parties.
- Implementation of Smart Contracts Using Hybrid Architectures with On- and Off-Blockchain Components.
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.
-
Connecting the edges: A universal, Mobile-centric
and Opportunistic Communications Architecture.
To appear in IEEE Communications Magazine, Feb. 2018.
-
A State Aware Model and Architecture for the Monitoring and Enforcement of Electronic Contracts
18th IEEE Conf. on Business Informatics, 2016.
-
Consumer-centric Resource Accounting in the Cloud Journal of Internet Services and Applications, 2013.
-
Establishing Conformance Between Contracts and Choreographies
Proc. IEEE CBI 2013.
-
A High–Level Model–Checking Tool for Verifying Service
Agreements Proc. IEEE SOSE 2011.
-
Exception Handling in Electronic Contracting
Proc. IEEE CEC 2009.
-
A Model for Checking Contractual Compliance of
Business Interactions IEEE Tran. on Services
Computing, 2012.
-
On the Monitoring of Contractual Service Level Agreements 1st
IEEE Int’l Workshop on Electronic Contracting (WEC’04), 2004.
Some publications in Spanish
If you are familiar with Spanish click Spanish page to find some publications.
Software
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.
Smart contracts happen to be the most fundamental bulding
blocks of what is currently known as Algorithmic
Governace which I call
Ley algomata,
Lex algomata or Leyalgomata.
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.
- A pioneer of smart contracts is
Naftaly
Minsky from Rutgers University who started stidying
this topic around 1985 under the name of Law Governed
Interaction (LGI). An early publication by
Minsky is
Ensuring integrity by adding obligations to privileges.
-
A pioneer paper on smart contracts is
Representing Management Policy Using Contract Objects. It was published in 1993 by
Lindsay Marshall (my PhD supervisor!) from Newcastle University.
-
A visionary and pioneering workshop was the
First
IEEE International Workshop on Electronic Contracting (WEC'04) that took
place as early as Jul 2004 in San Diego.
This event demonstrates that smart contracts have been a research topic for decades and long before Bitcoin shook the world. Notice that papers published at that time used the term executable, digital or electronic contracts, as opposed to smart contracts.
-
Nick Szabo publishes
Smart Contracts: Formalizing and Securing
Relationships on Public Networks and coins the
term smart contract in 1997.
-
The FLACOS (Formal Languages and Analysis of
Contract-Oriented Software) workshop produced
several papers on the topic. The
First
FLACOS Workshop was organised by
Gerardo Schneider from University of Oslo,
in 2007 and run yearly till 2012.
-
The publication of
Bitcoin: A Peer-to-Peer Electronic Cash System by
Satoshi Nakamoto in 2008 introduces the concept of
blockchain and brings commercial attention to smart
contracts.
-
This list is meant to present an overview only,
it is far from being exhautive. I know of other
researchers that have contributed to the topic
including Zoran Milosevic from Deontik, Heiko
Ludwig from IBM, Jean Beacon from Computer Laboratory
of University of Cambridge.
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
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.
-
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
- 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.
- 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.
- There are two approaches to implement smart contract enforcers:
- Centralised: implemented without using blockchains.
- Decentralised: implemented using blockchains.
- Different applications demand different services, thus
some of them can be implemented more naturally
with either of the two approaches.
- 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.
- 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.
- This idea is discussed in
On and Off-Blockchain Enforcement Of Smart Contracts.
... This page is always under construction!!!