Upcoming paper: An empirical analysis of smart contracts: platforms, applications, and design patterns
Upcoming paper (to be presented at WTSC 2017)
Massimo Bartoletti and Livio Pompianu
Abstract. Smart contracts are computer programs that can be consistently executed by a network of mutually distrusting nodes, without the arbitration of a trusted authority. Because of their resilience to tampering, smart contracts are appealing in many scenarios, especially in those which require transfers of money to respect certain agreed rules (like in financial services and in games). Over the last few years many platforms for smart contracts have been proposed, and some of them have been actually implemented and used. We study how the notion of smart contract is interpreted in some of these platforms. Focussing on the two most widespread ones, Bitcoin and Ethereum, we quantify the usage of smart contracts in relation to their application domain. We also analyse the most common programming patterns in Ethereum, where the source code of smart contracts is available.
Upcoming paper (to be presented at BITCOIN 2017)
Massimo Bartoletti and Livio Pompianu
Abstract. The Bitcoin protocol allows to save arbitrary data on the blockchain through a special instruction of the scripting language, called OP_RETURN. A growing number of protocols exploit this feature to extend the range of applications of the Bitcoin blockchain beyond transfer of currency. A point of debate in the Bitcoin community is whether loading data through OP_RETURN can negatively affect the performance of the Bitcoin network with respect to its primary goal. This paper is an empirical study of the usage of OP_RETURN over the years. We identify several protocols based on OP_RETURN, which we classify by their application domain. We measure the evolution in time of the usage of each protocol, the distribution of OP_RETURN transactions by application domain, and their space consumption.
Upcoming paper (to be presented at BITCOIN 2017)
Massimo Bartoletti and Roberto Zunino
Abstract. An active research trend is to exploit the consensus mechanism of cryptocurrencies to secure the execution of distributed applications. In particular, some recent works have proposed fair lotteries which work on Bitcoin. These protocols, however, require a deposit from each player which grows quadratically with the number of players. We propose a fair lottery on Bitcoin which only requires a constant deposit.
Upcoming paper (to be presented at POST 2017)
Nicola Atzei, Massimo Bartoletti, and Tiziana Cimoli
Abstract. Smart contracts are computer programs that can be correctly executed by a network of mutually distrusting nodes, without the need of an external trusted authority. Since smart contracts handle and transfer assets of considerable value, besides their correct execution it is also crucial that their implementation is secure against attacks which aim at stealing or tampering the assets. We study this problem in Ethereum, the most well-known and used framework for smart contracts so far. We analyse the security vulnerabilities of Ethereum smart contracts, providing a taxonomy of common programming pitfalls which may lead to vulnerabilities. We show a series of attacks which exploit these vulnerabilities, allowing an adversary to steal money or cause other damage.
The detailed code of attacks is available here.
Scala in practice
December 17th 2016, 9.00-13.00
Lab T - Palazzo delle Scienze - University of Cagliari
Upcoming paper (to appear in LMCS)
Massimo Bartoletti, Alceste Scalas, Emilio Tuosto and Roberto Zunino
Abstract. We propose a type system for a calculus of contracting processes. Processes can establish sessions by stipulating contracts, and then can interact either by keeping the promises made, or not. Type safety guarantees that a typeable process is honest - that is, it abides by the contracts it has stipulated in all possible contexts, even in presence of dishonest adversaries. Type inference is decidable, and it allows to safely approximate the honesty of processes using either synchronous or asynchronous communication.
Bitcoin and Blockchain Technologies
August 31st 2016
Cottrell building 4B96 - University of Stirling
An open, international, one-day of study, brainstorming and networking opportunities for interested researchers and stakeholders.
Courant Institute of Mathematical Sciences and School of Medicine
New York University
Mt Sinai School of Medicine
Beyond the keynote talk, the day will comprise short introductions by the participants on ongoing research, initiatives, and groups focussing on BTC/BC. Networking opportunities and discussion on possible grants and projects will also be part of the day. We will be targeting H2020 and other EU initiatives, as well as UK funders and US-EU possible partnerships.
09.30 Coffee & registration
Welcome and round of short introductions
10.20 Daniela Bolle, Research Office, University of Stirling
Funding opportunities + questions/comments/insights.
(including COST, ITN, Global Challenge, …)
11.00 Invited talk: Bud Mishra, New York University.
12.00 Lunch (Room 2B87)
13.15 Short talks
Andrea Bracciali, University of Stirling
Validation of decentralised Smart Contracts through game theory and formal methods
Massimo Bartoletti, TCS group University of Cagliari
Martin Chapman, King's College
Andrea Pinna, Agile group University of Cagliari
Federico Pintore, University of Trento
Simon Dobson, University of St Andrews
Can blockchains help make science must trustworthy?
15.30 Coffee break
16.00 Discussion on grant applications
A networking session aimed at exploring the possibility of collaborations and funding
applications, with a specific focus on selected EU and National programmes.
Participation is free, but registration required for organisational purposes. Please register at:
preferably not later than 28th August!
Accommodation can be booked on campus or in nearby structures. Please see
for useful information about traveling to and staying in Stirling, as well as on-campus accommodation (please note that the event precedes the CIBB2016 conference, which is an independent event, but you can enquire for accommodation through the conference channels).
Abstract: this talk will focus on Bit-Coins and BlockChain Technologies and their implications for Privacy, Anonymity, Data Science, Finance and Market Micro-structure.
Topics: Information Asymmetry, Signaling Games, Risks and Deception – Signaling Games On the Internet (& Biology) – Costly Signaling, Block Chains, Verifiers and Recommenders – Circulating Money via Signaling Games – Value-Storing Money via Signaling Games – Case Studies: Bit-Coins, Dark Web, Silk Road and MtGox – Data Science and Finance
Slides: available here.
Bud Mishra is a professor of computer science and mathematics at NYU's Courant Institute of Mathematical Sciences, professor of computer science and engineering at NYU’s Tandon School of Engineering, professor of human genetics at Mt. Sinai School of Medicine, and a professor of cell biology at NYU School of Medicine. Prof. Mishra has a degree in Physics from Utkal University, in Electronics and Communication Engineering from IIT, Kharagpur, and MS and PhD degrees in Computer Science from Carnegie-Mellon University. He has industrial experience in Computer and Data Science (brainiad, Genesis Media, Pypestream, Tartan Laboratories, and ATTAP), Finance (Instadat, Tudor Investment and PRF, LLC), Robotics and Bio- and Nanotechnologies (Bioarrays, InSilico, Seqster, Abraxis, MRTech, and OpGen). He is the author of a textbook on algorithmic algebra and more than two hundred archived publications. He has advised and mentored more than 35 graduate students and post-docs in the areas of computer science, robotics and control engineering, applied mathematics, finance, biology and medicine. He is a fellow of IEEE, ACM and AAAS, a Distinguished Alumnus of IIT- Kharagpur, and a NYSTAR Distinguished Professor. From 2003-2006, he held adjunct professorship at Tata Institute of Fundamental Research in Mumbai, India. From 2001-04, he was a professor at the Watson School of Biological Sciences, Cold Spring Harbor Lab; currently he is a QB visiting scholar at Simons Center for Quantitative Biology, Cold Spring Harbor Lab.
Upcoming paper (to be presented at WISE 2016)
Massimo Bartoletti, Stefano Lande, and Alessandro Massa
Abstract. User reputation is a crucial indicator in social networks, where it is exploited to promote authoritative content and to marginalize spammers. To be accurate, reputation must be updated periodically, taking into account the whole historical data of user activity. In big social networks like Twitter and Facebook, these updates would require to process a huge amount of historical data, and therefore pose serious performance issues. We address these issues in the context of Twitter, by studying a technique which can update user reputation in constant time. This is obtained by using an arbitrary ranking algorithm to compute user reputation in the most recent time window, and by combining it with a summary of historical data. Experimental evaluation on large datasets show that our technique improves the performance of existing ranking algorithms, at the cost of a negligible degradation of their precision.
July 22, 15.00 (Aula C)
Abstract. Decentralised smart contracts represent the next step in the development of protocols that support the interaction of independent players without the presence of a coercing authority. Based on protocols à la BitCoin for digital currencies, smart contracts are believed to be a potentially enabling technology for a wealth of future applications. The validation of such an early developing technology is as necessary as it is complex. In this paper we combine game theory and formal models to tackle the new challenges posed by the validation of such systems.
SICSA Lecturer - University of Stirling (UK)
July 7, 15.00 (Aula C)
Imperial College London
Abstract. Designing, developing and maintaining concurrent applications is an error-prone and time-consuming task; most difficulties arise because compilers are usually unable to check whether the inputs/outputs performed by a program at runtime will adhere to a given protocol specification. To address this problem, we propose lightweight session programming in Scala: we leverage the native features of the Scala type system and standard library, to introduce (1) a representation of session types as Scala types, and (2) a library, called lchannels, with a convenient API for session-based programming, supporting local and distributed communication. We generalise the idea of Continuation-Passing Style (CPS) protocols, studying their formal relationship with session types. We illustrate how session programming can be carried over in Scala: how to formalise a communication protocol, and represent it using Scala classes and lchannels, letting the compiler help spotting protocol violations. We attest the practicality of our approach with a complex use case, and evaluate the performance of lchannels with a series of benchmarks.